新购验收会签流程增加,验收单修改
This commit is contained in:
parent
b14bed4d9a
commit
8b4e9a9184
|
|
@ -2,6 +2,7 @@ package com.bonus.material.countersign.mapper;
|
|||
|
||||
import com.bonus.material.countersign.domain.SignConfigVo;
|
||||
import com.bonus.material.countersign.domain.SignProcessVo;
|
||||
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -14,6 +15,23 @@ import java.util.List;
|
|||
public interface SignProcessMapper
|
||||
{
|
||||
|
||||
/**
|
||||
* 查询采购任务的会签记录
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
List<PurchaseSignRecord> getPurchaseSignRecordByTask(Long taskId);
|
||||
|
||||
/**
|
||||
* 查询采新购验收任务已进行会签的签名地址
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
List<PurchaseSignRecord> getPurchaseSignUrlListByTaskId(Long taskId);
|
||||
|
||||
/**
|
||||
* 插入新购任务的会签记录
|
||||
*/
|
||||
int insertPurchaseSignRecord(PurchaseSignRecord purchaseSignRecord);
|
||||
|
||||
/**
|
||||
* 查询会签流程配置管理列表
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
package com.bonus.material.purchase.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @author : 阮世耀
|
||||
* @version : 1.0
|
||||
* @PackagePath: com.bonus.material.purchase.domain
|
||||
* @CreateTime: 2025-01-17 16:45
|
||||
* @Description: 新购会签记录表
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PurchaseSignRecord {
|
||||
|
||||
private Long id;
|
||||
|
||||
private Long taskId;
|
||||
|
||||
private Long userId;
|
||||
|
||||
private Long orgId;
|
||||
|
||||
private String signUrl;
|
||||
|
||||
private String signType;
|
||||
|
||||
public PurchaseSignRecord(Long taskId, Long userId, Long orgId) {
|
||||
this.taskId = taskId;
|
||||
this.userId = userId;
|
||||
this.orgId = orgId;
|
||||
}
|
||||
|
||||
public PurchaseSignRecord() {
|
||||
}
|
||||
|
||||
public PurchaseSignRecord(Long id, Long taskId, Long userId, Long orgId, String signUrl, String signType) {
|
||||
this.id = id;
|
||||
this.taskId = taskId;
|
||||
this.userId = userId;
|
||||
this.orgId = orgId;
|
||||
this.signUrl = signUrl;
|
||||
this.signType = signType;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.bonus.material.purchase.domain.vo;
|
|||
|
||||
import com.bonus.material.archives.domain.ElcSignatureInfo;
|
||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -31,6 +32,12 @@ public class PurchaseCheckFormVo {
|
|||
@ApiModelProperty(value = "供应科")
|
||||
private String supplyDept;
|
||||
|
||||
private List<PurchaseSignRecord> gySignUrl = new ArrayList<>();
|
||||
|
||||
private List<PurchaseSignRecord> scSignUrl = new ArrayList<>();
|
||||
|
||||
private List<PurchaseSignRecord> kgSignUrl = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty("生产技术科")
|
||||
private String productionTechDept;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,13 +15,17 @@ import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
|||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.core.web.domain.BaseEntity;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.basic.domain.BmFileInfo;
|
||||
import com.bonus.material.basic.mapper.BmFileInfoMapper;
|
||||
import com.bonus.material.basic.service.IBmConfigService;
|
||||
import com.bonus.material.countersign.domain.SignProcessVo;
|
||||
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
||||
import com.bonus.material.ma.domain.Type;
|
||||
import com.bonus.material.ma.mapper.TypeMapper;
|
||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
|
||||
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
|
||||
import com.bonus.material.purchase.domain.vo.PurchaseVerifyVo;
|
||||
|
|
@ -30,6 +34,7 @@ import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
|||
import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
|
||||
import com.bonus.material.task.domain.TmTask;
|
||||
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -71,6 +76,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
@Resource
|
||||
private TypeMapper typeMapper;
|
||||
|
||||
@Resource
|
||||
private SignProcessMapper signProcessMapper;
|
||||
|
||||
|
||||
// 引入新购任务阶段常量
|
||||
private static final int PURCHASE_TASK_STAGE_MANAGE = 1;
|
||||
private static final int PURCHASE_TASK_STAGE_CHECK = 2;
|
||||
|
|
@ -444,6 +453,62 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) {
|
||||
// 验收通过处理流程
|
||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||
// 前端选择验收通过操作,进入会签校验流程
|
||||
if (null != details && null != details.getTaskId()) {
|
||||
// 查询已进行会签的org_id集合
|
||||
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
|
||||
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||
if (null == loginUserDeptId || 0 == loginUserDeptId) {
|
||||
return AjaxResult.error("会签失败!,请检查用户部门信息");
|
||||
}
|
||||
if (CollectionUtils.isEmpty(purchaseSignRecordList)) {
|
||||
// 如果没有进行过会签,则进行会签流程
|
||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
||||
if (0 < addPurchaseSignResult) {
|
||||
return AjaxResult.success("会签成功");
|
||||
} else {
|
||||
return AjaxResult.error("会签失败!,插入0条数据");
|
||||
}
|
||||
} else {
|
||||
// 进行过会签,进行下一步校验
|
||||
|
||||
// 查询需要进行会签的org_id集合
|
||||
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
||||
if (CollectionUtils.isEmpty(signProcessVoList)) {
|
||||
return AjaxResult.error("会签失败!,未查询到会签配置流程!");
|
||||
} else {
|
||||
// 查询出配置需要会签的org_id集合
|
||||
Set<Long> configSignOrgSet = signProcessVoList.stream().map(SignProcessVo::getOrgId).collect(Collectors.toSet());
|
||||
// 获取已进行会签的org_id集合
|
||||
Set<Long> signedOrgSet = purchaseSignRecordList.stream().map(PurchaseSignRecord::getOrgId).collect(Collectors.toSet());
|
||||
// 移除已会签的org_id
|
||||
configSignOrgSet.removeAll(signedOrgSet);
|
||||
if (!CollectionUtils.isEmpty(configSignOrgSet)) {
|
||||
// 如果还有需要进行会签的数据,那么进行本次会签
|
||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
||||
if (0 < addPurchaseSignResult) {
|
||||
// 会签成功,对配置的流程进行处理
|
||||
configSignOrgSet.remove(loginUserDeptId);
|
||||
if (configSignOrgSet.isEmpty()) {
|
||||
System.out.println("ONE会签成功,放行进行验收流程!");
|
||||
} else {
|
||||
// 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端
|
||||
return AjaxResult.success("本次会签成功,还有未进行的会签部门!");
|
||||
}
|
||||
} else {
|
||||
return AjaxResult.error("会签失败!,插入0条数据");
|
||||
}
|
||||
} else {
|
||||
System.out.println("TWO会签成功,已全部进行会签,放行进行验收流程!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
return AjaxResult.error("detail数据异常,任务ID为空");
|
||||
}
|
||||
|
||||
|
||||
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(details.getManageType())) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(details.getManageType())) {
|
||||
|
|
@ -504,9 +569,21 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
purchaseCheckInfo.setTaskId(taskId);
|
||||
List<PurchaseCheckDetails> list = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListFromInfo(purchaseCheckInfo);
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
List<PurchaseSignRecord> purchaseSignRecordUserSignList = new ArrayList<>();
|
||||
for (PurchaseCheckDetails purchaseCheckDetails : list) {
|
||||
result.setSignUrl(purchaseCheckDetails.getSignUrl() != null ? purchaseCheckDetails.getSignUrl() : "");
|
||||
result.setSignType(purchaseCheckDetails.getSignType() != null ? purchaseCheckDetails.getSignType() : "");
|
||||
// 查询已签名的记录
|
||||
if (purchaseSignRecordUserSignList.isEmpty()) {
|
||||
purchaseSignRecordUserSignList = signProcessMapper.getPurchaseSignUrlListByTaskId(purchaseCheckDetails.getTaskId());
|
||||
}
|
||||
result.setSignUrl(null != purchaseCheckDetails.getSignUrl() ? purchaseCheckDetails.getSignUrl() : "");
|
||||
result.setSignType(null != purchaseCheckDetails.getSignType() ? purchaseCheckDetails.getSignType() : "");
|
||||
}
|
||||
// 分流存入集合
|
||||
for (PurchaseSignRecord userSignObj : purchaseSignRecordUserSignList) {
|
||||
if (null == userSignObj.getOrgId()) { continue;}
|
||||
if (311 == userSignObj.getOrgId()) {result.getGySignUrl().add(userSignObj);}
|
||||
if (313 == userSignObj.getOrgId()) {result.getScSignUrl().add(userSignObj);}
|
||||
if (312 == userSignObj.getOrgId()) {result.getKgSignUrl().add(userSignObj);}
|
||||
}
|
||||
}
|
||||
// 执行SQL查询内层信息
|
||||
|
|
|
|||
|
|
@ -99,4 +99,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where id = #{id} and del_flag = 0
|
||||
</update>
|
||||
|
||||
<select id="getPurchaseSignRecordByTask" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
||||
select
|
||||
id, task_id as taskId, auditor as userId, org_id as orgId
|
||||
from
|
||||
purchase_audit_record
|
||||
where
|
||||
task_id = #{taskId}
|
||||
</select>
|
||||
|
||||
<insert id="insertPurchaseSignRecord">
|
||||
insert into purchase_audit_record(task_id, auditor, org_id)
|
||||
values(#{taskId}, #{userId}, #{orgId})
|
||||
</insert>
|
||||
|
||||
<select id="getPurchaseSignUrlListByTaskId" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
||||
SELECT par.id, par.task_id as taskId, par.org_id as orgId, par.auditor as userId,
|
||||
su.sign_url as signUrl,su.sign_type as signType
|
||||
FROM purchase_audit_record par
|
||||
LEFT JOIN sys_user su ON su.user_id = par.auditor
|
||||
WHERE par.task_id = '844'
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue