Commit e91e8c56 authored by chicheng's avatar chicheng

工序报工合格数为0异常解决

PC外协排产按计划开始时间倒排
parent 3614a628
...@@ -501,17 +501,17 @@ public class ProFeedbackServiceImpl implements IProFeedbackService { ...@@ -501,17 +501,17 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
@Override @Override
public LinkedHashMap<String, ProFeedbackSplitInfo> taskFeedback(ProTask proTask, ProFeedback mainFeedBackVal) { public LinkedHashMap<String, ProFeedbackSplitInfo> taskFeedback(ProTask proTask, ProFeedback mainFeedBackVal) {
//可分配合格数量
BigDecimal quantityFeedback = DataUtil.getNormalData(mainFeedBackVal.getQuantityQualify());
BigDecimal qualifySize = DataUtil.getNormalData(mainFeedBackVal.getQuantityQualify()); BigDecimal qualifySize = DataUtil.getNormalData(mainFeedBackVal.getQuantityQualify());
BigDecimal unQualifySize = DataUtil.getNormalData(mainFeedBackVal.getQuantityUnqualify()); BigDecimal unQualifySize = DataUtil.getNormalData(mainFeedBackVal.getQuantityUnqualify());
BigDecimal quantityFeedback = qualifySize.add(unQualifySize);
Date normalDate = DataUtil.getNormalData(mainFeedBackVal.getStartTime()); Date normalDate = DataUtil.getNormalData(mainFeedBackVal.getStartTime());
mainFeedBackVal.setQuantityUnqualify(unQualifySize); mainFeedBackVal.setQuantityUnqualify(unQualifySize);
mainFeedBackVal.setTaskCode(proTask.getTaskCode()); mainFeedBackVal.setTaskCode(proTask.getTaskCode());
long diffInSecond = (DateUtils.getNowDate().getTime() - normalDate.getTime()) / (1000); long diffInSecond = (DateUtils.getNowDate().getTime() - normalDate.getTime()) / (1000);
long itemSecond = diffInSecond / (quantityFeedback.longValue() == 0 ? 1 : quantityFeedback.longValue()); long totalQty = quantityFeedback.longValue();
long itemSecond = diffInSecond / (totalQty == 0 ? 1 : totalQty);
String arrangeCode = proTask.getArrangeCode(); String arrangeCode = proTask.getArrangeCode();
QueryWrapper<ProWorkorder> wrapper = new QueryWrapper<>(); QueryWrapper<ProWorkorder> wrapper = new QueryWrapper<>();
...@@ -542,7 +542,7 @@ public class ProFeedbackServiceImpl implements IProFeedbackService { ...@@ -542,7 +542,7 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
mainFeedBackVal.setQuantityFeedback(quantityFeedback); mainFeedBackVal.setQuantityFeedback(quantityFeedback);
mainFeedBackVal.setQuantityQualify(qualifySize); mainFeedBackVal.setQuantityQualify(qualifySize);
mainFeedBackVal.setQuantityUnqualify(unQualifySize); mainFeedBackVal.setQuantityUnqualify(unQualifySize);
mainFeedBackVal.setAttr1("工用时" + itemSecond * (quantityFeedback.longValue() == 0 ? 1 : quantityFeedback.longValue()) + "秒"); mainFeedBackVal.setAttr1("工用时" + itemSecond * (totalQty == 0 ? 1 : totalQty) + "秒");
ProFeedbackSplitInfo feedbackSplitInfo = new ProFeedbackSplitInfo(); ProFeedbackSplitInfo feedbackSplitInfo = new ProFeedbackSplitInfo();
feedbackSplitInfo.setQuantityQualify(qualifySize); feedbackSplitInfo.setQuantityQualify(qualifySize);
...@@ -562,16 +562,16 @@ public class ProFeedbackServiceImpl implements IProFeedbackService { ...@@ -562,16 +562,16 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
} }
for (ProFeedback proFeedback : splitFeedbackWorkorderList) { for (ProFeedback proFeedback : splitFeedbackWorkorderList) {
double v = proFeedback.getQuantityFeedback().doubleValue() / feedbackQuantityDouble; double splitBase = feedbackQuantityDouble > 0 ? feedbackQuantityDouble : 1;
double v = proFeedback.getQuantityFeedback().doubleValue() / splitBase;
double mtimeSecond = machineTime.doubleValue() * v; double mtimeSecond = machineTime.doubleValue() * v;
double btimeSecond = breakTime.doubleValue() * v; double btimeSecond = breakTime.doubleValue() * v;
double mtimeMin = mtimeSecond / 60; double mtimeMin = mtimeSecond / 60;
double btimeMin = btimeSecond / 60; double btimeMin = btimeSecond / 60;
feedBackTimeMap.put("mtimeSecond", mtimeSecond); feedBackTimeMap.put("mtimeSecond", mtimeSecond);
feedBackTimeMap.put("btimeSecond", btimeSecond); feedBackTimeMap.put("btimeSecond", btimeSecond);
// 发送报工 proFeedback.setMachineTime(formatMachineTimeMinutes(mtimeMin));
proFeedback.setMachineTime(DataUtil.getNormalData(mtimeMin, "0")); proFeedback.setBreakTime(formatMachineTimeMinutes(btimeMin));
proFeedback.setBreakTime(DataUtil.getNormalData(btimeMin, "0"));
// 保存数据 // 保存数据
proFeedback.setCreateTime(new Date()); proFeedback.setCreateTime(new Date());
this.insertProFeedback(proFeedback); this.insertProFeedback(proFeedback);
...@@ -581,6 +581,13 @@ public class ProFeedbackServiceImpl implements IProFeedbackService { ...@@ -581,6 +581,13 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
return feedbackWorkorderMap; return feedbackWorkorderMap;
} }
private String formatMachineTimeMinutes(double minutes) {
if (Double.isNaN(minutes) || Double.isInfinite(minutes) || minutes < 0) {
return "0";
}
return DataUtil.getNormalData(minutes, "0");
}
private void feedbackUnQuantitySplit(List<ProFeedback> splitFeedbackWorkorderList, BigDecimal unQualifySize) { private void feedbackUnQuantitySplit(List<ProFeedback> splitFeedbackWorkorderList, BigDecimal unQualifySize) {
BigDecimal unQualifySizeVal = BigDecimal.valueOf(unQualifySize.doubleValue()); BigDecimal unQualifySizeVal = BigDecimal.valueOf(unQualifySize.doubleValue());
if (unQualifySize.doubleValue() > 0) { if (unQualifySize.doubleValue() > 0) {
......
...@@ -465,7 +465,11 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService { ...@@ -465,7 +465,11 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
query.gt("ptw.quantity",0); query.gt("ptw.quantity",0);
query.orderByAsc("schedule_start_date"); if (proTaskWorkunit.getWorkunitId() != null) {
query.orderByDesc("ptw.schedule_start_date");
} else {
query.orderByAsc("ptw.schedule_start_date");
}
List<ProTaskWorkunit> list = proTaskWorkunitService.selectTaskWorkUnitJoinTask(query); List<ProTaskWorkunit> list = proTaskWorkunitService.selectTaskWorkUnitJoinTask(query);
return list; return list;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment