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

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和数量")
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 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<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);
if (allZeros) {
res = updateTaskStatus(taskId, 40);
@ -177,7 +205,6 @@ public class BackReceiveServiceImpl implements BackReceiveService {
}
//更加退料接收的数据创建下一步流程
//合格的插入入库记录input_apply_details修改库存ma_type,修改机具状态
List<BackApplyInfo> 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<BackApplyInfo> 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<BackApplyInfo> 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<BackApplyInfo> allList = backReceiveMapper.getAllList(record);