退料接收时,检查结算表拿到待退料数量,防止多退

This commit is contained in:
sxu 2024-08-28 12:22:08 +08:00
parent a23651a16c
commit 2e6c28184e
2 changed files with 31 additions and 16 deletions

View File

@ -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和数量") @ApiModelProperty(value = "详情id和数量")
private String detailsIdByNum; private String detailsIdByNum;

View File

@ -13,6 +13,7 @@ import com.bonus.sgzb.common.core.enums.TaskTypeEnum;
import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.DateUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -150,6 +151,7 @@ public class BackReceiveServiceImpl implements BackReceiveService {
int res = 0; int res = 0;
// try { // try {
int taskId = record.getTaskId(); int taskId = record.getTaskId();
int maxBackNum = 0;
int passNum = 0; int passNum = 0;
int maintenanceNum = 0; int maintenanceNum = 0;
int scrapNum = 0; int scrapNum = 0;
@ -168,6 +170,32 @@ public class BackReceiveServiceImpl implements BackReceiveService {
} }
//修改任务状态 //修改任务状态
List<BackApplyInfo> list = backReceiveMapper.receiveView2(record); List<BackApplyInfo> list = backReceiveMapper.receiveView2(record);
if (!CollectionUtils.isEmpty(list)) {
for (BackApplyInfo backApplyInfo : list) {
maxBackNum += (int) backApplyInfo.getMaxBackNum();
}
}
List<BackApplyInfo> hgList = backReceiveMapper.getHgList(record);
if (hgList != null && hgList.size() > 0) {
for (BackApplyInfo bi : hgList) {
passNum += bi.getBackNum();
}
}
List<BackApplyInfo> wxList = backReceiveMapper.getWxList(record);
if (wxList != null && wxList.size() > 0) {
for (BackApplyInfo bi : wxList) {
maintenanceNum += bi.getBackNum();
}
}
List<BackApplyInfo> 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); boolean allZeros = list.stream().allMatch(n -> Double.valueOf(n.getMaxBackNum()).intValue() == 0);
if (allZeros) { if (allZeros) {
res = updateTaskStatus(taskId, 40); res = updateTaskStatus(taskId, 40);
@ -177,7 +205,6 @@ public class BackReceiveServiceImpl implements BackReceiveService {
} }
//更加退料接收的数据创建下一步流程 //更加退料接收的数据创建下一步流程
//合格的插入入库记录input_apply_details修改库存ma_type,修改机具状态 //合格的插入入库记录input_apply_details修改库存ma_type,修改机具状态
List<BackApplyInfo> hgList = backReceiveMapper.getHgList(record);
if (hgList != null && hgList.size() > 0) { if (hgList != null && hgList.size() > 0) {
res = insertIad(hgList); res = insertIad(hgList);
if (res == 0) { if (res == 0) {
@ -200,12 +227,8 @@ public class BackReceiveServiceImpl implements BackReceiveService {
if (res == 0) { if (res == 0) {
throw new RuntimeException("ma_machines"); throw new RuntimeException("ma_machines");
} }
for (BackApplyInfo bi : hgList) {
passNum += bi.getBackNum();
}
} }
//维修的创建维修任务插入任务协议表 //维修的创建维修任务插入任务协议表
List<BackApplyInfo> wxList = backReceiveMapper.getWxList(record);
if (wxList != null && wxList.size() > 0) { if (wxList != null && wxList.size() > 0) {
//插入任务表tm_task //插入任务表tm_task
int newTaskId = insertTt(wxList, TaskTypeEnum.MAINTENANCE_TASK.getCode(), record.getCreateBy()); int newTaskId = insertTt(wxList, TaskTypeEnum.MAINTENANCE_TASK.getCode(), record.getCreateBy());
@ -213,13 +236,8 @@ public class BackReceiveServiceImpl implements BackReceiveService {
res = insertTta(newTaskId, wxList); res = insertTta(newTaskId, wxList);
//插入维修记录表repair_apply_details //插入维修记录表repair_apply_details
res = insertRad(newTaskId, wxList); res = insertRad(newTaskId, wxList);
for (BackApplyInfo bi : wxList) {
maintenanceNum += bi.getBackNum();
}
} }
//待报废的创建报废任务插入任务协议表 //待报废的创建报废任务插入任务协议表
List<BackApplyInfo> bfList = backReceiveMapper.getBfList(record);
if (bfList != null && bfList.size() > 0) { if (bfList != null && bfList.size() > 0) {
//插入任务表tm_task //插入任务表tm_task
int newTaskId = insertTt(bfList, TaskTypeEnum.SCRAP_TASK.getCode(), record.getCreateBy()); int newTaskId = insertTt(bfList, TaskTypeEnum.SCRAP_TASK.getCode(), record.getCreateBy());
@ -227,9 +245,6 @@ public class BackReceiveServiceImpl implements BackReceiveService {
res = insertTta(newTaskId, bfList); res = insertTta(newTaskId, bfList);
//插入维修记录表scrap_apply_details //插入维修记录表scrap_apply_details
res = insertSad(newTaskId, bfList); res = insertSad(newTaskId, bfList);
for (BackApplyInfo bi : bfList) {
scrapNum += bi.getBackNum();
}
} }
List<BackApplyInfo> allList = backReceiveMapper.getAllList(record); List<BackApplyInfo> allList = backReceiveMapper.getAllList(record);