This commit is contained in:
mashuai 2025-07-29 18:42:23 +08:00
parent 2983184263
commit c63a79304f
11 changed files with 137 additions and 19 deletions

View File

@ -881,12 +881,11 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
return AjaxResult.error("请先添加领料任务物资编码明细");
}
}
if (leaseApplyDetails.getOutNum().compareTo(leaseApplyDetails.getStorageNum()) > 0) {
throw new ServiceException("出库数量不能大于库存数量");
}
}
}
int res = checkStorageNum(leaseApplyRequestVo.getLeaseApplyDetailsList());
if (res == 0) {
return AjaxResult.error("领料出库数量不能大于库存数量");
}
leaseApplyRequestVo.getLeaseApplyInfo().setCreateTime(DateUtils.getNowDate());
String createBy = SecurityUtils.getLoginUser().getSysUser().getNickName();
leaseApplyRequestVo.getLeaseApplyInfo().setCreateBy(createBy);
@ -1020,6 +1019,9 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
throw new ServiceException("请先添加领料任务物资编码明细");
}
}
if (leaseApplyDetails.getOutNum().compareTo(leaseApplyDetails.getStorageNum()) > 0) {
throw new ServiceException("出库数量不能大于库存数量");
}
}
}
try {
@ -1425,17 +1427,17 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
list.addAll(listL3);
list.addAll(listL21);
}
/*if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) {
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) {
// 创建树形结构数据集合作为参数
TypeTreeBuild treeBuild = new TypeTreeBuild(list);
// 原查询结果转换树形结构
groupList = treeBuild.buildTree();
}*/
}
}
} catch (Exception e) {
AjaxResult.error("类型树-查询失败", e);
}
return AjaxResult.success(list);
return AjaxResult.success(groupList);
}
/**

View File

@ -108,6 +108,21 @@ public class PurchaseCheckInfoController extends BaseController {
}
}
/**
* 修改新购验收任务
* @param purchaseCheckDto
* @return
*/
@ApiOperation("修改新购验收任务")
@PostMapping("/update")
public AjaxResult update(@RequestBody @NotNull(message = "请求参数不能为空") @Valid PurchaseCheckDto purchaseCheckDto) {
try {
return toAjax(purchaseCheckInfoService.update(purchaseCheckDto));
} catch (final Exception e) {
return error("系统错误, " + e.getMessage());
}
}
/**
* 外层批量验收API
*/

View File

@ -122,4 +122,11 @@ public interface PurchaseCheckDetailsMapper {
* @return 结果
*/
int deletePurchaseCheckDetailsByIds(Long[] ids);
/**
* 删除新购验收任务详细
* @param ids
* @return
*/
int deleteDetails(Long[] ids);
}

View File

@ -91,4 +91,11 @@ public interface IPurchaseCheckInfoService {
* @return
*/
List<PurchaseSignRecord> getSignList(PurchaseSignRecord purchaseSignRecord);
/**
* 修改新购验收任务
* @param purchaseCheckDto
* @return
*/
int update(PurchaseCheckDto purchaseCheckDto);
}

View File

@ -713,6 +713,8 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
typeMapper.updateType(type);
}
// 批量插入详情数据
// 将purchaseCheckDetailsList的status全部设置为2
purchaseCheckDetailsList.forEach(o -> o.setStatus(PurchaseTaskStatusEnum.TO_CHECK.getStatus()));
final int count = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckDetailsList);
if (0 < count) {
return AjaxResult.success("新增任务成功");
@ -1066,4 +1068,31 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
}
return list;
}
/**
* 修改新购验收任务
* @param purchaseCheckDto
* @return
*/
@Override
public int update(PurchaseCheckDto purchaseCheckDto) {
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
// 先去查是否存在文件信息存在就删除
BmFileInfo fileInfo = new BmFileInfo();
fileInfo.setTaskType(0);
fileInfo.setTaskId(purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
bmFileInfoMapper.deleteBmFileList(purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
}
try {
final Long[] ids = {purchaseCheckDto.getPurchaseCheckInfo().getId()};
purchaseCheckDetailsMapper.deleteDetails(ids);
insertPurchaseCheckDetails(purchaseCheckDto.getPurchaseCheckDetailsList(), purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
return purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo());
} catch (final Exception e) {
throw new ServiceException("错误信息描述");
}
}
}

View File

@ -167,4 +167,11 @@ public interface RepairAuditDetailsMapper {
* @return
*/
int deleteRepairRecordByTaskId(RepairAuditDetails repairAuditDetails);
/**
* 查询审核状态
* @param taskId
* @return
*/
List<RepairAuditDetails> getAuditStatus(Long taskId);
}

View File

