diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java index 87032694..941fe8f3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.evection.BpmOAEvectionCreateReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.evection.BpmOAEvectionRespVO; @@ -16,8 +17,10 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; /** @@ -54,9 +57,9 @@ public class BpmOAEvectionController { BpmOAEvectionRespVO respVO = BpmOAEvectionConvert.INSTANCE.convert(evection); - if (evection.getTogetherUserId() != null) { - AdminUserRespDTO userRespDTO = userApi.getUser(evection.getTogetherUserId()).getCheckedData(); - respVO.setTogetherUserName(userRespDTO.getNickname()); + if (CollectionUtil.isNotEmpty(evection.getTogetherUserIds())) { + List userRespDTOs = userApi.getUserList(respVO.getTogetherUserIds()).getCheckedData(); + respVO.setTogetherUserName(String.join("、", convertList(userRespDTOs, AdminUserRespDTO::getNickname))); } return success(respVO); @@ -71,9 +74,9 @@ public class BpmOAEvectionController { BpmOAEvectionRespVO respVO = BpmOAEvectionConvert.INSTANCE.convert(evection); - if (evection.getTogetherUserId() != null) { - AdminUserRespDTO userRespDTO = userApi.getUser(evection.getTogetherUserId()).getCheckedData(); - respVO.setTogetherUserName(userRespDTO.getNickname()); + if (CollectionUtil.isNotEmpty(evection.getTogetherUserIds())) { + List userRespDTOs = userApi.getUserList(evection.getTogetherUserIds()).getCheckedData(); + respVO.setTogetherUserName(String.join("、", convertList(userRespDTOs, AdminUserRespDTO::getNickname))); } return success(respVO); diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASalaryController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASalaryController.java index 969e6cad..7bbb3207 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASalaryController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASalaryController.java @@ -42,6 +42,10 @@ public class BpmOASalaryController { @Operation(summary = "创建请求申请") public CommonResult createSalary(@Valid @RequestBody BpmOASalaryCreateReqVO createReqVO) { + if (createReqVO.getFactoryId() != null) { + DeptRespDTO dto = deptApi.getDeptByFactoryId(createReqVO.getFactoryId()).getCheckedData(); + createReqVO.setCompanyDeptId(dto.getId()); + } return success(salaryService.createSalary(getLoginUserId(), createReqVO)); } @@ -51,9 +55,18 @@ public class BpmOASalaryController { public CommonResult getSalary(@RequestParam("id") Long id) { BpmOASalaryDO salary = salaryService.getSalary(id); + if (salary == null) { + return success(new BpmOASalaryRespVO()); + } - return success(BpmOASalaryConvert.INSTANCE.convert(salary) - .setCompanyName(getDept(salary.getCompanyDeptId()).getName())); + // 获取部门详情 + DeptRespDTO dto = getDept(salary.getCompanyDeptId()); + + BpmOASalaryRespVO respVO = BpmOASalaryConvert.INSTANCE.convert(salary) + .setCompanyName(dto.getName()) + .setFactoryId(dto.getFactoryId()); + + return success(respVO); } @GetMapping("/getByProcessInstanceId") @@ -63,8 +76,14 @@ public class BpmOASalaryController { BpmOASalaryDO salary = salaryService.getByProcessInstanceId(processInstanceId); - return success(BpmOASalaryConvert.INSTANCE.convert(salary) - .setCompanyName(getDept(salary.getCompanyDeptId()).getName())); + // 获取部门详情 + DeptRespDTO dto = getDept(salary.getCompanyDeptId()); + + BpmOASalaryRespVO respVO = BpmOASalaryConvert.INSTANCE.convert(salary) + .setCompanyName(dto.getName()) + .setFactoryId(dto.getFactoryId()); + + return success(respVO); } /** diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java index 6f11302f..f73ff020 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java @@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -30,7 +31,7 @@ public class BpmOAEvectionCreateReqVO { private String reason; @Schema(description = "随行人用户编号") - private Long togetherUserId; + private Set togetherUserIds; @Schema(description = "出差起点", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "出差起点不能为空") diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java index b62c17ea..0e882979 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java @@ -12,6 +12,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -29,7 +30,7 @@ public class BpmOAEvectionRespVO extends BpmOABaseRespVO { private String reason; @Schema(description = "随行人用户编号") - private Long togetherUserId; + private Set togetherUserIds; @Schema(description = "随行人用户名称") private String togetherUserName; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java index 1ef6b506..41030e41 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java @@ -37,6 +37,10 @@ public class BpmOARegularCreateReqVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate confirmationDate; + @Schema(description = "期望转正时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate desireDate; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private String notes; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularRespVO.java index a2c20fd3..9a0d45ca 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularRespVO.java @@ -36,6 +36,10 @@ public class BpmOARegularRespVO extends BpmOABaseRespVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate confirmationDate; + @Schema(description = "期望转正时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate desireDate; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private String notes; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryCreateReqVO.java index d96b67ba..17f537b3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryCreateReqVO.java @@ -5,15 +5,11 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; import java.math.BigDecimal; -import java.time.LocalDate; import java.util.List; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; - /** * 薪资付款申请 创建 Request VO * @@ -29,10 +25,12 @@ public class BpmOASalaryCreateReqVO { @NotNull(message = "申请原因不能为空") private String reason; - @Schema(description = "付款公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "付款公司不能为空") + @Schema(description = "付款公司") private Long companyDeptId; + @Schema(description = "付款工厂编号") + private Long factoryId; + @Schema(description = "付款总额", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "付款总额不能为空") private BigDecimal paymentTotal; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryRespVO.java index 5e73265f..b853a85c 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/salary/BpmOASalaryRespVO.java @@ -6,15 +6,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotNull; import java.math.BigDecimal; -import java.time.LocalDate; import java.util.List; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; - /** * @author 符溶馨 */ @@ -33,6 +28,9 @@ public class BpmOASalaryRespVO extends BpmOABaseRespVO { @Schema(description = "付款公司名称") private String companyName; + @Schema(description = "付款工厂") + private Long FactoryId; + @Schema(description = "付款总额") private BigDecimal paymentTotal; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java index 10d2006d..08b8bbbe 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.oa; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.common.pojo.UploadUserFile; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -12,6 +13,7 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; /** * OA 出差申请 DO @@ -48,9 +50,10 @@ public class BpmOAEvectionDO extends BaseDO { private String reason; /** - * 随行人用户编号 + * 随行人用户编号组 */ - private Long togetherUserId; + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set togetherUserIds; /** * 出差地点 起点 diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOARegularDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOARegularDO.java index 12db2ee2..e2aefb23 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOARegularDO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOARegularDO.java @@ -36,7 +36,6 @@ public class BpmOARegularDO extends BaseDO { /** * 申请人的用户编号 - * * 关联 AdminUserDO 的 id 属性 */ private Long userId; @@ -56,13 +55,18 @@ public class BpmOARegularDO extends BaseDO { */ private LocalDate confirmationDate; + /** + * 期望转正时间 + */ + private LocalDate desireDate; + /** * 备注 */ private String notes; /** - * 出差的结果 + * 结果 * * 枚举 {@link BpmProcessInstanceResultEnum} * 考虑到简单,所以直接复用了 BpmProcessInstanceResultEnum 枚举,也可以自己定义一个枚举哈 diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java index 79f760e7..602f2a69 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java @@ -53,8 +53,8 @@ public interface DeptApi { CommonResult createDept(@RequestBody DeptRespDTO deptRespDTO); @PostMapping(PREFIX + "/update") - @Operation(summary = "修改部门信息") - void updateDept(@RequestBody DeptRespDTO deptRespDTO); + @Operation(summary = "修改工厂部门信息") + void updateFactoryDept(@RequestBody DeptRespDTO deptRespDTO); @PostMapping(PREFIX + "/delete") @Operation(summary = "删除部门信息") diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 690d3328..2f1de939 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -53,6 +53,7 @@ public interface ErrorCodeConstants { ErrorCode DEPT_EXISTS_USER = new ErrorCode(1_002_004_005, "部门中存在员工,无法删除"); ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1_002_004_006, "部门({})不处于开启状态,不允许选择"); ErrorCode DEPT_PARENT_IS_CHILD = new ErrorCode(1_002_004_007, "不能设置自己的子部门为父部门"); + ErrorCode FACTORY_DEPT_NOT_FOUND = new ErrorCode(1_002_004_008, "当前工厂没有对应部门"); // ========== 职称模块 1-002-005-000 ========== ErrorCode POST_NOT_FOUND = new ErrorCode(1_002_005_000, "当前职称不存在"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java index e0de6245..02b7904c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java @@ -75,18 +75,10 @@ public class DeptApiImpl implements DeptApi { } @Override - public void updateDept(DeptRespDTO deptRespDTO) { + public void updateFactoryDept(DeptRespDTO deptRespDTO) { - DeptDO deptDO = deptService.getDeptByFactoryId(deptRespDTO.getFactoryId()); - - if (deptDO != null) { - - DeptSaveReqVO deptSaveReqVO = BeanUtils.toBean(deptDO, DeptSaveReqVO.class); - deptSaveReqVO.setLeaderUserId(deptRespDTO.getLeaderUserId()); - deptSaveReqVO.setName(deptRespDTO.getName()); - - deptService.updateDept(deptSaveReqVO); - } + DeptSaveReqVO deptSaveReqVO = BeanUtils.toBean(deptRespDTO, DeptSaveReqVO.class); + deptService.updateFactoryDept(deptSaveReqVO); } @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java index f84a4899..b228fe48 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO; import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.SigningDateRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; @@ -21,9 +22,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Tag(name = "管理后台 - 劳动合同管理") @RestController @@ -101,4 +105,21 @@ public class LaborContractController { return success(laborContractService.getLaborContractPage(pageReqVO)); } + + @GetMapping("/getSigningDate") + @Operation(summary = "获得当前登录用户的入职时间和转正时间") + @PreAuthorize("@ss.hasPermission('system:labor-contract:query')") + public CommonResult getSigningDate() { + + LaborContractDO contractDO = laborContractService.getSigningDate(getLoginUserId()); + if (contractDO == null) { + return success(new SigningDateRespVO()); + } + + SigningDateRespVO respVO = BeanUtils.toBean(contractDO, SigningDateRespVO.class); + // 设置转正日期 + LocalDate regularDate = contractDO.getSigningDate().plusMonths(contractDO.getProbationPeriodTime()); + respVO.setRegularDate(regularDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + return success(respVO); + } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/SigningDateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/SigningDateRespVO.java new file mode 100644 index 00000000..31650d41 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/SigningDateRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; + +@Schema(description = "管理后台 - 劳动合同管理 Response VO") +@Data +public class SigningDateRespVO { + + @Schema(description = "签约日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private String signingDate; + + @Schema(description = "转正日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private String regularDate; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java index 723b9c14..5ce0d6c5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java @@ -9,9 +9,12 @@ import lombok.Data; @Data public class UploadFile { - @Schema(description = "文件管理 fileId", requiredMode = Schema.RequiredMode.REQUIRED, example = "123.jpg") + @Schema(description = "文件管理 fileId", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String fileId; + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "123.jpg") + private String fileName; + @Schema(description = "文件URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "http://xxx.xxx/xx/xx/123.jpgss") private String url; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index 1ab40c3d..1df19a5d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -136,7 +136,7 @@ public interface AdminUserMapper extends BaseMapperX { " contract_duration AS contractDuration,\n" + " probation_period_time AS probationPeriodTime,\n" + " status,\n" + - " create_time AS createTime,\n" + + " create_time AS createTime\n" + " FROM\n" + " system_labor_contract lc\n" + " INNER JOIN (SELECT\n" + diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java index db0446d2..1e8f913f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.dal.mysql.worklog; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; -import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; @@ -65,8 +64,8 @@ public interface LogInstanceMapper extends BaseMapperX { .eq(LogReadDo::getLogInstanceId, LogInstanceDO::getId) .eq(LogReadDo::getReadUserId, userId) .eq(LogReadDo::getDeleted, 0)); - queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS readCount FROM work_log_read where read_status = 1 GROUP BY log_instance_id) c on t.id = c.log_instance_id"); - queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS unReadCount FROM work_log_read where read_status = 0 GROUP BY log_instance_id) AS d ON t.id = d.log_instance_id"); + queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS readCount FROM work_log_read where read_status = 1 and deleted = 0 GROUP BY log_instance_id) c on t.id = c.log_instance_id"); + queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS unReadCount FROM work_log_read where read_status = 0 and deleted = 0 GROUP BY log_instance_id) AS d ON t.id = d.log_instance_id"); queryWrapper.leftJoin("(SELECT work_log_id, COUNT(work_log_id) AS comment FROM work_log_comment GROUP BY work_log_id) AS b ON t.id = b.work_log_id"); queryWrapper.eqIfPresent(LogInstanceDO::getDeptId, reqVO.getDeptId()); queryWrapper.eqIfPresent(LogInstanceDO::getFormId, reqVO.getFormId()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java index 0699591f..2a9222ec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -30,6 +30,12 @@ public interface DeptService { */ void updateDept(DeptSaveReqVO updateReqVO); + /** + * 更新工厂部门 + * @param updateReqVO 更新信息 + */ + void updateFactoryDept(DeptSaveReqVO updateReqVO); + /** * 删除部门 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index 7c38f45c..790a7fb0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -128,6 +128,17 @@ public class DeptServiceImpl implements DeptService { deptMapper.updateById(updateObj); } + @Override + public void updateFactoryDept(DeptSaveReqVO updateReqVO) { + + // 校验自己存在 + validateFactoryDeptExists(updateReqVO.getFactoryId()); + + DeptDO update = BeanUtils.toBean(updateReqVO, DeptDO.class); + deptMapper.update(update, new LambdaQueryWrapperX() + .eq(DeptDO::getFactoryId, updateReqVO.getFactoryId())); + } + @Override @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, allEntries = true) // allEntries 清空所有缓存,因为操作一个部门,涉及到多个缓存 @@ -153,6 +164,17 @@ public class DeptServiceImpl implements DeptService { } } + @VisibleForTesting + void validateFactoryDeptExists(Long factoryId) { + if (factoryId == null) { + return; + } + DeptDO dept = deptMapper.selectOne(DeptDO::getFactoryId, factoryId); + if (dept == null) { + throw exception(FACTORY_DEPT_NOT_FOUND); + } + } + @VisibleForTesting void validateParentDept(Long id, Long parentId) { if (parentId == null || DeptDO.PARENT_ID_ROOT.equals(parentId)) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java index f8853c3b..d78f804e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java @@ -83,5 +83,10 @@ public interface LaborContractService { */ List getListByEndTime(LocalDate now); - + /** + * 获得当前登录用户的入职时间和转正时间 + * @param userId 用户编号 + * @return 日期 + */ + LaborContractDO getSigningDate(Long userId); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java index ba0a7396..199df81f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.service.laborcontract; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -118,4 +119,15 @@ public class LaborContractServiceImpl implements LaborContractService { .lt(LaborContractDO::getExpirationDate, now) .eq(LaborContractDO::getStatus, 3)); } + + @Override + public LaborContractDO getSigningDate(Long userId) { + + List list = laborContractMapper.selectList(new LambdaQueryWrapperX() + .eq(LaborContractDO::getUserId, userId) + .isNotNull(LaborContractDO::getProbationPeriodTime) + .orderByDesc(LaborContractDO::getCreateTime)); + + return CollectionUtil.isEmpty(list) ? null : list.get(0); + } } \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java index 48027ff4..d6123a7d 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java @@ -91,7 +91,7 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { deptRespDTO.setName(updateReqVO.getShortName()); deptRespDTO.setLeaderUserId(updateReqVO.getLeaderUserId()); deptRespDTO.setFactoryId(updateReqVO.getId()); - deptApi.updateDept(deptRespDTO); + deptApi.updateFactoryDept(deptRespDTO); } @Override @@ -259,5 +259,11 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { // 更新 FactoryInfoDO updateObj = BeanUtils.toBean(updateReqVO, FactoryInfoDO.class); factoryInfoMapper.updateById(updateObj); + + //同步更新 工厂部门状态 + DeptRespDTO deptRespDTO = new DeptRespDTO(); + deptRespDTO.setFactoryId(updateReqVO.getId()); + deptRespDTO.setStatus(updateReqVO.getStatus()); + deptApi.updateFactoryDept(deptRespDTO); } }