This commit is contained in:
mashuai 2025-02-19 19:01:52 +08:00
parent 783274697f
commit 85d9e0bacd
5 changed files with 74 additions and 29 deletions

View File

@ -1,14 +1,11 @@
package com.bonus.material.part.domain; package com.bonus.material.part.domain;
import com.bonus.material.part.domain.PartTypeCheckDetails; import com.bonus.material.purchase.domain.PurchaseSignRecord;
import com.bonus.material.part.domain.PartTypeCheckInfo;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -28,4 +25,16 @@ public class PartTypeCheckDto {
@ApiModelProperty(value = "采购验收任务详情集合") @ApiModelProperty(value = "采购验收任务详情集合")
private List<PartTypeCheckDetails> partTypeCheckDetailsList; private List<PartTypeCheckDetails> partTypeCheckDetailsList;
@ApiModelProperty(value = "签名地址")
private String signUrl;
@ApiModelProperty(value = "签名类型 手写0 和 图片上传1")
private String signType;
private List<PurchaseSignRecord> gySignUrl = new ArrayList<>();
private List<PurchaseSignRecord> scSignUrl = new ArrayList<>();
private List<PurchaseSignRecord> kgSignUrl = new ArrayList<>();
} }

View File

@ -37,11 +37,11 @@ public class PartTypeQueryDto {
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime; private String startTime;
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime; private String endTime;
@ApiModelProperty(value = "外层任务状态") @ApiModelProperty(value = "外层任务状态")
private Integer taskStatus; private Integer taskStatus;

View File

@ -11,12 +11,12 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.countersign.mapper.SignProcessMapper;
import com.bonus.material.part.domain.*; import com.bonus.material.part.domain.*;
import com.bonus.material.part.mapper.PartArrivedMapper; import com.bonus.material.part.mapper.PartArrivedMapper;
import com.bonus.material.part.service.IPartArrivedService; import com.bonus.material.part.service.IPartArrivedService;
import com.bonus.material.purchase.domain.PurchaseCheckInfo; import com.bonus.material.purchase.domain.PurchaseSignRecord;
import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.domain.TmTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -45,6 +45,9 @@ public class PartArrivedServiceImpl implements IPartArrivedService
@Resource @Resource
BmFileInfoMapper bmFileInfoMapper; BmFileInfoMapper bmFileInfoMapper;
@Resource
private SignProcessMapper signProcessMapper;
// 引入新购任务阶段常量 // 引入新购任务阶段常量
private static final int PURCHASE_TASK_STAGE_MANAGE = 1; private static final int PURCHASE_TASK_STAGE_MANAGE = 1;
private static final int PURCHASE_TASK_STAGE_CHECK = 2; private static final int PURCHASE_TASK_STAGE_CHECK = 2;
@ -244,7 +247,12 @@ public class PartArrivedServiceImpl implements IPartArrivedService
.filter(item -> containsKeyword(item, keyWord)) .filter(item -> containsKeyword(item, keyWord))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
if (StringUtils.isNotBlank(partTypeQueryDto.getTaskStatusName())) { if (partTypeQueryDto.getTaskStatus() != null) {
if (partTypeQueryDto.getTaskStatus() == 0) {
partTypeQueryDto.setTaskStatusName("未完成");
} else if (partTypeQueryDto.getTaskStatus() == 1) {
partTypeQueryDto.setTaskStatusName("已完成");
}
purchaseCheckInfoResult = purchaseCheckInfoResult.stream() purchaseCheckInfoResult = purchaseCheckInfoResult.stream()
.filter(item -> item.getTaskStatusName().equals(partTypeQueryDto.getTaskStatusName())) .filter(item -> item.getTaskStatusName().equals(partTypeQueryDto.getTaskStatusName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -275,15 +283,15 @@ public class PartArrivedServiceImpl implements IPartArrivedService
@Override @Override
public PartTypeCheckDto selectPartTypeCheckInfoById(PartTypeQueryDto partTypeQueryDto) { public PartTypeCheckDto selectPartTypeCheckInfoById(PartTypeQueryDto partTypeQueryDto) {
PartTypeCheckInfo partTypeCheckInfo = partArrivedMapper.selectPartTypeCheckInfoById(partTypeQueryDto.getId()); PartTypeCheckInfo partTypeCheckInfo = partArrivedMapper.selectPartTypeCheckInfoById(partTypeQueryDto.getId());
PartTypeCheckDto PartTypeCheckDto = new PartTypeCheckDto(); PartTypeCheckDto partTypeCheckDto = new PartTypeCheckDto();
PartTypeCheckDto.setPartTypeCheckInfo(partTypeCheckInfo); partTypeCheckDto.setPartTypeCheckInfo(partTypeCheckInfo);
if(null != partTypeCheckInfo){ if(null != partTypeCheckInfo){
List<PartTypeCheckDetails> partTypeCheckDetailsList = partArrivedMapper.selectPartTypeCheckDetailsListByQueryDto(partTypeQueryDto); List<PartTypeCheckDetails> partTypeCheckDetailsList = partArrivedMapper.selectPartTypeCheckDetailsListByQueryDto(partTypeQueryDto);
PartTypeCheckDto.setPartTypeCheckDetailsList(partTypeCheckDetailsList); partTypeCheckDto.setPartTypeCheckDetailsList(partTypeCheckDetailsList);
//查询是否存在附件给前端用于文件颜色判断 //查询是否存在附件给前端用于文件颜色判断
extractedExitFile(partTypeCheckDetailsList); extractedExitFile(partTypeCheckDetailsList);
} }
return PartTypeCheckDto; return partTypeCheckDto;
} }
/** /**
@ -385,12 +393,39 @@ public class PartArrivedServiceImpl implements IPartArrivedService
@Override @Override
public PartTypeCheckDto getInBoundForm(PartTypeQueryDto partTypeQueryDto) { public PartTypeCheckDto getInBoundForm(PartTypeQueryDto partTypeQueryDto) {
PartTypeCheckInfo partTypeCheckInfo = partArrivedMapper.getCheckInfoForm(partTypeQueryDto); PartTypeCheckInfo partTypeCheckInfo = partArrivedMapper.getCheckInfoForm(partTypeQueryDto);
PartTypeCheckDto PartTypeCheckDto = new PartTypeCheckDto(); PartTypeCheckDto partTypeCheckDto = new PartTypeCheckDto();
PartTypeCheckDto.setPartTypeCheckInfo(partTypeCheckInfo); partTypeCheckDto.setPartTypeCheckInfo(partTypeCheckInfo);
if(null != partTypeCheckInfo){ if(null != partTypeCheckInfo){
List<PartTypeCheckDetails> partTypeCheckDetailsList = partArrivedMapper.selectPartTypeCheckDetailsListByQueryDto(partTypeQueryDto); List<PartTypeCheckDetails> partTypeCheckDetailsList = partArrivedMapper.selectPartTypeCheckDetailsListByQueryDto(partTypeQueryDto);
PartTypeCheckDto.setPartTypeCheckDetailsList(partTypeCheckDetailsList); partTypeCheckDto.setPartTypeCheckDetailsList(partTypeCheckDetailsList);
} if (!CollectionUtils.isEmpty(partTypeCheckDetailsList)) {
return PartTypeCheckDto; List<PurchaseSignRecord> purchaseSignRecordUserSignList = new ArrayList<>();
HashMap<String, PurchaseSignRecord> purchaseSignRecordMap = new HashMap<>();
for (PartTypeCheckDetails purchaseCheckDetails : partTypeCheckDetailsList) {
// 查询已签名的记录
if (purchaseSignRecordUserSignList.isEmpty()) {
purchaseSignRecordUserSignList = signProcessMapper.getPurchaseSignUrlListByTaskId(purchaseCheckDetails.getTaskId());
for (PurchaseSignRecord purchaseSignRecord : purchaseSignRecordUserSignList) {
purchaseSignRecordMap.put(purchaseSignRecord.getSignUrl(), purchaseSignRecord);
}
}
}
// 分流存入集合,利用Map去重
purchaseSignRecordMap.forEach((k, v) -> {
if (null != v.getUserId()) {
if (311 == v.getOrgId()) {
partTypeCheckDto.getGySignUrl().add(v);
}
if (313 == v.getOrgId()) {
partTypeCheckDto.getScSignUrl().add(v);
}
if (312 == v.getOrgId()) {
partTypeCheckDto.getKgSignUrl().add(v);
}
}
});
}
}
return partTypeCheckDto;
} }
} }

View File

@ -96,7 +96,7 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
); );
// 修改配件采购明细的任务状态 // 修改配件采购明细的任务状态
partCheckMapper.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""); partCheckMapper.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "");
} } else {
tmTaskMapper.updateTmTask(new TmTask() tmTaskMapper.updateTmTask(new TmTask()
.setTaskId(purchaseNoticePersonDto.getTaskId()) .setTaskId(purchaseNoticePersonDto.getTaskId())
.setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId()) .setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId())
@ -104,6 +104,7 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
); );
// 修改采购明细的任务状态 // 修改采购明细的任务状态
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""); purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "");
}
return AjaxResult.success("短信发送成功:" + sendResult); return AjaxResult.success("短信发送成功:" + sendResult);
} else { } else {
return AjaxResult.error("短信发送失败,发送结果为空"); return AjaxResult.error("短信发送失败,发送结果为空");

View File

@ -111,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectPartTypeCheckInfoJoinList" resultType="com.bonus.material.part.domain.PartTypeCheckInfo"> <select id="selectPartTypeCheckInfoJoinList" resultType="com.bonus.material.part.domain.PartTypeCheckInfo">
select select
ppi.id, ppi.task_id as taskId, ppi.purchase_time as purchasePrice, ppi.arrival_time as arrivalTime, ppi.purchaser, ppi.supplier_id as supplierId, ppi.tax_rate as taxRate, ppi.id, ppi.task_id as taskId, ppi.purchase_time as purchaseTime, ppi.arrival_time as arrivalTime, ppi.purchaser, ppi.supplier_id as supplierId, ppi.tax_rate as taxRate,
ppi.create_by as createBy, ppi.create_time as createTime, ppi.update_by as updateBy, ppi.update_time as updateTime, ppi.remark, ppi.company_id as companyId, ppi.create_by as createBy, ppi.create_time as createTime, ppi.update_by as updateBy, ppi.update_time as updateTime, ppi.remark, ppi.company_id as companyId,
t.task_status as taskStatus,t.code,msi.supplier t.task_status as taskStatus,t.code,msi.supplier
from from
@ -120,9 +120,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join sys_user su ON ppi.create_by = su.user_id left join sys_user su ON ppi.create_by = su.user_id
left join ma_supplier_info msi on ppi.supplier_id = msi.supplier_id left join ma_supplier_info msi on ppi.supplier_id = msi.supplier_id
<where> <where>
<if test="startTime != null "> and date_format(ppi.create_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')</if> <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<if test="endTime != null "> and date_format(ppi.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')</if> <![CDATA[and DATE_FORMAT( ppi.arrival_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
<if test="taskStatus != null "> and t.task_status = #{taskStatus}</if> </if>
</where> </where>
order by ppi.create_time desc order by ppi.create_time desc
</select> </select>