|
|
@ -723,7 +723,8 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
transData=dailyPlanMapper.getTransData(inData.getSite(),transNo); |
|
|
transData=dailyPlanMapper.getTransData(inData.getSite(),transNo); |
|
|
} |
|
|
} |
|
|
updateTvBase(inData.getSite(),"",inData.getSeqNo(),inData.getOperatorId()); |
|
|
updateTvBase(inData.getSite(),"",inData.getSeqNo(),inData.getOperatorId()); |
|
|
if(inData.getAcceptQty() > 0) { |
|
|
|
|
|
|
|
|
// 修改:Double → BigDecimal 避免精度问题 - rqrq |
|
|
|
|
|
if(inData.getAcceptQty() != null && inData.getAcceptQty() > 0) { |
|
|
Date date = DateUtil.getDateToDate(new Date(), "yyyy-MM-dd"); |
|
|
Date date = DateUtil.getDateToDate(new Date(), "yyyy-MM-dd"); |
|
|
// TaskDto taskDto=abnormalMapper.getOriginator(); |
|
|
// TaskDto taskDto=abnormalMapper.getOriginator(); |
|
|
TaskDto taskDto = new TaskDto(); |
|
|
TaskDto taskDto = new TaskDto(); |
|
|
@ -735,7 +736,11 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
taskDto.setFinalStatus("未完成"); |
|
|
taskDto.setFinalStatus("未完成"); |
|
|
taskDto.setRequiredCompletionDate(date); |
|
|
taskDto.setRequiredCompletionDate(date); |
|
|
taskDto.setStatus("未受理"); |
|
|
taskDto.setStatus("未受理"); |
|
|
taskDto.setTaskDescription("瑕疵品数量" + (Double.parseDouble(inData.getQtyReported()) - Double.parseDouble(inData.getQtyApprove())) + "让步接收"); |
|
|
|
|
|
|
|
|
// 修改:用BigDecimal精确计算 - rqrq |
|
|
|
|
|
BigDecimal qtyReportedVal = new BigDecimal(inData.getQtyReported()); |
|
|
|
|
|
BigDecimal qtyApproveVal = new BigDecimal(inData.getQtyApprove()); |
|
|
|
|
|
BigDecimal defectQtyForTask = qtyReportedVal.subtract(qtyApproveVal); |
|
|
|
|
|
taskDto.setTaskDescription("瑕疵品数量" + defectQtyForTask + "让步接收"); |
|
|
taskDto.setTaskHeader(inData.getPartNo() + inData.getPartDescription()); |
|
|
taskDto.setTaskHeader(inData.getPartNo() + inData.getPartDescription()); |
|
|
taskDto.setTaskInitiator(taskDto.getCreatedBy()); |
|
|
taskDto.setTaskInitiator(taskDto.getCreatedBy()); |
|
|
taskDto.setTaskStartDate(date); |
|
|
taskDto.setTaskStartDate(date); |
|
|
@ -748,7 +753,8 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
taskListService.saveBatchTaskList(taskDto); |
|
|
taskListService.saveBatchTaskList(taskDto); |
|
|
} |
|
|
} |
|
|
SOOpsTransferData badData=null; |
|
|
SOOpsTransferData badData=null; |
|
|
if(inData.getAcceptQty()>0){ |
|
|
|
|
|
|
|
|
// 修改:Double → BigDecimal 避免精度问题 - rqrq |
|
|
|
|
|
if(inData.getAcceptQty() != null && inData.getAcceptQty() > 0){ |
|
|
//获取瑕疵品标签信息 |
|
|
//获取瑕疵品标签信息 |
|
|
badData=dailyPlanMapper.getBadPrintData(inData.getSite(),inData.getSeqNo()); |
|
|
badData=dailyPlanMapper.getBadPrintData(inData.getSite(),inData.getSeqNo()); |
|
|
} |
|
|
} |
|
|
@ -770,8 +776,9 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
dailyPlanMapper.closeSchedule(closeData); |
|
|
dailyPlanMapper.closeSchedule(closeData); |
|
|
} |
|
|
} |
|
|
//报废率大于系统参数 自动生成异常单跳转并触发实验室检验 |
|
|
//报废率大于系统参数 自动生成异常单跳转并触发实验室检验 |
|
|
Double qtyReported=Double.valueOf(inData.getQtyReported()); |
|
|
|
|
|
Double qtyApprove=Double.valueOf(inData.getQtyApprove()); |
|
|
|
|
|
|
|
|
// 修改:String直接转BigDecimal,避免Double精度问题 - rqrq |
|
|
|
|
|
BigDecimal qtyReported = new BigDecimal(inData.getQtyReported()); |
|
|
|
|
|
BigDecimal qtyApprove = new BigDecimal(inData.getQtyApprove()); |
|
|
Integer id =null; |
|
|
Integer id =null; |
|
|
List<SOScheduledRoutingOutData> checkUserSeqNo=dailyPlanMapper.checkUserSeqNo(inData.getSeqNo(), ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername()); |
|
|
List<SOScheduledRoutingOutData> checkUserSeqNo=dailyPlanMapper.checkUserSeqNo(inData.getSeqNo(), ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername()); |
|
|
if(checkUserSeqNo.isEmpty()){ |
|
|
if(checkUserSeqNo.isEmpty()){ |
|
|
@ -779,7 +786,12 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
} |
|
|
} |
|
|
//函数取物料报废标准 |
|
|
//函数取物料报废标准 |
|
|
Double ifChaobiao=inventoryStockDao.getPartRejectSYS(inData.getSite(),checkUserSeqNo.get(0).getPartNo()); |
|
|
Double ifChaobiao=inventoryStockDao.getPartRejectSYS(inData.getSite(),checkUserSeqNo.get(0).getPartNo()); |
|
|
if( (qtyReported-qtyApprove)*100.0/qtyReported>=ifChaobiao ){ |
|
|
|
|
|
|
|
|
// 修改:使用BigDecimal精确计算报废率 - rqrq |
|
|
|
|
|
BigDecimal defectQty = qtyReported.subtract(qtyApprove); |
|
|
|
|
|
BigDecimal hundred = new BigDecimal("100"); |
|
|
|
|
|
BigDecimal defectRate = defectQty.multiply(hundred) |
|
|
|
|
|
.divide(qtyReported, 2, java.math.RoundingMode.HALF_UP); |
|
|
|
|
|
if(defectRate.compareTo(new BigDecimal(ifChaobiao)) >= 0){ |
|
|
AbnormalFeedBackDataIn inData2 = new AbnormalFeedBackDataIn(); |
|
|
AbnormalFeedBackDataIn inData2 = new AbnormalFeedBackDataIn(); |
|
|
inData2.setSite(inData.getSite()); |
|
|
inData2.setSite(inData.getSite()); |
|
|
inData2.setSeqNo(inData.getSeqNo()); |
|
|
inData2.setSeqNo(inData.getSeqNo()); |
|
|
@ -787,7 +799,8 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
inData2.setAbnormalCode("A00068"); |
|
|
inData2.setAbnormalCode("A00068"); |
|
|
inData2.setAbnormalRemark(""); |
|
|
inData2.setAbnormalRemark(""); |
|
|
inData2.setAbnormalInfluence(""); |
|
|
inData2.setAbnormalInfluence(""); |
|
|
inData2.setAbnormalQty(qtyReported-qtyApprove); |
|
|
|
|
|
|
|
|
// 修改:使用BigDecimal.doubleValue() - rqrq |
|
|
|
|
|
inData2.setAbnormalQty(defectQty.doubleValue()); |
|
|
inData2.setOrderNo(dailyPlanMapper.getSeqNoOrderNo(inData.getSeqNo())); |
|
|
inData2.setOrderNo(dailyPlanMapper.getSeqNoOrderNo(inData.getSeqNo())); |
|
|
inData2.setSite(inData.getSite()); |
|
|
inData2.setSite(inData.getSite()); |
|
|
abnormalMapper.saveAbnormalData(inData2); |
|
|
abnormalMapper.saveAbnormalData(inData2); |
|
|
@ -798,7 +811,8 @@ public class DailyPlanServiceImpl implements DailyPlanService { |
|
|
checkUserSeqNo.get(0).setToTypeFlagDb("B"); |
|
|
checkUserSeqNo.get(0).setToTypeFlagDb("B"); |
|
|
//检验单加入暂停备注 |
|
|
//检验单加入暂停备注 |
|
|
checkUserSeqNo.get(0).setInspectRemark("产量报告报废超标"); |
|
|
checkUserSeqNo.get(0).setInspectRemark("产量报告报废超标"); |
|
|
checkUserSeqNo.get(0).setQtyRequired( new BigDecimal(qtyReported-qtyApprove) ); |
|
|
|
|
|
|
|
|
// 修改:直接使用BigDecimal,不经过Double运算 - rqrq |
|
|
|
|
|
checkUserSeqNo.get(0).setQtyRequired(defectQty); |
|
|
//硫化创建实验室检验单 |
|
|
//硫化创建实验室检验单 |
|
|
dailyPlanMapper.saveSOOpsTransferHeaderNew(checkUserSeqNo.get(0)); |
|
|
dailyPlanMapper.saveSOOpsTransferHeaderNew(checkUserSeqNo.get(0)); |
|
|
dailyPlanMapper.saveSOOpsTransferDetailNew(checkUserSeqNo.get(0)); |
|
|
dailyPlanMapper.saveSOOpsTransferDetailNew(checkUserSeqNo.get(0)); |
|
|
|