1. 项目 合同 以及审核
This commit is contained in:
parent
6541eb6915
commit
cb219b2493
|
|
@ -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<Long> 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<LocalDateTime> auditTimes;
|
||||
|
||||
private String remark;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Long> 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<LocalDateTime> auditTimes;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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<WrkAudit> audits;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,7 +134,6 @@ public class WrkProjectController {
|
|||
return AjaxResult.success(contractService.pageList(projectId, commonParam));
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
//
|
||||
// /**
|
||||
|
|
|
|||
|
|
@ -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<WrkAuditMapper, WrkAudit> implements IService<WrkAudit> {
|
||||
|
||||
@Resource
|
||||
WrkProjectContractService contractService;
|
||||
|
||||
@DataScope
|
||||
public PageResult pageList(AuditDTO auditDTO)
|
||||
public PageResult pageList(PageAuditDTO auditDTO)
|
||||
{
|
||||
CommonParam commonParam = CommonParam.buildPageRequest();
|
||||
LambdaQueryWrapper<WrkAudit> auditSql = WrapperUtils.builder(auditDTO,commonParam);
|
||||
|
|
@ -35,4 +48,72 @@ public class WrkAuditService extends ServiceImpl<WrkAuditMapper, WrkAudit> imple
|
|||
);
|
||||
return new PageResult(page);
|
||||
}
|
||||
|
||||
@DataScope
|
||||
public List<WrkAudit> allList(PageAuditDTO auditDTO)
|
||||
{
|
||||
CommonParam commonParam = CommonParam.buildAllRequest();
|
||||
LambdaQueryWrapper<WrkAudit> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<WrkProjectContractMap
|
|||
public void delete(Long contractId) {
|
||||
WrkProjectContract contract = getById(contractId);
|
||||
Integer auditStatus = contract.getAuditStatus();
|
||||
if (3 == auditStatus || 4 == auditStatus){
|
||||
log.info("删除已经审核通过的项目");
|
||||
}
|
||||
// 不为 0 时, 合同不能删除
|
||||
AssertUtil.invalidate(0 != auditStatus && 7 != auditStatus, "当前合同无法删除, 请撤销后删除");
|
||||
|
||||
removeById(contractId);
|
||||
}
|
||||
|
||||
|
|
@ -52,4 +53,15 @@ public class WrkProjectContractService extends ServiceImpl<WrkProjectContractMap
|
|||
);
|
||||
return new PageResult(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 合同的 审核状态
|
||||
*/
|
||||
public void updateAuditStatus(Long contractId, Integer auditStatus) {
|
||||
updateById(WrkProjectContract.builder()
|
||||
.contractId(contractId)
|
||||
.auditStatus(auditStatus)
|
||||
.build());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.enums.Operator;
|
||||
import com.chushang.common.mybatis.page.CommonParam;
|
||||
import com.chushang.common.mybatis.utils.PageResult;
|
||||
|
|
@ -11,6 +12,7 @@ import com.chushang.common.mybatis.utils.WrapperUtils;
|
|||
import com.chushang.datascope.annotation.DataScope;
|
||||
import com.chushang.inspection.project.entity.dto.ContractDTO;
|
||||
import com.chushang.inspection.project.entity.dto.ProjectDTO;
|
||||
import com.chushang.inspection.project.entity.po.WrkAudit;
|
||||
import com.chushang.inspection.project.entity.po.WrkProjectContract;
|
||||
import com.chushang.security.utils.SecurityUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -33,6 +35,8 @@ import java.util.List;
|
|||
public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject> implements IService<WrkProject> {
|
||||
@Resource
|
||||
WrkProjectContractService contractService;
|
||||
@Resource
|
||||
WrkAuditService auditService;
|
||||
|
||||
@DataScope
|
||||
public PageResult pageList(WrkProject project, CommonParam commonParam) {
|
||||
|
|
@ -55,7 +59,6 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
|
|||
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<WrkProjectMapper, WrkProject>
|
|||
this.save(wrkProject);
|
||||
// 项目合同
|
||||
saveContract(contract);
|
||||
|
||||
return wrkProject.getProjectId();
|
||||
}
|
||||
|
||||
|
|
@ -138,13 +140,31 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
|
|||
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<WrkProjectContract> 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);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
<!-- jar包不包含唯一版本标识 -->
|
||||
<useUniqueVersions>false</useUniqueVersions>
|
||||
<!--指定入口类 -->
|
||||
<mainClass>com.chushang.LoanApplication</mainClass>
|
||||
<mainClass>com.chushang.TaskApplication</mainClass>
|
||||
</manifest>
|
||||
<manifestEntries>
|
||||
<!--MANIFEST.MF 中 Class-Path 加入资源文件目录 -->
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class RemoteTaskController implements RemoteTaskService {
|
|||
@PostMapping("/create")
|
||||
public Result<Long> createTask(@RequestBody CreateTaskDTO task, String source) {
|
||||
TaskInfo taskInfo = TaskInfo.builder()
|
||||
|
||||
.applicationName(task.getApplicationName().getServiceName())
|
||||
.className(task.getClassName())
|
||||
.methodName(task.getMethodName())
|
||||
|
|
|
|||
6
pom.xml
6
pom.xml
|
|
@ -21,11 +21,11 @@
|
|||
<id>cloud</id>
|
||||
<properties>
|
||||
<profiles.active>cloud</profiles.active>
|
||||
<nacos.host>192.168.110.75:8848</nacos.host>
|
||||
<nacos.namespace>5512c576-2976-4334-b6f5-fe7c3014f654</nacos.namespace>
|
||||
<nacos.host>192.168.1.168:16000,192.168.1.169:16000,192.168.1.98:16000</nacos.host>
|
||||
<nacos.namespace>11c67dc3-423c-4195-b945-ace6cb2323a1</nacos.namespace>
|
||||
<nacos.group>DEFAULT_GROUP</nacos.group>
|
||||
<nacos.username>nacos</nacos.username>
|
||||
<nacos.password>nacos@123</nacos.password>
|
||||
<nacos.password>qq630638001</nacos.password>
|
||||
<sentinel-transport.dashboard>localhost:5003</sentinel-transport.dashboard>
|
||||
</properties>
|
||||
</profile>
|
||||
|
|
|
|||
Loading…
Reference in New Issue