diff --git a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java index ff2413ae..acf3e22f 100644 --- a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java +++ b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java @@ -55,6 +55,8 @@ public interface ErrorCodeConstants { ErrorCode PROCESS_DETAIL_NOT_EXISTS = new ErrorCode(1_001_018, "工艺路线明细不存在"); ErrorCode PROCESS_SETTING_NOT_EXISTS = new ErrorCode(1_001_019, "工时工价不存在"); ErrorCode SALARY_SETTING_NOT_EXISTS = new ErrorCode(1_001_020, "员工工资设置不存在"); + ErrorCode SALARY_USER_NOT_EXISTS = new ErrorCode(1_001_021, "员工工资设置主表不存在"); + /*********组织架构************/ ErrorCode WORKSHOP_NOT_EXISTS = new ErrorCode(1_002_001, "车间不存在"); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/SalarySettingController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/SalarySettingController.java index 0517a5ab..1182b68a 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/SalarySettingController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/SalarySettingController.java @@ -1,95 +1,129 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting; - -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; -import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; - -import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; - -import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; -import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; -import com.chanko.yunxi.mes.module.biz.service.salarysetting.SalarySettingService; - -@Tag(name = "管理后台 - 员工工资设置") -@RestController -@RequestMapping("/biz/salary-setting") -@Validated -public class SalarySettingController { - - @Resource - private SalarySettingService salarySettingService; - - @PostMapping("/create") - @Operation(summary = "创建员工工资设置") - @PreAuthorize("@ss.hasPermission('biz:salary-setting:create')") - public CommonResult createSalarySetting(@Valid @RequestBody SalarySettingSaveReqVO createReqVO) { - return success(salarySettingService.createSalarySetting(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新员工工资设置") - @PreAuthorize("@ss.hasPermission('biz:salary-setting:update')") - public CommonResult updateSalarySetting(@Valid @RequestBody SalarySettingSaveReqVO updateReqVO) { - salarySettingService.updateSalarySetting(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除员工工资设置") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('biz:salary-setting:delete')") - public CommonResult deleteSalarySetting(@RequestParam("id") Long id) { - salarySettingService.deleteSalarySetting(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得员工工资设置") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('biz:salary-setting:query')") - public CommonResult getSalarySetting(@RequestParam("id") Long id) { - SalarySettingDO salarySetting = salarySettingService.getSalarySetting(id); - return success(BeanUtils.toBean(salarySetting, SalarySettingRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得员工工资设置分页") - @PreAuthorize("@ss.hasPermission('biz:salary-setting:query')") - public CommonResult> getSalarySettingPage(@Valid SalarySettingPageReqVO pageReqVO) { - PageResult pageResult = salarySettingService.getSalarySettingPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, SalarySettingRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出员工工资设置 Excel") - @PreAuthorize("@ss.hasPermission('biz:salary-setting:export')") - @OperateLog(type = EXPORT) - public void exportSalarySettingExcel(@Valid SalarySettingPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = salarySettingService.getSalarySettingPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "员工工资设置.xls", "数据", SalarySettingRespVO.class, - BeanUtils.toBean(list, SalarySettingRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting; + +import cn.hutool.core.collection.CollUtil; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserSaveReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salaryuser.SalaryUserDO; +import com.chanko.yunxi.mes.module.biz.service.salaryuser.SalaryUserService; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.module.biz.service.salarysetting.SalarySettingService; + +@Tag(name = "管理后台 - 员工工资设置") +@RestController +@RequestMapping("/biz/salary-setting") +@Validated +public class SalarySettingController { + + @Resource + private SalaryUserService salaryUserService; + + @Resource + private SalarySettingService salarySettingService; + + @PostMapping("/create") + @Operation(summary = "创建员工工资设置主") + @PreAuthorize("@ss.hasPermission('biz:salary-user:create')") + public CommonResult createSalaryUser(@Valid @RequestBody SalaryUserSaveReqVO createReqVO) { + return success(salaryUserService.createSalaryUser(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新员工工资设置主") + @PreAuthorize("@ss.hasPermission('biz:salary-user:update')") + public CommonResult updateSalaryUser(@Valid @RequestBody SalaryUserSaveReqVO updateReqVO) { + salaryUserService.updateSalaryUser(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除员工工资设置主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('biz:salary-user:delete')") + public CommonResult deleteSalaryUser(@RequestParam("id") Long id) { + salaryUserService.deleteSalaryUser(id); + return success(true); + } + @GetMapping("/get") + @Operation(summary = "获得员工工资设置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('biz:salary-setting:query')") + public CommonResult getSalarySetting(@RequestParam("id") Long id) { + + SalaryUserDO salaryUserDO = salaryUserService.getSalaryUser(id); + + SalarySettingPageReqVO pageReqVO = new SalarySettingPageReqVO(); + pageReqVO.setUserId(salaryUserDO.getUserId()); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + PageResult salarySetting = salarySettingService.getSalarySettingByUserIdPage(pageReqVO); + SalaryUserRespVO result = BeanUtils.toBean(salaryUserDO, SalaryUserRespVO.class); + result.setSetting(salarySetting.getList()); + return success(result); + } + + @GetMapping("/page-setting") + @Operation(summary = "获得员工工资设置分页") + @PreAuthorize("@ss.hasPermission('biz:salary-setting:query')") + public CommonResult> getSalarySettingPage(@Valid SalarySettingPageReqVO pageReqVO) { + PageResult pageResult = salarySettingService.getSalarySettingPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SalarySettingRespVO.class)); + } + + @GetMapping("/export-setting-excel") + @Operation(summary = "导出员工工资设置 Excel") + @PreAuthorize("@ss.hasPermission('biz:salary-setting:export')") + @OperateLog(type = EXPORT) + public void exportSalarySettingExcel(@Valid SalarySettingPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salarySettingService.getSalarySettingPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "员工工资设置.xls", "数据", SalarySettingRespVO.class, + BeanUtils.toBean(list, SalarySettingRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得员工工资设置主分页") + @PreAuthorize("@ss.hasPermission('biz:salary-user:query')") + public CommonResult> getSalaryUserPage(@Valid SalaryUserPageReqVO pageReqVO) { + PageResult pageResult = salaryUserService.getSalaryUserPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SalaryUserRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出员工工资设置主表 Excel") + @PreAuthorize("@ss.hasPermission('biz:salary-user:export')") + @OperateLog(type = EXPORT) + public void exportSalaryUserExcel(@Valid SalaryUserPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salaryUserService.getSalaryUserPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "员工工资设置主表.xls", "数据", SalaryUserRespVO.class, + BeanUtils.toBean(list, SalaryUserRespVO.class)); + } + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingRespVO.java index 9964196e..725d9cef 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingRespVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingRespVO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -34,6 +35,10 @@ public class SalarySettingRespVO { @ExcelProperty("工序范围") private String procedure; + @Schema(description = "工序ids范围") + @ExcelProperty("工序ids范围") + private String procedureIds; + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("状态,1表示正常,2表示禁用") private Boolean status; @@ -46,4 +51,8 @@ public class SalarySettingRespVO { @ExcelProperty("工价") private BigDecimal price; + @Schema(description = "工序列表") + @ExcelProperty("工序列表") + private List setting; + } \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingSaveReqVO.java index 2a680570..3d7836f9 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingSaveReqVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalarySettingSaveReqVO.java @@ -30,5 +30,7 @@ public class SalarySettingSaveReqVO { @Schema(description = "工价") private BigDecimal price; + @Schema(description = "工价") + private Long salaryUserId; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserPageReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserPageReqVO.java new file mode 100644 index 00000000..26be9124 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserPageReqVO.java @@ -0,0 +1,46 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 员工工资设置主分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SalaryUserPageReqVO extends PageParam { + + @Schema(description = "自增字段,唯一") + private Long id; + + @Schema(description = "员工id") + private Long userId; + + @Schema(description = "员工姓名") + private String userName; + @Schema(description = "员工编号") + private String userCode; + + @Schema(description = "工资类型字典") + private String salaryType; + + @Schema(description = "工价") + private BigDecimal price; + + @Schema(description = "工序范围") + private String procedure; + + @Schema(description = "状态,1表示正常,2表示禁用") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserRespVO.java new file mode 100644 index 00000000..c10520eb --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserRespVO.java @@ -0,0 +1,62 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo; + +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; +import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 员工工资设置主 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SalaryUserRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "员工id") + @ExcelProperty("员工id") + private Long userId; + + @Schema(description = "员工姓名") + @ExcelProperty("员工姓名") + private String userName; + + @Schema(description = "员工工号") + @ExcelProperty("员工工号") + private String userCode; + + @Schema(description = "工资类型字典") + @ExcelProperty(value = "工资类型字典", converter = DictConvert.class) + @DictFormat("biz_salary_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private String salaryType; + + @Schema(description = "工价") + @ExcelProperty("工价") + private BigDecimal price; + + @Schema(description = "工序范围") + @ExcelProperty(value = "工序范围", converter = DictConvert.class) + @DictFormat("biz_procedure_range") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private String procedure; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("状态,1表示正常,2表示禁用") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "工序列表") + @ExcelProperty("工序列表") + private List setting; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserSaveReqVO.java new file mode 100644 index 00000000..54897536 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/salarysetting/vo/SalaryUserSaveReqVO.java @@ -0,0 +1,36 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 员工工资设置主新增/修改 Request VO") +@Data +public class SalaryUserSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; + + @Schema(description = "员工id") + private Long userId; + + @Schema(description = "工资类型字典") + private String salaryType; + + @Schema(description = "工价") + private BigDecimal price; + + @Schema(description = "工序范围") + private String procedure; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态,1表示正常,2表示禁用不能为空") + private Integer status; + + @Schema(description = "工序范围") + private List setting; + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salarysetting/SalarySettingDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salarysetting/SalarySettingDO.java index 8c3b3f90..711eef7c 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salarysetting/SalarySettingDO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salarysetting/SalarySettingDO.java @@ -33,6 +33,10 @@ public class SalarySettingDO extends BaseDO { * 员工id */ private Long userId; + @TableField(exist = false) + private String userName; + @TableField(exist = false) + private String userCode; /** * 工资类型字典 * @@ -43,13 +47,25 @@ public class SalarySettingDO extends BaseDO { * 工序范围 */ private String procedure; + @TableField(exist = false) + private String procedureIds; /** * 状态,1表示正常,2表示禁用 */ - private Boolean status; + private Integer status; + private Long salaryUserId; /** * 工价 */ private BigDecimal price; + @TableField(exist = false) + private String procedureName; + + @TableField(exist = false) + private String procedureCode; + @TableField(exist = false) + private String workShopName; + + } \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salaryuser/SalaryUserDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salaryuser/SalaryUserDO.java new file mode 100644 index 00000000..b47c1d2f --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/salaryuser/SalaryUserDO.java @@ -0,0 +1,61 @@ +package com.chanko.yunxi.mes.module.biz.dal.dataobject.salaryuser; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 员工工资设置主 DO + * + * @author 管理员 + */ +@TableName("base_salary_user") +@KeySequence("base_salary_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryUserDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 员工id + */ + private Long userId; + /** + * 工资类型字典 + * + * 枚举 {@link TODO biz_salary_type 对应的类} + */ + private String salaryType; + /** + * 工价 + */ + private BigDecimal price; + /** + * 工序范围 + * + * 枚举 {@link TODO biz_procedure_range 对应的类} + */ + private String procedure; + /** + * 状态,1表示正常,2表示禁用 + */ + private Integer status; + + @TableField(exist = false) + private String userName; + @TableField(exist = false) + private String userCode; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salarysetting/SalarySettingMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salarysetting/SalarySettingMapper.java index 1fc35818..2371c3d7 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salarysetting/SalarySettingMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salarysetting/SalarySettingMapper.java @@ -2,12 +2,22 @@ package com.chanko.yunxi.mes.module.biz.dal.mysql.salarysetting; import java.util.*; +import cn.hutool.core.collection.CollUtil; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.vo.ProjectOrderPageReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; +import org.springframework.util.StringUtils; /** * 员工工资设置 Mapper @@ -17,15 +27,47 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; @Mapper public interface SalarySettingMapper extends BaseMapperX { +// default PageResult selectPage(SalarySettingPageReqVO reqVO) { +// return selectPage(reqVO, new LambdaQueryWrapperX() +// .eqIfPresent(SalarySettingDO::getId, reqVO.getId()) +// .eqIfPresent(SalarySettingDO::getUserId, reqVO.getUserId()) +// .eqIfPresent(SalarySettingDO::getSalaryType, reqVO.getSalaryType()) +// .eqIfPresent(SalarySettingDO::getProcedure, reqVO.getProcedure()) +// .eqIfPresent(SalarySettingDO::getStatus, reqVO.getStatus()) +// .betweenIfPresent(SalarySettingDO::getCreateTime, reqVO.getCreateTime()) +// .orderByDesc(SalarySettingDO::getId)); +// } + default PageResult selectPage(SalarySettingPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(SalarySettingDO::getId, reqVO.getId()) - .eqIfPresent(SalarySettingDO::getUserId, reqVO.getUserId()) - .eqIfPresent(SalarySettingDO::getSalaryType, reqVO.getSalaryType()) - .eqIfPresent(SalarySettingDO::getProcedure, reqVO.getProcedure()) - .eqIfPresent(SalarySettingDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(SalarySettingDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(SalarySettingDO::getId)); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(SalarySettingDO.class) + .select("u.nickname as userName", "u.username as userCode") + .select("group_concat(t.procedure) as procedureIds") + .leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, SalarySettingDO::getUserId) + .groupBy(SalarySettingDO::getUserId) + .disableSubLogicDel() + .orderByDesc(SalarySettingDO::getUserId); + query.like(!StringUtils.isEmpty(reqVO.getUserCode()), "u.username", reqVO.getUserCode()) + .like(!StringUtils.isEmpty(reqVO.getUserName()), "u.nickname", reqVO.getUserName()) + .eq(!StringUtils.isEmpty(reqVO.getUserId()), SalarySettingDO::getUserId, reqVO.getUserId()) + ; + return selectPage(reqVO, query); + } + + default PageResult selectByUserIdPage(SalarySettingPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(SalarySettingDO.class) + .select("u.nickname as userName", "u.username as userCode") + .select("p.name as procedureName","p.code as procedureCode") + .select("w.name as workShopName") + .leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, SalarySettingDO::getUserId) + .leftJoin(ProcedureDO.class,"p",ProcedureDO::getId,SalarySettingDO::getProcedure) + .leftJoin(WorkshopDO.class,"w",WorkshopDO::getId,ProcedureDO::getWid) + .disableSubLogicDel() + .orderByDesc(SalarySettingDO::getUserId); + query.eq(!StringUtils.isEmpty(reqVO.getUserId()), SalarySettingDO::getUserId, reqVO.getUserId()) + ; + return selectPage(reqVO, query); } } \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salaryuser/SalaryUserMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salaryuser/SalaryUserMapper.java new file mode 100644 index 00000000..35d17233 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/salaryuser/SalaryUserMapper.java @@ -0,0 +1,49 @@ +package com.chanko.yunxi.mes.module.biz.dal.mysql.salaryuser; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalarySettingPageReqVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserPageReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salaryuser.SalaryUserDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.util.StringUtils; + +/** + * 员工工资设置主 Mapper + * + * @author 管理员 + */ +@Mapper +public interface SalaryUserMapper extends BaseMapperX { + +// default PageResult selectPage(SalaryUserPageReqVO reqVO) { +// return selectPage(reqVO, new LambdaQueryWrapperX() +// .eqIfPresent(SalaryUserDO::getId, reqVO.getId()) +// .eqIfPresent(SalaryUserDO::getUserId, reqVO.getUserId()) +// .eqIfPresent(SalaryUserDO::getSalaryType, reqVO.getSalaryType()) +// .eqIfPresent(SalaryUserDO::getPrice, reqVO.getPrice()) +// .eqIfPresent(SalaryUserDO::getProcedure, reqVO.getProcedure()) +// .eqIfPresent(SalaryUserDO::getStatus, reqVO.getStatus()) +// .betweenIfPresent(SalaryUserDO::getCreateTime, reqVO.getCreateTime()) +// .orderByDesc(SalaryUserDO::getId)); +// } + + default PageResult selectPage(SalaryUserPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(SalaryUserDO.class) + .select("u.nickname as userName", "u.username as userCode") + .leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, SalaryUserDO::getUserId) + .disableSubLogicDel() + .orderByDesc(SalaryUserDO::getUserId); + query.like(!StringUtils.isEmpty(reqVO.getUserCode()), "u.username", reqVO.getUserCode()) + .like(!StringUtils.isEmpty(reqVO.getUserName()), "u.nickname", reqVO.getUserName()) + .eq(!StringUtils.isEmpty(reqVO.getUserId()), SalaryUserDO::getUserId, reqVO.getUserId()) + ; + return selectPage(reqVO, query); + } + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingService.java index fdbe8016..68e21f2d 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingService.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingService.java @@ -1,55 +1,63 @@ -package com.chanko.yunxi.mes.module.biz.service.salarysetting; - -import java.util.*; -import javax.validation.*; -import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; - -/** - * 员工工资设置 Service 接口 - * - * @author 管理员 - */ -public interface SalarySettingService { - - /** - * 创建员工工资设置 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createSalarySetting(@Valid SalarySettingSaveReqVO createReqVO); - - /** - * 更新员工工资设置 - * - * @param updateReqVO 更新信息 - */ - void updateSalarySetting(@Valid SalarySettingSaveReqVO updateReqVO); - - /** - * 删除员工工资设置 - * - * @param id 编号 - */ - void deleteSalarySetting(Long id); - - /** - * 获得员工工资设置 - * - * @param id 编号 - * @return 员工工资设置 - */ - SalarySettingDO getSalarySetting(Long id); - - /** - * 获得员工工资设置分页 - * - * @param pageReqVO 分页查询 - * @return 员工工资设置分页 - */ - PageResult getSalarySettingPage(SalarySettingPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.biz.service.salarysetting; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 员工工资设置 Service 接口 + * + * @author 管理员 + */ +public interface SalarySettingService { + + /** + * 创建员工工资设置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSalarySetting(@Valid SalarySettingSaveReqVO createReqVO); + + /** + * 更新员工工资设置 + * + * @param updateReqVO 更新信息 + */ + void updateSalarySetting(@Valid SalarySettingSaveReqVO updateReqVO); + + /** + * 删除员工工资设置 + * + * @param id 编号 + */ + void deleteSalarySetting(Long id); + + /** + * 获得员工工资设置 + * + * @param id 编号 + * @return 员工工资设置 + */ + SalarySettingDO getSalarySetting(Long id); + + /** + * 获得员工工资设置分页 + * + * @param pageReqVO 分页查询 + * @return 员工工资设置分页 + */ + PageResult getSalarySettingPage(SalarySettingPageReqVO pageReqVO); + + /** + * 获得员工工资设置分页 + * + * @param pageReqVO 分页查询 + * @return 员工工资设置分页 + */ + PageResult getSalarySettingByUserIdPage(SalarySettingPageReqVO pageReqVO); + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingServiceImpl.java index 9ff415a3..bdb048d7 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salarysetting/SalarySettingServiceImpl.java @@ -1,74 +1,79 @@ -package com.chanko.yunxi.mes.module.biz.service.salarysetting; - -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.biz.dal.mysql.salarysetting.SalarySettingMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; - -/** - * 员工工资设置 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class SalarySettingServiceImpl implements SalarySettingService { - - @Resource - private SalarySettingMapper salarySettingMapper; - - @Override - public Long createSalarySetting(SalarySettingSaveReqVO createReqVO) { - // 插入 - SalarySettingDO salarySetting = BeanUtils.toBean(createReqVO, SalarySettingDO.class); - salarySettingMapper.insert(salarySetting); - // 返回 - return salarySetting.getId(); - } - - @Override - public void updateSalarySetting(SalarySettingSaveReqVO updateReqVO) { - // 校验存在 - validateSalarySettingExists(updateReqVO.getId()); - // 更新 - SalarySettingDO updateObj = BeanUtils.toBean(updateReqVO, SalarySettingDO.class); - salarySettingMapper.updateById(updateObj); - } - - @Override - public void deleteSalarySetting(Long id) { - // 校验存在 - validateSalarySettingExists(id); - // 删除 - salarySettingMapper.deleteById(id); - } - - private void validateSalarySettingExists(Long id) { - if (salarySettingMapper.selectById(id) == null) { - throw exception(SALARY_SETTING_NOT_EXISTS); - } - } - - @Override - public SalarySettingDO getSalarySetting(Long id) { - return salarySettingMapper.selectById(id); - } - - @Override - public PageResult getSalarySettingPage(SalarySettingPageReqVO pageReqVO) { - return salarySettingMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.biz.service.salarysetting; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.biz.dal.mysql.salarysetting.SalarySettingMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; + +/** + * 员工工资设置 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class SalarySettingServiceImpl implements SalarySettingService { + + @Resource + private SalarySettingMapper salarySettingMapper; + + @Override + public Long createSalarySetting(SalarySettingSaveReqVO createReqVO) { + // 插入 + SalarySettingDO salarySetting = BeanUtils.toBean(createReqVO, SalarySettingDO.class); + salarySettingMapper.insert(salarySetting); + // 返回 + return salarySetting.getId(); + } + + @Override + public void updateSalarySetting(SalarySettingSaveReqVO updateReqVO) { + // 校验存在 + validateSalarySettingExists(updateReqVO.getId()); + // 更新 + SalarySettingDO updateObj = BeanUtils.toBean(updateReqVO, SalarySettingDO.class); + salarySettingMapper.updateById(updateObj); + } + + @Override + public void deleteSalarySetting(Long id) { + // 校验存在 + validateSalarySettingExists(id); + // 删除 + salarySettingMapper.deleteById(id); + } + + private void validateSalarySettingExists(Long id) { + if (salarySettingMapper.selectById(id) == null) { + throw exception(SALARY_SETTING_NOT_EXISTS); + } + } + + @Override + public SalarySettingDO getSalarySetting(Long id) { + return salarySettingMapper.selectById(id); + } + + @Override + public PageResult getSalarySettingPage(SalarySettingPageReqVO pageReqVO) { + return salarySettingMapper.selectPage(pageReqVO); + } + + @Override + public PageResult getSalarySettingByUserIdPage(SalarySettingPageReqVO pageReqVO) { + return salarySettingMapper.selectByUserIdPage(pageReqVO); + } + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserService.java new file mode 100644 index 00000000..94c1c5d6 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.biz.service.salaryuser; + +import javax.validation.*; + +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserPageReqVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserSaveReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salaryuser.SalaryUserDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; + +/** + * 员工工资设置主 Service 接口 + * + * @author 管理员 + */ +public interface SalaryUserService { + + /** + * 创建员工工资设置主 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSalaryUser(@Valid SalaryUserSaveReqVO createReqVO); + + /** + * 更新员工工资设置主 + * + * @param updateReqVO 更新信息 + */ + void updateSalaryUser(@Valid SalaryUserSaveReqVO updateReqVO); + + /** + * 删除员工工资设置主 + * + * @param id 编号 + */ + void deleteSalaryUser(Long id); + + /** + * 获得员工工资设置主 + * + * @param id 编号 + * @return 员工工资设置主 + */ + SalaryUserDO getSalaryUser(Long id); + + /** + * 获得员工工资设置主分页 + * + * @param pageReqVO 分页查询 + * @return 员工工资设置主分页 + */ + PageResult getSalaryUserPage(SalaryUserPageReqVO pageReqVO); + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserServiceImpl.java new file mode 100644 index 00000000..7ef04fac --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/salaryuser/SalaryUserServiceImpl.java @@ -0,0 +1,113 @@ +package com.chanko.yunxi.mes.module.biz.service.salaryuser; + +import cn.hutool.core.collection.CollUtil; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserPageReqVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.salarysetting.vo.SalaryUserSaveReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salarysetting.SalarySettingDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.warehouse.WarehouseDO; +import com.chanko.yunxi.mes.module.biz.dal.mysql.salarysetting.SalarySettingMapper; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import com.chanko.yunxi.mes.module.biz.dal.dataobject.salaryuser.SalaryUserDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.biz.dal.mysql.salaryuser.SalaryUserMapper; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; + +/** + * 员工工资设置主 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class SalaryUserServiceImpl implements SalaryUserService { + + @Resource + private SalaryUserMapper salaryUserMapper; + + @Resource + private SalarySettingMapper salarySettingMapper; + + @Override + public Long createSalaryUser(SalaryUserSaveReqVO createReqVO) { + // 插入 + SalaryUserDO salaryUser = BeanUtils.toBean(createReqVO, SalaryUserDO.class); + salaryUserMapper.insert(salaryUser); + // 返回 + return salaryUser.getId(); + } + + @Override + public void updateSalaryUser(SalaryUserSaveReqVO updateReqVO) { + // 校验存在 + validateSalaryUserExists(updateReqVO.getId()); + // 更新 + SalaryUserDO updateObj = BeanUtils.toBean(updateReqVO, SalaryUserDO.class); + salaryUserMapper.updateById(updateObj); + + if(CollUtil.isNotEmpty(updateReqVO.getSetting())){ + List insertList = new ArrayList<>(16); + List updateList = new ArrayList<>(16); + + updateReqVO.getSetting().forEach(setting ->{ + SalarySettingDO salarySettingDO =new SalarySettingDO(); + if(setting.getId()==null || setting.getId()==0){ + + salarySettingDO.setSalaryUserId(updateObj.getId()); + salarySettingDO.setUserId(updateObj.getUserId()); + salarySettingDO.setSalaryType(updateObj.getSalaryType()); + salarySettingDO.setSalaryUserId(updateObj.getId()); + salarySettingDO.setPrice(updateObj.getPrice()); + salarySettingDO.setStatus(updateObj.getStatus()); + insertList.add(salarySettingDO); + }else{ + salarySettingDO.setId(setting.getId()); + salarySettingDO.setSalaryUserId(updateObj.getId()); + salarySettingDO.setUserId(updateObj.getUserId()); + salarySettingDO.setSalaryType(updateObj.getSalaryType()); + salarySettingDO.setSalaryUserId(updateObj.getId()); + salarySettingDO.setPrice(updateObj.getPrice()); + salarySettingDO.setStatus(updateObj.getStatus()); + updateList.add(salarySettingDO); + } + }); + if(CollUtil.isNotEmpty(insertList)) salarySettingMapper.insertBatch(insertList); + if(CollUtil.isNotEmpty(updateList)) salarySettingMapper.updateBatch(updateList); + } + } + + @Override + public void deleteSalaryUser(Long id) { + // 校验存在 + validateSalaryUserExists(id); + // 删除 + salaryUserMapper.deleteById(id); + } + + private void validateSalaryUserExists(Long id) { + if (salaryUserMapper.selectById(id) == null) { + throw exception(SALARY_USER_NOT_EXISTS); + } + } + + @Override + public SalaryUserDO getSalaryUser(Long id) { + return salaryUserMapper.selectById(id); + } + + @Override + public PageResult getSalaryUserPage(SalaryUserPageReqVO pageReqVO) { + return salaryUserMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/salaryuser/SalaryUserMapper.xml b/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/salaryuser/SalaryUserMapper.xml new file mode 100644 index 00000000..b0ddf830 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/salaryuser/SalaryUserMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java index e51e360b..85f4fef1 100644 --- a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java +++ b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java @@ -1,9 +1,11 @@ package com.chanko.yunxi.mes.module.system.dal.mysql.user; +import cn.hutool.core.collection.CollUtil; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserPageReqVO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @@ -30,17 +32,27 @@ public interface AdminUserMapper extends BaseMapperX { } default PageResult selectPage(UserPageReqVO reqVO, Collection deptIds) { - LambdaQueryWrapperX query = new LambdaQueryWrapperX() - .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername()) - .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname()) - .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile()) - .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime()) - .inIfPresent(AdminUserDO::getDeptId, deptIds) +// LambdaQueryWrapperX query = new LambdaQueryWrapperX() +// .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername()) +// .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname()) +// .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile()) +// .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus()) +// .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime()) +// .inIfPresent(AdminUserDO::getDeptId, deptIds) +// .orderByDesc(AdminUserDO::getId); +// if(!StringUtils.isEmpty(reqVO.getUserNickName())){ +// query.and(QueryWrapper -> QueryWrapper.like(AdminUserDO::getUsername, reqVO.getUserNickName()).or().like(AdminUserDO::getNickname, reqVO.getUserNickName())); +// } +// return selectPage(reqVO, query); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(AdminUserDO.class) + .select("d.name as deptName") + .leftJoin(DeptDO.class, "d", DeptDO::getId, AdminUserDO::getDeptId) + .disableSubLogicDel() .orderByDesc(AdminUserDO::getId); - if(!StringUtils.isEmpty(reqVO.getUserNickName())){ - query.and(QueryWrapper -> QueryWrapper.like(AdminUserDO::getUsername, reqVO.getUserNickName()).or().like(AdminUserDO::getNickname, reqVO.getUserNickName())); - } + query.apply(!StringUtils.isEmpty(reqVO.getUserNickName()), "(t.nickname like {0} or t.username like {0})","%"+ reqVO.getUserNickName()+"%") + .in(CollUtil.isNotEmpty(deptIds), AdminUserDO::getDeptId, deptIds) + ; return selectPage(reqVO, query); }