@ -625,6 +625,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
repairTaskDetails.setRepairNum(repairAuditDetail.getRepairNum());
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
repairTaskDetails.setBackId(backId);
repairTaskDetails.setIsDs(1);
if(StringUtils.isNotBlank( level)) {
repairTaskDetails.setLevel(String.valueOf(Integer.parseInt(level) + 1));
}
@ -661,7 +662,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId());
// 生成维修单号
String code = genderNewWxTaskCode(thisMonthMaxOrder);
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_STATUS_AUDIT_REJECT.getStatus(),
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus(),
null,thisMonthMaxOrder + 1, code);
tmTask.setCreateTime(DateUtils.getNowDate());
tmTask.setCreateBy(createBy);
@ -742,6 +743,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
repairTaskDetails.setRepairNum(repairAuditDetail.getRepairNum());
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
repairTaskDetails.setBackId(backId);
repairTaskDetails.setIsDs(1);
if(StringUtils.isNotBlank( level)) {
repairTaskDetails.setLevel(String.valueOf(Integer.parseInt(level) + 1));
}
@ -753,7 +755,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
Long userId = SecurityUtils.getLoginUser().getUserid();
int result = repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, status, userId);
// 根据任务id查询内层详情任务状态更新外层任务状态
List<RepairAuditDetails> repairAuditDetailsByTaskId = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskId(auditDetails1.getTaskId());
List<RepairAuditDetails> repairAuditDetailsByTaskId = repairAuditDetailsMapper.getAuditStatus(auditDetails1.getTaskId());
if (!CollectionUtils.isEmpty(repairAuditDetailsByTaskId)) {
// 获取集合中的全部status集合
List<Integer> statusList = repairAuditDetailsByTaskId.stream()
@ -763,7 +765,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
boolean notContainsNoFinished =!statusList.contains(RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus());
boolean allReject = true;
for (Integer newStatus : statusList) {
if (!newStatus.equals(RepairTaskStatusEnum.TASK_STATUS_NO_REVIEW.getStatus())) {
if (!newStatus.equals(RepairTaskStatusEnum.TASK_STATUS_REJECT.getStatus())) {
allReject = false;
break;
}

View File

@ -649,9 +649,19 @@ public class RepairServiceImpl implements RepairService {
.setPartNum(repairPartDetails.getPartNum()).setRepairer(loginUser.getUsername())
.setPartPrice(Optional.ofNullable(repairPartDetails.getPartPrice()).orElse(BigDecimal.ZERO))
.setCreateBy(loginUser.getUsername());
repairApplyRecord.setRemark(StringUtils.isNotBlank(repairPartDetails.getRemark()) ? repairPartDetails.getRemark() : "");
// 新增维修记录表
repairMapper.addRecord(repairApplyRecord);
// 保存外部维修附件
if (CollectionUtils.isEmpty(repairPartDetails.getFileList())) {
for (BmFileInfo fileInfo : repairPartDetails.getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId()))
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
}
}
}
for (int i = 0; i < partList.size(); i++) {
sfCosts = sfCosts.add(partList.get(i).getPartPrice());
@ -680,6 +690,7 @@ public class RepairServiceImpl implements RepairService {
if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) {
for (BmFileInfo fileInfo : bean.getNumberScrapRepairPartList().get(0).getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setFileType(Long.valueOf(RepairTypeEnum.TO_SCRAP.getTypeId()))
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
@ -695,7 +706,7 @@ public class RepairServiceImpl implements RepairService {
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
repairApplyRecord.setRemark(StringUtils.isNotBlank(bean.getNumberScrapRepairPartList().get(0).getRemark()) ? bean.getNumberScrapRepairPartList().get(0).getRemark() : "");
// 因报废操作无需配件, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
@ -709,7 +720,7 @@ public class RepairServiceImpl implements RepairService {
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
repairApplyRecord.setRemark(StringUtils.isNotBlank(bean.getNumberScrapRepairPartList().get(0).getRemark()) ? bean.getNumberScrapRepairPartList().get(0).getRemark() : "");
// 因报废操作无需配件, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
@ -853,7 +864,7 @@ public class RepairServiceImpl implements RepairService {
}
repairApplyRecord.setCreateBy(loginUser.getUsername());
repairApplyRecord.setStatus(0L);
repairApplyRecord.setRemark(StringUtils.isNotBlank(partDetails.getRemark()) ? partDetails.getRemark() : "");
if ((null != partDetails.getId() || null != partDetails.getPartId()) && null != partDetails.getPartNum()) {
partDetails.setPartId(null != partDetails.getPartId() ? partDetails.getPartId() : partDetails.getId());
// 有维修配件时,如果价格为空设置为0
@ -906,6 +917,16 @@ public class RepairServiceImpl implements RepairService {
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
// 保存内部维修文件
if (CollectionUtils.isEmpty(partDetails.getFileList())) {
for (BmFileInfo fileInfo : partDetails.getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId()))
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
}
}
}
// 根据配件id 统计配件费用
PartType type = partTypeMapper.selectPartTypeByPaId(partList.get(0).getPartId());
@ -950,6 +971,7 @@ public class RepairServiceImpl implements RepairService {
}
repairApplyRecord.setSupplierId(partList.get(i).getSupplierId());
repairApplyRecord.setPartPrice(Optional.ofNullable(partList.get(i).getBackCost()).orElse(BigDecimal.ZERO));
repairApplyRecord.setRemark(StringUtils.isNotBlank(partList.get(i).getRemark()) ? partList.get(i).getRemark() : "");
// 新增维修记录表
repairMapper.addRecord(repairApplyRecord);
@ -964,7 +986,16 @@ public class RepairServiceImpl implements RepairService {
if (count<=0){
repairMapper.addRepairCost(repairApplyRecord, sfCosts, partList.get(i).getPartType().toString());
}
// 保存外部返厂维修文件
if (CollectionUtils.isEmpty(partList.get(i).getFileList())) {
for (BmFileInfo fileInfo : partList.get(i).getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId()))
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
}
}
}
}
@ -975,6 +1006,7 @@ public class RepairServiceImpl implements RepairService {
if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) {
for (BmFileInfo fileInfo : partList.get(0).getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setFileType(Long.valueOf(RepairTypeEnum.TO_SCRAP.getTypeId()))
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
@ -988,6 +1020,7 @@ public class RepairServiceImpl implements RepairService {
.setCreateBy(loginUser.getUsername());
repairApplyRecord.setScrapType(partList.get(0).getScrapType());
repairApplyRecord.setScrapReason(partList.get(0).getScrapReason());
repairApplyRecord.setRemark(StringUtils.isNotBlank(partList.get(0).getRemark()) ? partList.get(0).getRemark() : "");
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
@ -1002,6 +1035,7 @@ public class RepairServiceImpl implements RepairService {
repairApplyRecord.setScrapType(partList.get(0).getScrapType());
repairApplyRecord.setScrapReason(partList.get(0).getScrapReason());
// 不选维修配件时, 只添加维修记录表
repairApplyRecord.setRemark(StringUtils.isNotBlank(partList.get(0).getRemark()) ? partList.get(0).getRemark() : "");
repairMapper.addRecord(repairApplyRecord);
}
}
@ -1014,7 +1048,7 @@ public class RepairServiceImpl implements RepairService {
.setRepairNum(BigDecimal.valueOf(!RepairTypeEnum.TO_SCRAP.getTypeId().equals(bean.getRepairType()) ? 1 : 0))
.setScrapNum(BigDecimal.valueOf(RepairTypeEnum.TO_SCRAP.getTypeId().equals(bean.getRepairType()) ? 1 : 0))
.setCreateBy(loginUser.getUsername());
repairApplyRecord.setRemark(StringUtils.isNotBlank(bean.getRemark()) ? bean.getRemark() : "");
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}

View File

@ -241,8 +241,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<delete id="deleteDetails">
delete from purchase_check_details where task_id in (
select task_id
from purchase_check_info
where
id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
)
</delete>
<!-- <select id="selectMaTypeNameByTaskId" resultType="java.lang.String">-->
<!-- <select id="selectMaTypeNameByTaskId" resultType="java.lang.String">-->
<!-- select-->
<!-- GROUP_CONCAT(type_name) typeName-->
<!-- from-->

View File

@ -747,4 +747,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY
rar.repair_type
</select>
<select id="getAuditStatus" resultType="com.bonus.material.repair.domain.RepairAuditDetails">
<include refid="selectRepairAuditDetailsVo"/>
where task_id = #{taskId}
</select>
</mapper>

View File

@ -2,8 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.material.repair.mapper.RepairMapper">
<insert id="addRecord">
insert into repair_apply_record (task_id,ma_id,type_id,repair_num,scrap_num,repair_type,create_by,create_time,repair_content,company_id,scrap_id,scrap_reason,scrap_type,supplier_id,part_num,part_price,part_type,part_name,repairer,file_ids,remark,part_id)
values (#{taskId},#{maId},#{typeId},#{repairNum},#{scrapNum},#{repairType},#{createBy},now(),#{repairContent},#{companyId}, #{scrapId},#{scrapReason},#{scrapType},#{supplierId},#{partNum},#{partPrice},#{partType},#{partName},#{repairer},#{fileIds},#{remark},#{partId});
insert into repair_apply_record (task_id,ma_id,type_id,repair_num,scrap_num,repair_type,create_by,create_time,repair_content,company_id,scrap_id,scrap_reason,scrap_type,supplier_id,part_num,part_price,part_type,part_name,repairer,file_ids,remark,part_id,remark)
values (#{taskId},#{maId},#{typeId},#{repairNum},#{scrapNum},#{repairType},#{createBy},now(),#{repairContent},#{companyId}, #{scrapId},#{scrapReason},#{scrapType},#{supplierId},#{partNum},#{partPrice},#{partType},#{partName},#{repairer},#{fileIds},#{remark},#{partId},#{remark});
</insert>
<insert id="addPart">