diff --git a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java index f78d5ff..ed8b548 100644 --- a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java +++ b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java @@ -284,17 +284,17 @@ public class BackApplyInfo extends BaseEntity { /** * 已完成的退料数量 */ - private String finishedBackNum; + private float finishedBackNum; /** * 未完成的退料数量 */ - private String inCompletedBackNum; + private float inCompletedBackNum; /** * 此协议号最大剩余退料数 */ - private String maxBackNum; + private float maxBackNum; @ApiModelProperty(value = "详情id和数量") private String detailsIdByNum; diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java index 9649c6d..2e706d0 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java @@ -13,6 +13,7 @@ import com.bonus.sgzb.common.core.enums.TaskTypeEnum; import com.bonus.sgzb.common.core.utils.DateUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -150,6 +151,7 @@ public class BackReceiveServiceImpl implements BackReceiveService { int res = 0; // try { int taskId = record.getTaskId(); + int maxBackNum = 0; int passNum = 0; int maintenanceNum = 0; int scrapNum = 0; @@ -168,6 +170,32 @@ public class BackReceiveServiceImpl implements BackReceiveService { } //修改任务状态 List list = backReceiveMapper.receiveView2(record); + if (!CollectionUtils.isEmpty(list)) { + for (BackApplyInfo backApplyInfo : list) { + maxBackNum += (int) backApplyInfo.getMaxBackNum(); + } + } + List hgList = backReceiveMapper.getHgList(record); + if (hgList != null && hgList.size() > 0) { + for (BackApplyInfo bi : hgList) { + passNum += bi.getBackNum(); + } + } + List wxList = backReceiveMapper.getWxList(record); + if (wxList != null && wxList.size() > 0) { + for (BackApplyInfo bi : wxList) { + maintenanceNum += bi.getBackNum(); + } + } + List bfList = backReceiveMapper.getBfList(record); + if (bfList != null && bfList.size() > 0) { + for (BackApplyInfo bi : bfList) { + scrapNum += bi.getBackNum(); + } + } + if (maxBackNum < passNum + maintenanceNum + scrapNum) { + throw new RuntimeException("提交退料数量大于最大退料数,可能您的退料已被别人退掉了"); + } boolean allZeros = list.stream().allMatch(n -> Double.valueOf(n.getMaxBackNum()).intValue() == 0); if (allZeros) { res = updateTaskStatus(taskId, 40); @@ -177,7 +205,6 @@ public class BackReceiveServiceImpl implements BackReceiveService { } //更加退料接收的数据创建下一步流程 //合格的插入入库记录input_apply_details,修改库存ma_type,修改机具状态 - List hgList = backReceiveMapper.getHgList(record); if (hgList != null && hgList.size() > 0) { res = insertIad(hgList); if (res == 0) { @@ -200,12 +227,8 @@ public class BackReceiveServiceImpl implements BackReceiveService { if (res == 0) { throw new RuntimeException("ma_machines"); } - for (BackApplyInfo bi : hgList) { - passNum += bi.getBackNum(); - } } //维修的创建维修任务,插入任务协议表 - List wxList = backReceiveMapper.getWxList(record); if (wxList != null && wxList.size() > 0) { //插入任务表tm_task int newTaskId = insertTt(wxList, TaskTypeEnum.MAINTENANCE_TASK.getCode(), record.getCreateBy()); @@ -213,13 +236,8 @@ public class BackReceiveServiceImpl implements BackReceiveService { res = insertTta(newTaskId, wxList); //插入维修记录表repair_apply_details res = insertRad(newTaskId, wxList); - for (BackApplyInfo bi : wxList) { - maintenanceNum += bi.getBackNum(); - } } //待报废的创建报废任务,插入任务协议表 - - List bfList = backReceiveMapper.getBfList(record); if (bfList != null && bfList.size() > 0) { //插入任务表tm_task int newTaskId = insertTt(bfList, TaskTypeEnum.SCRAP_TASK.getCode(), record.getCreateBy()); @@ -227,9 +245,6 @@ public class BackReceiveServiceImpl implements BackReceiveService { res = insertTta(newTaskId, bfList); //插入维修记录表scrap_apply_details res = insertSad(newTaskId, bfList); - for (BackApplyInfo bi : bfList) { - scrapNum += bi.getBackNum(); - } } List allList = backReceiveMapper.getAllList(record);