diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/AuditDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/AuditDTO.java index 9530083..919b663 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/AuditDTO.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/AuditDTO.java @@ -1,47 +1,23 @@ package com.chushang.inspection.project.entity.dto; -import cn.hutool.core.date.DatePattern; -import com.chushang.common.mybatis.annotation.Condition; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import javax.validation.constraints.NotNull; -import java.time.LocalDateTime; -import java.util.List; /** * @auther: zhao - * @date: 2024/6/17 17:59 + * @date: 2024/6/17 18:17 */ @Data public class AuditDTO { - /** - * 多选 第三方id - */ - @Condition(name = "third_id", type = Condition.ConditionType.in) - private List thirdIds; /** * 审核状态 */ - @Condition(name = "audit_status", type = Condition.ConditionType.eq) + @NotNull(message = "审核状态不能为空") private Integer auditStatus; /** - * 默认 合同审核 + * 审核 结果 */ - @Condition(name = "third_type", type = Condition.ConditionType.eq) - private Integer auditType = 1; - /** - * 审核人 - */ - @Condition(name = "audit_user_id", type = Condition.ConditionType.eq) - private Long auditUserId; - - /** - * 审核时间 区间 - */ - @Condition(name = "audit_time", type = Condition.ConditionType.between) - @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) - private List auditTimes; - + private String remark; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/ContractDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/ContractDTO.java index 9741d66..21d39e0 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/ContractDTO.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/ContractDTO.java @@ -3,6 +3,7 @@ package com.chushang.inspection.project.entity.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.chushang.common.core.validator.Create; import com.chushang.common.core.validator.Update; +import com.chushang.common.mybatis.annotation.Condition; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -24,6 +25,7 @@ public class ContractDTO { * 合同Id */ @NotNull(message = "合同Id不能为空", groups = Update.class) + @Condition(name = "contract_id", type = Condition.ConditionType.eq) private Long contractId; /** * 项目合同 @@ -54,4 +56,8 @@ public class ContractDTO { * 查询枚举 AuditStatusEnums , 最终以字典表中project_audit_status字典编码为准 */ private Integer auditStatus; + /** + * 备注 + */ + private String remark; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/PageAuditDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/PageAuditDTO.java new file mode 100644 index 0000000..08d8894 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/PageAuditDTO.java @@ -0,0 +1,46 @@ +package com.chushang.inspection.project.entity.dto; + +import cn.hutool.core.date.DatePattern; +import com.chushang.common.mybatis.annotation.Condition; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @auther: zhao + * @date: 2024/6/17 17:59 + */ +@Data +public class PageAuditDTO { + /** + * 多选 第三方id + */ + @Condition(name = "third_id", type = Condition.ConditionType.in) + private List thirdIds; + /** + * 审核状态 + */ + @Condition(name = "audit_status", type = Condition.ConditionType.eq) + private Integer auditStatus; + /** + * 默认 合同审核 + */ + @Condition(name = "third_type", type = Condition.ConditionType.eq) + private Integer auditType = 1; + /** + * 审核人 + */ + @Condition(name = "audit_user_id", type = Condition.ConditionType.eq) + private Long auditUserId; + + /** + * 审核时间 区间 + */ + @Condition(name = "audit_time", type = Condition.ConditionType.between) + @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) + private List auditTimes; + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java index 728c1fa..1243e31 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java @@ -7,6 +7,7 @@ import com.chushang.common.mybatis.base.BaseEntity; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; +import java.util.List; import lombok.*; @@ -101,4 +102,10 @@ public class WrkProjectContract extends BaseEntity { */ @TableField("dept_id") private Long deptId; + + /** + * 审核记录 + */ + @TableField(exist = false) + private List audits; } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkAuditController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkAuditController.java index c220fb7..cfdbc7d 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkAuditController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkAuditController.java @@ -1,14 +1,14 @@ package com.chushang.inspection.project.controller; import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.mybatis.page.CommonParam; import com.chushang.inspection.project.entity.dto.AuditDTO; +import com.chushang.inspection.project.entity.dto.PageAuditDTO; import com.chushang.inspection.project.service.WrkAuditService; import com.chushang.security.annotation.RequiresPermissions; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -29,10 +29,37 @@ public class WrkAuditController { */ @GetMapping(value = "/list") // @RequiresPermissions("project:audit:list") - public AjaxResult pageList(@Validated AuditDTO auditDTO){ + public AjaxResult pageList(@Validated PageAuditDTO auditDTO){ return AjaxResult.success(auditService.pageList(auditDTO)); } + /** + * 审核 + */ + @PostMapping(value = "/audit/{auditId}") +// @RequiresPermissions("project:audit:audit") + public AjaxResult audit(@PathVariable Long auditId, + @RequestBody@Validated AuditDTO auditDTO) + { + auditService.audit(auditId, auditDTO); + return AjaxResult.success(); + } + + @DeleteMapping(value = "/del") + public AjaxResult del(){ + + return AjaxResult.success(); + } + + /** + * 获取合同详情 + */ + @GetMapping(value = "/contract/{contractId}") + @RequiresPermissions(value = "inspection:contract:info") + public AjaxResult getContractInfo(@PathVariable Long contractId){ + return AjaxResult.success(auditService.getContractInfo(contractId)); + } + } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkProjectController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkProjectController.java index ac1ce62..641a538 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkProjectController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/WrkProjectController.java @@ -134,7 +134,6 @@ public class WrkProjectController { return AjaxResult.success(contractService.pageList(projectId, commonParam)); } - // /** // // /** diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkAuditService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkAuditService.java index 8d70e3a..bc65bdc 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkAuditService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkAuditService.java @@ -3,18 +3,28 @@ package com.chushang.inspection.project.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.datascope.annotation.DataScope; import com.chushang.inspection.project.entity.dto.AuditDTO; -import com.chushang.inspection.project.entity.po.WrkProject; -import lombok.Data; +import com.chushang.inspection.project.entity.dto.PageAuditDTO; +import com.chushang.inspection.project.entity.po.WrkProjectContract; +import com.chushang.security.utils.SecurityUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.project.entity.po.WrkAudit; import com.chushang.inspection.project.mapper.WrkAuditMapper; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Objects; /** * @auther: zhao @@ -24,8 +34,11 @@ import com.chushang.inspection.project.mapper.WrkAuditMapper; @Service public class WrkAuditService extends ServiceImpl implements IService { + @Resource + WrkProjectContractService contractService; + @DataScope - public PageResult pageList(AuditDTO auditDTO) + public PageResult pageList(PageAuditDTO auditDTO) { CommonParam commonParam = CommonParam.buildPageRequest(); LambdaQueryWrapper auditSql = WrapperUtils.builder(auditDTO,commonParam); @@ -35,4 +48,72 @@ public class WrkAuditService extends ServiceImpl imple ); return new PageResult(page); } + + @DataScope + public List allList(PageAuditDTO auditDTO) + { + CommonParam commonParam = CommonParam.buildAllRequest(); + LambdaQueryWrapper auditSql = WrapperUtils.builder(auditDTO,commonParam); + return this.list(auditSql); + } + + /** + * 合同 或者 项目 审核 + */ + @Transactional + public void audit(Long auditId, AuditDTO audit) + { + + WrkAudit byId = getById(auditId); + AssertUtil.invalidate(null == byId, "审核记录不存在"); + Integer thirdAuditStatus = audit.getAuditStatus(); + AssertUtil.invalidate(Objects.equals(byId.getAuditStatus(), thirdAuditStatus), "审核状态不能重复审核"); + + // 更新审核状态 + WrkAudit wrkAudit = new WrkAudit(); + // 此处为 新增一条 审核信息 +// wrkAudit.setAuditId(auditId); + wrkAudit.setAuditStatus(audit.getAuditStatus()); + wrkAudit.setAuditName(SecurityUtils.getUsername()); + wrkAudit.setAuditUserId(SecurityUtils.getUserId()); + wrkAudit.setRemark(audit.getRemark()); + wrkAudit.setAuditTime(LocalDateTime.now()); + wrkAudit.setThirdId(byId.getThirdId()); + wrkAudit.setThirdType(byId.getThirdType()); + // 此处需要判断 审核状态 + /** + * 未提交 0 + * 待初审 1 + * 待复审 2 + * 初审通过 3 + * 复审通过 4 + * 初审驳回 5 + * 复审驳回 6 + * 已撤销 7 + */ + if (Objects.equals(byId.getThirdType(), 0)) { + // 项目审核 +// projectService.updateState(byId.getThirdId(), auditStatus); + } else { + // 合同审核 + contractService.updateAuditStatus(byId.getThirdId(), thirdAuditStatus); + } + // 同时需要更新 合同内的审核状态 + updateById(wrkAudit); + } + + /** + * 获取 合同以及合同对应的 审核列表 + */ + public WrkProjectContract getContractInfo(Long contractId) + { + // 合同信息 + WrkProjectContract contract = contractService.getById(contractId); + if (null != contract){ + PageAuditDTO pageAuditDTO = new PageAuditDTO(); + pageAuditDTO.setThirdIds(Collections.singletonList(contractId)); + contract.setAudits(allList(pageAuditDTO)); + } + return contract; + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkProjectContractService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkProjectContractService.java index a4c9f1e..802404a 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkProjectContractService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/WrkProjectContractService.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.WrapperUtils; @@ -33,9 +34,9 @@ public class WrkProjectContractService extends ServiceImpl implements IService { @Resource WrkProjectContractService contractService; + @Resource + WrkAuditService auditService; @DataScope public PageResult pageList(WrkProject project, CommonParam commonParam) { @@ -55,7 +59,6 @@ public class WrkProjectService extends ServiceImpl Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); // Long deptId = 200L; wrkProject.setDeptId(deptId); - ContractDTO contract = project.getContract(); LocalDateTime now = LocalDateTime.now(); // 项目合同 @@ -67,7 +70,6 @@ public class WrkProjectService extends ServiceImpl this.save(wrkProject); // 项目合同 saveContract(contract); - return wrkProject.getProjectId(); } @@ -138,13 +140,31 @@ public class WrkProjectService extends ServiceImpl contractService.save(projectContract); updateState(contract.getProjectId(), projectEffect ? 1 : 0 ); + Integer auditStatus = contract.getAuditStatus(); + // 新增合同的审核记录 + WrkAudit audit = new WrkAudit(); + audit.setThirdType(1); + audit.setDeptId(deptId); + audit.setAuditStatus(auditStatus); + audit.setThirdId(projectContract.getContractId()); + audit.setRemark(contract.getRemark()); + auditService.save(audit); + return projectContract.getContractId(); } @Transactional public Long updateContract(ContractDTO contract) { + // 修改 合同时必须未提交或者已经撤销 + LambdaQueryWrapper contractSql = WrapperUtils.builder(contract, null); + contractSql.last(Operator.LIMIT_ONE.getCharacter()); + WrkProjectContract projectContract = contractService.getOne(contractSql); + AssertUtil.invalidate(null == projectContract, "合同不存在"); + Integer auditStatus = projectContract.getAuditStatus(); + AssertUtil.invalidate(0 != auditStatus && 7 != auditStatus, "当前合同已提交审核, 无法修改"); + + projectContract = new WrkProjectContract(); // 项目合同 - WrkProjectContract projectContract = WrkProjectContract.builder().build(); BeanUtil.copyProperties(contract, projectContract); projectContract.setProjectId(null); diff --git a/chushang-modules/chushang-module-task/task-service/pom.xml b/chushang-modules/chushang-module-task/task-service/pom.xml index e4db4e9..d12bf8c 100644 --- a/chushang-modules/chushang-module-task/task-service/pom.xml +++ b/chushang-modules/chushang-module-task/task-service/pom.xml @@ -46,7 +46,7 @@ false - com.chushang.LoanApplication + com.chushang.TaskApplication diff --git a/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/remote/RemoteTaskController.java b/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/remote/RemoteTaskController.java index 07e4c96..9122c22 100644 --- a/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/remote/RemoteTaskController.java +++ b/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/remote/RemoteTaskController.java @@ -32,7 +32,6 @@ public class RemoteTaskController implements RemoteTaskService { @PostMapping("/create") public Result createTask(@RequestBody CreateTaskDTO task, String source) { TaskInfo taskInfo = TaskInfo.builder() - .applicationName(task.getApplicationName().getServiceName()) .className(task.getClassName()) .methodName(task.getMethodName()) diff --git a/pom.xml b/pom.xml index 19e509e..9279d3b 100644 --- a/pom.xml +++ b/pom.xml @@ -21,11 +21,11 @@ cloud cloud - 192.168.110.75:8848 - 5512c576-2976-4334-b6f5-fe7c3014f654 + 192.168.1.168:16000,192.168.1.169:16000,192.168.1.98:16000 + 11c67dc3-423c-4195-b945-ace6cb2323a1 DEFAULT_GROUP nacos - nacos@123 + qq630638001 localhost:5003