|
@@ -243,9 +243,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
|
|
|
apsProcessOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
apsProcessOperationDo.setPlanoutput("[1]" + outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
- //输出成品 没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划成品卷数}卷”
|
|
|
+ //输出成品
|
|
|
String outputfinishproduct = "";
|
|
|
if (StringUtils.isBlank(apsCraftRouteStepDo1.getNextstepid())) {
|
|
|
+ //如果没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划输出卷数 - 计划备料卷数}卷”
|
|
|
outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + "* " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
}
|
|
|
apsProcessOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|
|
@@ -369,9 +370,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
|
|
|
apsProcessOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
apsProcessOperationDo.setPlanoutput("[1]" + outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
- //输出成品 没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划成品卷数}卷”
|
|
|
+ //输出成品
|
|
|
String outputfinishproduct = "";
|
|
|
if (StringUtils.isBlank(apsCraftRouteStepDo.getNextstepid())) {
|
|
|
+ //如果没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划输出卷数 - 计划备料卷数}卷”
|
|
|
outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + "* " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
}
|
|
|
apsProcessOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|
|
@@ -521,6 +523,122 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /*
|
|
|
+ 更新后面所有工序信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ApsProcessOperationOutMaterDo> resetProcessOperation(List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList) {
|
|
|
+ List<ApsProcessOperationOutMaterDo> operationOutMaterDos = new ArrayList<>();//递归的数据源
|
|
|
+ try {
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationDoList = new ArrayList<>();
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoNewList = new ArrayList<>();
|
|
|
+ for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDoList) {
|
|
|
+ //这个输出的所有下道工序
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("PLANINPUTID", apsProcessOperationOutMaterDo.getId());
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
+ for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationDos) {
|
|
|
+ //更新输入
|
|
|
+ apsProcessOperationDo.setProducttypeid(apsProcessOperationOutMaterDo.getProducttypeid());
|
|
|
+ apsProcessOperationDo.setProducttype(apsProcessOperationOutMaterDo.getProducttype());
|
|
|
+ apsProcessOperationDo.setMetal(apsProcessOperationOutMaterDo.getMetal());
|
|
|
+ apsProcessOperationDo.setMetalstate(apsProcessOperationOutMaterDo.getMetalstate());
|
|
|
+ apsProcessOperationDo.setThickness(apsProcessOperationOutMaterDo.getThickness());
|
|
|
+ apsProcessOperationDo.setProwidth(apsProcessOperationOutMaterDo.getProwidth());
|
|
|
+ apsProcessOperationDo.setProlength(apsProcessOperationOutMaterDo.getProlength());
|
|
|
+ apsProcessOperationDo.setSinglerollweight(apsProcessOperationOutMaterDo.getSinglerollweight());
|
|
|
+ Integer planinrall = apsProcessOperationOutMaterDo.getPlanrollnum() - apsProcessOperationOutMaterDo.getPlanstockrollnum() - apsProcessOperationOutMaterDo.getPlanprodrollnum();
|
|
|
+ apsProcessOperationDo.setPlaninrall(planinrall);
|
|
|
+ apsProcessOperationDo.setPlanprocessrall(planinrall);
|
|
|
+ String meterInput = getInMeterInfo(apsProcessOperationOutMaterDo.getProducttype(), apsProcessOperationOutMaterDo.getMetal(), apsProcessOperationOutMaterDo.getMetalstate(), apsProcessOperationOutMaterDo.getThickness(), apsProcessOperationOutMaterDo.getProwidth(), apsProcessOperationOutMaterDo.getProlength());
|
|
|
+ apsProcessOperationDo.setPlaninput(meterInput + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), ""));
|
|
|
+
|
|
|
+ //输出
|
|
|
+ Map<String, Object> outmap = new HashMap<>();
|
|
|
+ outmap.put("MAINID", apsProcessOperationDo.getId());
|
|
|
+ List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList1 = apsProcessOperationOutMaterService.listByMap(outmap).stream().collect(Collectors.toList());
|
|
|
+ List<String> planoutputList = new ArrayList<>();
|
|
|
+ for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo1 : apsProcessOperationOutMaterDoList1) {
|
|
|
+ if (StringUtils.isBlank(apsProcessOperationOutMaterDo1.getProducttypeid())) {
|
|
|
+ apsProcessOperationOutMaterDo1.setProducttypeid(apsProcessOperationOutMaterDo.getProducttypeid());
|
|
|
+ }
|
|
|
+ String outProducttype = apsProcessOperationOutMaterDo1.getProducttype();
|
|
|
+ if (StringUtils.isBlank(outProducttype)) {
|
|
|
+ outProducttype = apsProcessOperationOutMaterDo.getProducttype();
|
|
|
+ apsProcessOperationOutMaterDo1.setProducttype(outProducttype);
|
|
|
+ }
|
|
|
+ String outMeter = apsProcessOperationOutMaterDo1.getMetal();
|
|
|
+ if (StringUtils.isBlank(outMeter)) {
|
|
|
+ outMeter = apsProcessOperationOutMaterDo.getMetal();
|
|
|
+ apsProcessOperationOutMaterDo1.setMetal(outMeter);
|
|
|
+ }
|
|
|
+ String outMetalstate = apsProcessOperationOutMaterDo1.getMetalstate();
|
|
|
+ if (StringUtils.isBlank(outMetalstate)) {
|
|
|
+ outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
|
|
|
+ apsProcessOperationOutMaterDo1.setMetalstate(outMetalstate);
|
|
|
+ }
|
|
|
+ BigDecimal tval = changeSize(apsProcessOperationOutMaterDo.getThickness(), apsProcessOperationOutMaterDo1.getThickrule(), apsProcessOperationOutMaterDo1.getThickchange());
|
|
|
+ apsProcessOperationOutMaterDo1.setThickness(tval);
|
|
|
+ BigDecimal wval = changeSize(apsProcessOperationOutMaterDo.getProwidth(), apsProcessOperationOutMaterDo1.getWidthrule(), apsProcessOperationOutMaterDo1.getWidthchange());
|
|
|
+ apsProcessOperationOutMaterDo1.setProwidth(wval);
|
|
|
+ BigDecimal lval = changeSize(apsProcessOperationOutMaterDo.getProlength(), apsProcessOperationOutMaterDo1.getLengthrule(), apsProcessOperationOutMaterDo1.getLengthchange());
|
|
|
+ apsProcessOperationOutMaterDo1.setProlength(lval);
|
|
|
+ apsProcessOperationOutMaterDo1.setPlanrollnum(planinrall * apsProcessOperationOutMaterDo1.getOutval());
|
|
|
+ //输入物料的输入单卷重*该输出物料的宽度/输入物料的宽度/该输出物料的单卷输出数量
|
|
|
+ String singlerollweight = df.format(apsProcessOperationOutMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(apsProcessOperationOutMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationOutMaterDo.getProwidth(), 2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ apsProcessOperationOutMaterDo1.setSinglerollweight(new BigDecimal(singlerollweight));
|
|
|
+ //输出物料
|
|
|
+ String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo1.getThickoffset(), apsProcessOperationOutMaterDo1.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(apsProcessOperationDo.getNumunit(), "");
|
|
|
+ apsProcessOperationOutMaterDo1.setOutputmaterial(outputMeter + "*" + (planinrall * apsProcessOperationOutMaterDo1.getOutval()) + "卷");
|
|
|
+ planoutputList.add(outputMeter + "*" + (planinrall * apsProcessOperationOutMaterDo1.getOutval()) + "卷");
|
|
|
+ apsProcessOperationOutMaterDo1.setOutmaterrequest(outputMeter);
|
|
|
+ //输出成品 没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划成品卷数}卷”
|
|
|
+ String outputfinishproduct = "";
|
|
|
+ if (StringUtils.isBlank(apsProcessOperationDo.getNextprocessid())) {
|
|
|
+ //没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划成品卷数}卷”
|
|
|
+ outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + "* " + ((planinrall * apsProcessOperationOutMaterDo1.getOutval()) - apsProcessOperationOutMaterDo1.getPlanstockrollnum()) + "卷";
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(apsProcessOperationDo.getNextprocessid()) && apsProcessOperationOutMaterDo1.getPlanprodrollnum() > 0) {
|
|
|
+ //如果有后道工序作业,并且计划成品卷数>0,则自动填入=“{输出物料的输入物料描述} * {计划成品卷数}卷”
|
|
|
+ outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + "* " + apsProcessOperationOutMaterDo1.getPlanprodrollnum() + "卷";
|
|
|
+ }
|
|
|
+ apsProcessOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|
|
|
+
|
|
|
+ apsProcessOperationOutMaterDoNewList.add(apsProcessOperationOutMaterDo);
|
|
|
+ if (StringUtils.isNotBlank(apsProcessOperationDo.getNextprocessid())) {
|
|
|
+ operationOutMaterDos.add(apsProcessOperationOutMaterDo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuffer planoutsb = new StringBuffer();
|
|
|
+ Collections.sort(planoutputList);
|
|
|
+ Integer outIndex = 1;
|
|
|
+ for (String planout : planoutputList) {
|
|
|
+ planoutsb.append("[" + outIndex + "]" + planout + "/n");
|
|
|
+ outIndex++;
|
|
|
+ }
|
|
|
+ apsProcessOperationDo.setPlanoutput(planoutsb.toString());
|
|
|
+
|
|
|
+ apsProcessOperationDoList.add(apsProcessOperationDo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean bool1 = apsProcessOperationService.saveOrUpdateBatch(apsProcessOperationDoList);
|
|
|
+ boolean bool2 = apsProcessOperationOutMaterService.saveOrUpdateBatch(apsProcessOperationOutMaterDoNewList);
|
|
|
+ if (bool1 && bool2) {
|
|
|
+ return operationOutMaterDos;
|
|
|
+ } else {
|
|
|
+ log.info("更新后面所有工序信息异常");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.info("更新后面所有工序信息异常");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
工艺步骤管理/输入物料描述
|
|
|
*/
|