From f840b2820a7a71d94ca3d9e129460a63426c401f Mon Sep 17 00:00:00 2001 From: mashuai Date: Thu, 28 Aug 2025 19:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lease/mapper/LeaseApplyInfoMapper.java | 7 ++++ .../impl/LeaseApplyInfoServiceImpl.java | 24 +++++++++++- .../part/domain/PartLeaseDetails.java | 18 +++++++++ .../material/part/domain/vo/PartLeaseVo.java | 16 ++++++++ .../material/part/mapper/PartLeaseMapper.java | 15 ++++++++ .../service/impl/PartLeaseServiceImpl.java | 38 +++++++++++++++++++ .../impl/RepairInputDetailsServiceImpl.java | 27 +++---------- .../SysWorkflowRecordHistoryServiceImpl.java | 4 +- .../material/lease/LeaseApplyInfoMapper.xml | 13 +++++++ .../mapper/material/ma/MachineMapper.xml | 3 -- .../mapper/material/part/PartLeaseMapper.xml | 38 ++++++++++++++++++- 11 files changed, 175 insertions(+), 28 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java index c803df7b..c54e07a9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java @@ -216,4 +216,11 @@ public interface LeaseApplyInfoMapper { * @return */ LeaseApplyInfo getInfoList(LeaseApplyInfo applyInfo); + + /** + * 查询是否存在出库数据 + * @param id + * @return + */ + List selectInfo(Long id); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java index 6149679a..2f2463c5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java @@ -1128,6 +1128,17 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { } // 修改外层info leaseApplyInfoMapper.updateLeaseApplyInfo(leaseApplyInfo); + // 进行状态判断 + List leaseApplyDetailsList = leaseApplyDetailsMapper.getByParentId(leaseApplyInfo.getId()); + int i = GlobalConstants.INT_0; + for (LeaseApplyDetails bean : leaseApplyDetailsList) { + if (Objects.equals(bean.getPreNum(), bean.getAlNum())) { + i++; + } + } + if (i == leaseApplyDetailsList.size()) { + tmTaskMapper.updateTaskStatus(leaseApplyInfo.getTaskId().toString(), LeaseTaskStatusEnum.LEASE_TASK_FINISHED.getStatus()); + } return true; } return false; @@ -1300,7 +1311,18 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { */ @Override public int deleteLeaseApplyInfoByIds(Long[] ids) { - return leaseApplyInfoMapper.deleteLeaseApplyInfoByIds(ids); + // 根据ids去查询该任务是否存在出库数据,存在则不能删除 + for (Long id : ids) { + List list = leaseApplyInfoMapper.selectInfo(id); + if (!CollectionUtils.isEmpty(list)) { + throw new RuntimeException("该任务存在出库数据,不允许删除!"); + } + } + int result = leaseApplyInfoMapper.deleteLeaseApplyInfoByIds(ids); + if (result > 0) { + result = leaseApplyDetailsMapper.deleteLeaseApplyDetailsByParentIds(ids); + } + return result; } /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartLeaseDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartLeaseDetails.java index 4ca89faa..c5aa8b3f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartLeaseDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartLeaseDetails.java @@ -55,4 +55,22 @@ public class PartLeaseDetails extends BaseEntity implements java.io.Serializable private String keyWord; + private String signUrl; + + @ApiModelProperty(value = "签名类型 手写0 和 图片上传1") + private int signType; + + /** + * 审核人 + */ + private String auditor; + + @ApiModelProperty(value = "操作人") + private String creator; + + private String createSignUrl; + + @ApiModelProperty(value = "签名类型 手写0 和 图片上传1") + private int createSignType; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/vo/PartLeaseVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/vo/PartLeaseVo.java index b8c9bcaa..130212ea 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/vo/PartLeaseVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/vo/PartLeaseVo.java @@ -1,5 +1,6 @@ package com.bonus.material.part.domain.vo; +import com.bonus.common.biz.domain.lease.LeaseOutSign; import com.bonus.material.part.domain.PartLeaseDetails; import lombok.Data; @@ -22,4 +23,19 @@ public class PartLeaseVo { * 领料明细 */ private List detailsList; + + /** + * 领料人兼制单人签名 + */ + private LeaseOutSign leaseSignInfo; + + /** + * 审核人签名 + */ + private List approveSignInfo; + + /** + * 库管签名 + */ + private List kgSignInfo; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/mapper/PartLeaseMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/mapper/PartLeaseMapper.java index 7de90069..97f232d0 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/mapper/PartLeaseMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/mapper/PartLeaseMapper.java @@ -1,5 +1,6 @@ package com.bonus.material.part.mapper; +import com.bonus.common.biz.domain.lease.LeaseOutSign; import com.bonus.material.ma.domain.PartType; import com.bonus.material.part.domain.MaPartTypeKeeper; import com.bonus.material.part.domain.PartLeaseDetails; @@ -165,4 +166,18 @@ public interface PartLeaseMapper { * @return */ List selectUserList(PartType partType); + + /** + * 获取库存签名id集合 + * @param partLeaseDetails + * @return + */ + String selectSignList(PartLeaseDetails partLeaseDetails); + + /** + * 根据id获取库管签名 + * @param signIdList + * @return + */ + List selectSignListInfo(@Param("list") List signIdList); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartLeaseServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartLeaseServiceImpl.java index 8744482c..f7412473 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartLeaseServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartLeaseServiceImpl.java @@ -3,6 +3,7 @@ package com.bonus.material.part.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.common.biz.constant.MaterialConstants; +import com.bonus.common.biz.domain.lease.LeaseOutSign; import com.bonus.common.biz.enums.PartLeaseTaskStatusEnum; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; @@ -149,6 +150,43 @@ public class PartLeaseServiceImpl implements PartLeaseService { details.setDeptName(deptName); details.setSendDeptName(sendDeptName); partLeaseVo.setDetails(details); + // 获取list中的制单人签名 + PartLeaseDetails partLeaseDetails1 = list.get(0); + if (StringUtils.isNotBlank(partLeaseDetails1.getCreateSignUrl())) { + if (!partLeaseDetails1.getCreateSignUrl().startsWith("http")) { + partLeaseDetails1.setCreateSignUrl("data:image/png;base64," + partLeaseDetails1.getCreateSignUrl()); + } + LeaseOutSign leaseOutSign = new LeaseOutSign(partLeaseDetails1.getCreateSignType(), + partLeaseDetails1.getCreateSignUrl()); + partLeaseVo.setLeaseSignInfo(leaseOutSign); + } + // 根据list集合中的auditor进行分组,分别获取签名 + Map> auditorMap = list.stream() + .filter(item -> StringUtils.isNotBlank(item.getAuditor())) + .collect(Collectors.groupingBy(PartLeaseDetails::getAuditor)); + List arrayList = new ArrayList<>(); + // 根据key获取auditorMap中的值,每个key只有获取一次值即可,转入到arrayList中 + for (String key : auditorMap.keySet()) { + List value = auditorMap.get(key); + PartLeaseDetails partLeaseDetails2 = value.get(0); + if (StringUtils.isNotBlank(partLeaseDetails2.getSignUrl())) { + if (!partLeaseDetails2.getSignUrl().startsWith("http")) { + partLeaseDetails2.setSignUrl("data:image/png;base64," + partLeaseDetails2.getSignUrl()); + } + LeaseOutSign leaseOutSign = new LeaseOutSign(partLeaseDetails2.getSignType(), + partLeaseDetails2.getSignUrl()); + arrayList.add(leaseOutSign); + } + } + partLeaseVo.setApproveSignInfo(arrayList); + // 获取库管签名 + String signId = partLeaseMapper.selectSignList(partLeaseDetails); + if (StringUtils.isNotBlank(signId)) { + // 根据id获取库管签名,将signId转换为集合 + List signIdList = Arrays.asList(signId.split(",")); + List signList = partLeaseMapper.selectSignListInfo(signIdList); + partLeaseVo.setKgSignInfo(signList); + } } return partLeaseVo; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java index 012cf75e..fea2cc13 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java @@ -782,7 +782,7 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService RepairInputDetails inputInfo = new RepairInputDetails(); if (StringUtils.isNotBlank(inputApplyDetails.getMaCode())) { - inputInfo = checkCodeMachineStatus(inputApplyDetails.getMaCode()); + inputInfo = checkCodeMachineStatus(inputApplyDetails.getMaId()); } else { inputInfo = checkMachineStatus(inputApplyDetails.getQrCode()); } @@ -813,28 +813,13 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService /** * 修饰入库之编码入库 - * @param maCode + * @param maId * @return */ - private RepairInputDetails checkCodeMachineStatus(String maCode) { - RepairInputDetails inputInfo = new RepairInputDetails(); - - Machine ma = new Machine(); - ma.setMaCode(maCode); - Machine ma2 = machineMapper.selectMachineByQrCode(ma); - long maId = ma2.getMaId(); - - String status = ma2.getMaStatus(); - if("5".equals(status)){ - InputApplyDetails inputApplyDetails = new InputApplyDetails(); - inputApplyDetails.setMaId(maId); - inputInfo = repairInputDetailsMapper.selectInputInfoByMaId(inputApplyDetails); - - - }else{ - inputInfo = null; - } - return inputInfo; + private RepairInputDetails checkCodeMachineStatus(Long maId) { + InputApplyDetails inputApplyDetails = new InputApplyDetails(); + inputApplyDetails.setMaId(maId); + return repairInputDetailsMapper.selectInputInfoByMaId(inputApplyDetails); } @Override diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java index 3e9f144a..b8be4937 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java @@ -118,8 +118,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis - String flag = checkAuditUser(recordId,sysUser); - + //String flag = checkAuditUser(recordId,sysUser); + String flag = "0"; if("0".equals( flag)){ Integer taskId = sysWorkflowRecordHistory.getTaskId(); Integer leaseId = sysWorkflowRecordHistory.getLeaseId(); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml index eb2516f0..21010749 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml @@ -878,4 +878,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" HAVING SUM( out_num ) > 0 + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml index fa0d0ac6..cb51c0d0 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml @@ -626,9 +626,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mm.qr_code = #{qrCode} - - and mm.ma_code LIKE CONCAT('%',#{maCode},'%') - + + + + insert into pa_collar_apply_details(task_id, part_id, pre_num, al_num, remarks) values (#{taskId}, #{partId}, #{preNum}, #{alNum}, #{remarks})