|
@@ -289,23 +289,21 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo = BeanUtil.toBean(apsCraftRouteOutMaterRequestDo.get(0), ApsProcessOperationOutMaterDo.class);
|
|
|
apsProcessOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
- if (StringUtils.isBlank(apsProcessOperationOutMaterDo.getProducttypeid())) {
|
|
|
- apsProcessOperationOutMaterDo.setProducttypeid(outMaterDo.getProducttypeid());
|
|
|
- }
|
|
|
String outProducttype = apsProcessOperationOutMaterDo.getProducttype();
|
|
|
- if (StringUtils.isBlank(outProducttype)) {
|
|
|
- outProducttype = outMaterDo.getProducttype();
|
|
|
- apsProcessOperationOutMaterDo.setProducttype(outMaterDo.getProducttype());
|
|
|
+ if (apsProcessOperationOutMaterDo.getProducttyperule().equals("不变")) {
|
|
|
+ outProducttype = outMaterDo.getProducttype() == null ? "" : outMaterDo.getProducttype();
|
|
|
+ apsProcessOperationOutMaterDo.setProducttypeid(outMaterDo.getProducttypeid() == null ? "" : outMaterDo.getProducttypeid());
|
|
|
+ apsProcessOperationOutMaterDo.setProducttype(outProducttype);
|
|
|
}
|
|
|
String outMeter = apsProcessOperationOutMaterDo.getMetal();
|
|
|
- if (StringUtils.isBlank(outMeter)) {
|
|
|
- outMeter = outMaterDo.getMetal();
|
|
|
- apsProcessOperationOutMaterDo.setMetal(outMaterDo.getMetal());
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalrule().equals("不变")) {
|
|
|
+ outMeter = outMaterDo.getMetal() == null ? "" : outMaterDo.getMetal();
|
|
|
+ apsProcessOperationOutMaterDo.setMetal(outMeter);
|
|
|
}
|
|
|
String outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
|
|
|
- if (StringUtils.isBlank(outMetalstate)) {
|
|
|
- outMetalstate = outMaterDo.getMetalstate();
|
|
|
- apsProcessOperationOutMaterDo.setMetalstate(outMaterDo.getMetalstate());
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalstaterule().equals("不变")) {
|
|
|
+ outMetalstate = outMaterDo.getMetalstate() == null ? "" : outMaterDo.getMetalstate();
|
|
|
+ apsProcessOperationOutMaterDo.setMetalstate(outMetalstate);
|
|
|
}
|
|
|
BigDecimal tval = changeSize(outMaterDo.getThickness(), apsProcessOperationOutMaterDo.getThickrule(), apsProcessOperationOutMaterDo.getThickchange(), apsProcessOperationOutMaterDo.getThickness());
|
|
|
apsProcessOperationOutMaterDo.setThickness(tval);
|
|
@@ -344,7 +342,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
String outputfinishproduct = "";
|
|
|
if (StringUtils.isBlank(apsCraftRouteStepDo1.getNextstepid())) {
|
|
|
//如果没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划输出卷数 - 计划备料卷数}卷”
|
|
|
- outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + apsProcessOperationOutMaterDo.getSinglerollweight()+UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "")+ " * " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
+ outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "") + " * " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
}
|
|
|
apsProcessOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|
|
|
apsProcessOperationOutMaterDo.setOutmaterrequest(outputMeter);
|
|
@@ -448,23 +446,21 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo = BeanUtil.toBean(apsCraftRouteOutMaterRequestDo.get(0), ApsProcessOperationOutMaterDo.class);
|
|
|
apsProcessOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
- if (StringUtils.isBlank(apsProcessOperationOutMaterDo.getProducttypeid())) {
|
|
|
- apsProcessOperationOutMaterDo.setProducttypeid(blanckdata.getStr("PRODUCTTYPEID"));
|
|
|
- }
|
|
|
String outProducttype = apsProcessOperationOutMaterDo.getProducttype();
|
|
|
- if (StringUtils.isBlank(outProducttype)) {
|
|
|
- outProducttype = blanckdata.getStr("PRODUCTTYPE");
|
|
|
- apsProcessOperationOutMaterDo.setProducttype(blanckdata.getStr("PRODUCTTYPE"));
|
|
|
+ if (apsProcessOperationOutMaterDo.getProducttyperule().equals("不变")) {
|
|
|
+ outProducttype = blanckdata.getStr("PRODUCTTYPE") == null ? "" : blanckdata.getStr("PRODUCTTYPE");
|
|
|
+ apsProcessOperationOutMaterDo.setProducttypeid(blanckdata.getStr("PRODUCTTYPEID") == null ? "" : blanckdata.getStr("PRODUCTTYPEID"));
|
|
|
+ apsProcessOperationOutMaterDo.setProducttype(outProducttype);
|
|
|
}
|
|
|
String outMeter = apsProcessOperationOutMaterDo.getMetal();
|
|
|
- if (StringUtils.isBlank(outMeter)) {
|
|
|
- outMeter = blanckdata.getStr("ALLOY");
|
|
|
- apsProcessOperationOutMaterDo.setMetal(blanckdata.getStr("ALLOY"));
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalrule().equals("不变")) {
|
|
|
+ outMeter = blanckdata.getStr("ALLOY") == null ? "" : blanckdata.getStr("ALLOY");
|
|
|
+ apsProcessOperationOutMaterDo.setMetal(outMeter);
|
|
|
}
|
|
|
String outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
|
|
|
- if (StringUtils.isBlank(outMetalstate)) {
|
|
|
- outMetalstate = blanckdata.getStr("ALLOYSTATUS");
|
|
|
- apsProcessOperationOutMaterDo.setMetalstate(blanckdata.getStr("ALLOYSTATUS"));
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalstaterule().equals("不变")) {
|
|
|
+ outMetalstate = blanckdata.getStr("ALLOYSTATUS") == null ? "" : blanckdata.getStr("ALLOYSTATUS");
|
|
|
+ apsProcessOperationOutMaterDo.setMetalstate(outMetalstate);
|
|
|
}
|
|
|
BigDecimal tval = changeSize(blanckdata.getBigDecimal("THICKNESS"), apsProcessOperationOutMaterDo.getThickrule(), apsProcessOperationOutMaterDo.getThickchange(), apsProcessOperationOutMaterDo.getThickness());
|
|
|
apsProcessOperationOutMaterDo.setThickness(tval);
|
|
@@ -497,7 +493,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
String outputfinishproduct = "";
|
|
|
if (StringUtils.isBlank(apsCraftRouteStepDo.getNextstepid())) {
|
|
|
//如果没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划输出卷数 - 计划备料卷数}卷”
|
|
|
- outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + apsProcessOperationOutMaterDo.getSinglerollweight()+UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "")+ " * " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
+ outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "") + " * " + blanckdata.getInt("ROLLNUM") + "卷";
|
|
|
apsProcessOperationOutMaterDo.setPlanprodrollnum(blanckdata.getInt("ROLLNUM"));
|
|
|
} else {
|
|
|
apsProcessOperationOutMaterDo.setPlanprodrollnum(0);
|
|
@@ -585,13 +581,17 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public R chooseHistoryRoute(Map<String, Object> params) {
|
|
|
- String oldblankid = params.get("OLDBLANKID").toString();
|
|
|
+ JSONObject blanckdata = new JSONObject(params.get("BLANKDATA"));
|
|
|
String newblankid = params.get("NEWBLANKID").toString();
|
|
|
String craftrouteid = params.get("CRAFTROUTEID").toString();
|
|
|
|
|
|
+ // 获取排程参数设置
|
|
|
+ List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
|
|
|
+ BigDecimal aluminumdensity = apsConfigs.get(0).getAluminumdensity();
|
|
|
+
|
|
|
//先清空之前的相关数据
|
|
|
Map<String, Object> blanckMap = new HashMap<>();
|
|
|
- blanckMap.put("BLANKID", oldblankid);
|
|
|
+ blanckMap.put("BLANKID", blanckdata.getStr("ID"));
|
|
|
clearCraftRoute(blanckMap);
|
|
|
|
|
|
//选择新的坯料计划的工序作业、可选设备、输出、思维导图
|
|
@@ -621,7 +621,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
SysMindMappingDo sysMindMappingDo = BeanUtil.toBean(sysMindMappingDos.get(0), SysMindMappingDo.class);
|
|
|
String mindStrId = SecurityUtil.getUUID();
|
|
|
sysMindMappingDo.setId(mindStrId);
|
|
|
- sysMindMappingDo.setBsid(oldblankid);
|
|
|
+ sysMindMappingDo.setBsid(blanckdata.getStr("ID"));
|
|
|
sysMindMappingDo.setBstable("aps_process_operation");
|
|
|
sysMindMappingDoList.add(sysMindMappingDo);
|
|
|
|
|
@@ -641,14 +641,50 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
processId = SecurityUtil.getUUID();
|
|
|
processOperationDo = BeanUtil.toBean(apsProcessOperationDo1, ApsProcessOperationDo.class);
|
|
|
processOperationDo.setId(processId);
|
|
|
- processOperationDo.setBlankid(oldblankid);
|
|
|
+ processOperationDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
processOperationDo.setNextprocessid(null);
|
|
|
|
|
|
//前道工序输出
|
|
|
List<PreviousProcessVo> processVo = newProcessIds.stream().filter(pro -> pro.getPreviousstepid().equals(apsProcessOperationDo1.getPreviousprocessid())).collect(Collectors.toList());
|
|
|
List<ApsProcessOperationOutMaterDo> outMaterDos = processVo.get(0).getApsProcessOperationOutMaterDos().stream().filter(out -> out.getRoption().equals(apsProcessOperationDo1.getPlaninputid())).collect(Collectors.toList());
|
|
|
+ ApsProcessOperationOutMaterDo outMaterDo = outMaterDos.get(0);
|
|
|
processOperationDo.setPreviousprocessid(processVo.get(0).getProcessId());
|
|
|
- processOperationDo.setPlaninputid(outMaterDos.get(0).getId());
|
|
|
+ processOperationDo.setPlaninputid(outMaterDo.getId());
|
|
|
+ String meterInput = getInMeterInfo(outMaterDo.getProducttype(), outMaterDo.getMetal(), outMaterDo.getMetalstate(), outMaterDo.getThickness(), outMaterDo.getProwidth(), outMaterDo.getProlength());
|
|
|
+ processOperationDo.setPlaninput(meterInput + outMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(outMaterDo.getNumunit(), ""));
|
|
|
+ processOperationDo.setProducttypeid(outMaterDo.getProducttypeid());
|
|
|
+ processOperationDo.setProducttype(outMaterDo.getProducttype());
|
|
|
+ processOperationDo.setMetal(outMaterDo.getMetal());
|
|
|
+ processOperationDo.setMetalstate(outMaterDo.getMetalstate());
|
|
|
+ processOperationDo.setThickness(outMaterDo.getThickness());
|
|
|
+ processOperationDo.setProwidth(outMaterDo.getProwidth());
|
|
|
+ processOperationDo.setProlength(outMaterDo.getProlength());
|
|
|
+ processOperationDo.setSinglerollweight(outMaterDo.getSinglerollweight());
|
|
|
+ Integer planInRall = outMaterDo.getPlanrollnum() - outMaterDo.getPlanstockrollnum() - outMaterDo.getPlanprodrollnum();
|
|
|
+ processOperationDo.setPlaninrall(planInRall);
|
|
|
+ //输入物料ID对应前道工序作业输出物料只有一个后道工序作业),则不可编辑,自动计算=计划输入卷数
|
|
|
+ if (apsProcessOperationDos1.size() == 1) {
|
|
|
+ processOperationDo.setPlanprocessrall(processVo.get(0).getPlanprocessrall());
|
|
|
+ if (!processOperationDo.getProcessway().equals("合并加工")) {
|
|
|
+ BigDecimal loadingmin = processOperationDo.getLoadingmin() == null ? BigDecimal.valueOf(0) : processOperationDo.getLoadingmin();
|
|
|
+ BigDecimal cuttingmin = processOperationDo.getCuttingmin() == null ? BigDecimal.valueOf(0) : processOperationDo.getCuttingmin();
|
|
|
+ if (processOperationDo.getTimeway().equals("10")) {
|
|
|
+ //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*(上料时长+下料时长+(输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)))
|
|
|
+ BigDecimal prowidth = processOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : processOperationDo.getProwidth();
|
|
|
+ BigDecimal thickness = processOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : processOperationDo.getThickness();
|
|
|
+ BigDecimal workspeed = processOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : processOperationDo.getWorkspeed();
|
|
|
+ BigDecimal onceprocessmin = new BigDecimal(df.format(loadingmin.add(cuttingmin).add(processOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP))));
|
|
|
+ processOperationDo.setOnceprocessmin(onceprocessmin);
|
|
|
+ processOperationDo.setProcesstotaltime(new BigDecimal(df.format(BigDecimal.valueOf(processOperationDo.getPlanprocessrall()).multiply(onceprocessmin))));
|
|
|
+ } else if (processOperationDo.getTimeway().equals("40")) {
|
|
|
+ //如果计时方式=按单次加工时长计时,计划作业时长=(上料时长+下料时长+单次加工时长)*计划加工卷数
|
|
|
+ processOperationDo.setProcesstotaltime(new BigDecimal(df.format(loadingmin.add(cuttingmin).add(processOperationDo.getOnceprocessmin()).multiply(BigDecimal.valueOf(processOperationDo.getPlanprocessrall())))));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ processOperationDo.setPlanprocessrall(0);
|
|
|
+ }
|
|
|
+ processOperationDo.setUnfinishroll(planInRall - processOperationDo.getCheckoutroll());
|
|
|
|
|
|
//更新前道工序的后道工序
|
|
|
ApsProcessOperationDo aDo = apsProcessOperationDoList.stream().filter(qtr -> processVo.get(0).getProcessId().equals(qtr.getId())).findAny().orElse(null);
|
|
@@ -658,23 +694,77 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
aDo.setNextprocessid(aDo.getNextprocessid() + "," + processId);
|
|
|
}
|
|
|
|
|
|
+ //本道工序信息
|
|
|
+ previousProcessVo.setProcessId(processId);
|
|
|
+ previousProcessVo.setPreviousstepid(apsProcessOperationDo1.getId());
|
|
|
+ previousProcessVo.setPlanprocessrall(processOperationDo.getPlanprocessrall());
|
|
|
+
|
|
|
//本道工序的输出
|
|
|
List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos1 = apsProcessOperationOutMaterDos.stream().filter(omd -> apsProcessOperationDo1.getId().equals(omd.getMainid())).collect(Collectors.toList());
|
|
|
if (apsProcessOperationOutMaterDos1.size() == 0) {
|
|
|
return R.error("工艺步骤" + apsProcessOperationDo1.getProcessname() + "没输出");
|
|
|
}
|
|
|
+ List<String> planoutputList = new ArrayList<>();
|
|
|
for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDos1) {
|
|
|
ApsProcessOperationOutMaterDo processOperationOutMaterDo = BeanUtil.toBean(apsProcessOperationOutMaterDo, ApsProcessOperationOutMaterDo.class);
|
|
|
processOperationOutMaterDo.setRoption(apsProcessOperationOutMaterDo.getId());
|
|
|
processOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
+
|
|
|
+ String outProducttype = apsProcessOperationOutMaterDo.getProducttype();
|
|
|
+ if (apsProcessOperationOutMaterDo.getProducttyperule().equals("不变")) {
|
|
|
+ outProducttype = outMaterDo.getProducttype() == null ? "" : outMaterDo.getProducttype();
|
|
|
+ processOperationOutMaterDo.setProducttypeid(outMaterDo.getProducttypeid() == null ? "" : outMaterDo.getProducttypeid());
|
|
|
+ processOperationOutMaterDo.setProducttype(outProducttype);
|
|
|
+ }
|
|
|
+ String outMeter = apsProcessOperationOutMaterDo.getMetal();
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalrule().equals("不变")) {
|
|
|
+ outMeter = outMaterDo.getMetal() == null ? "" : outMaterDo.getMetal();
|
|
|
+ processOperationOutMaterDo.setMetal(outMeter);
|
|
|
+ }
|
|
|
+ String outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalstaterule().equals("不变")) {
|
|
|
+ outMetalstate = outMaterDo.getMetalstate() == null ? "" : outMaterDo.getMetalstate();
|
|
|
+ processOperationOutMaterDo.setMetalstate(outMetalstate);
|
|
|
+ }
|
|
|
+ BigDecimal tval = changeSize(outMaterDo.getThickness(), apsProcessOperationOutMaterDo.getThickrule(), apsProcessOperationOutMaterDo.getThickchange(), apsProcessOperationOutMaterDo.getThickness());
|
|
|
+ processOperationOutMaterDo.setThickness(tval);
|
|
|
+ BigDecimal wval = changeSize(outMaterDo.getProwidth(), apsProcessOperationOutMaterDo.getWidthrule(), apsProcessOperationOutMaterDo.getWidthchange(), apsProcessOperationOutMaterDo.getProwidth());
|
|
|
+ processOperationOutMaterDo.setProwidth(wval);
|
|
|
+ BigDecimal lval = changeSize(outMaterDo.getProlength(), apsProcessOperationOutMaterDo.getLengthrule(), apsProcessOperationOutMaterDo.getLengthchange(), apsProcessOperationOutMaterDo.getProlength());
|
|
|
+ processOperationOutMaterDo.setProlength(lval);
|
|
|
+ processOperationOutMaterDo.setPlanrollnum(processOperationDo.getPlanprocessrall() * apsProcessOperationOutMaterDo.getOutval());
|
|
|
+ //输入单卷重*输出宽度/输入宽度
|
|
|
+ String singlerollweight = df.format(outMaterDo.getSinglerollweight().multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(outMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : outMaterDo.getProwidth(), 3, BigDecimal.ROUND_HALF_UP));
|
|
|
+ processOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
|
|
|
+ processOperationOutMaterDo.setNumunit(blanckdata.getStr("NUMBERUNIT"));
|
|
|
+ //没有后道工序作业,计划成品卷数=计划输出卷数-计划备料卷数
|
|
|
+ if (StringUtils.isBlank(apsProcessOperationDo.getNextprocessid())) {
|
|
|
+ processOperationOutMaterDo.setPlanprodrollnum(processOperationDo.getPlanprocessrall());
|
|
|
+ } else {
|
|
|
+ processOperationOutMaterDo.setPlanprodrollnum(0);
|
|
|
+ }
|
|
|
+ //输出物料
|
|
|
+ String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, processOperationOutMaterDo.getThickoffset(), processOperationOutMaterDo.getWidthoffset(), processOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
|
|
|
+ processOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + (planInRall * processOperationOutMaterDo.getOutval()) + "卷");
|
|
|
+ planoutputList.add(outputMeter + "*" + (planInRall * processOperationOutMaterDo.getOutval()) + "卷");
|
|
|
+ String outputfinishproduct = "";
|
|
|
+ Integer planprodrollnum = 0;
|
|
|
+ if (StringUtils.isBlank(apsProcessOperationDo.getNextprocessid())) {
|
|
|
+ planprodrollnum = (planInRall * processOperationOutMaterDo.getOutval()) - processOperationOutMaterDo.getPlanstockrollnum();
|
|
|
+ //没有后道工序作业,计划成品卷数=计划输出卷数-计划备料卷数
|
|
|
+ processOperationOutMaterDo.setPlanprodrollnum(processOperationOutMaterDo.getPlanrollnum() - processOperationOutMaterDo.getPlanstockrollnum());
|
|
|
+ } else {
|
|
|
+ planprodrollnum = processOperationOutMaterDo.getPlanprodrollnum();
|
|
|
+ }
|
|
|
+ if (planprodrollnum > 0) {
|
|
|
+ outputfinishproduct = getInMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval) + "* " + planprodrollnum + "卷";
|
|
|
+ }
|
|
|
+ processOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|
|
|
+ processOperationOutMaterDo.setOutmaterrequest(outputMeter);
|
|
|
processOperationOutMaterDo.setMainid(processId);
|
|
|
- processOperationOutMaterDo.setBlankid(oldblankid);
|
|
|
+ processOperationOutMaterDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
apsProcessOperationOutMaterDoList.add(processOperationOutMaterDo);
|
|
|
}
|
|
|
-
|
|
|
- //本道工序信息
|
|
|
- previousProcessVo.setProcessId(processId);
|
|
|
- previousProcessVo.setPreviousstepid(apsProcessOperationDo1.getId());
|
|
|
previousProcessVo.setApsProcessOperationOutMaterDos(apsProcessOperationOutMaterDoList);
|
|
|
|
|
|
//本道工序的可选设备
|
|
@@ -683,7 +773,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
ApsProcessOperationEquDo processOperationEquDo = BeanUtil.toBean(apsProcessOperationEquDo, ApsProcessOperationEquDo.class);
|
|
|
processOperationEquDo.setId(SecurityUtil.getUUID());
|
|
|
processOperationEquDo.setMainid(processId);
|
|
|
- processOperationEquDo.setBlankid(oldblankid);
|
|
|
+ processOperationEquDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
apsProcessOperationEquDoList.add(processOperationEquDo);
|
|
|
}
|
|
|
|
|
@@ -692,7 +782,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
SysMindMappingDo sysMindMappingDo1 = sysMindMappingDos1.get(0);
|
|
|
sysMindMappingDo1.setId(processId);
|
|
|
sysMindMappingDo1.setParentid(processVo.get(0).getProcessId());
|
|
|
- sysMindMappingDo1.setBsid(oldblankid);
|
|
|
+ sysMindMappingDo1.setBsid(blanckdata.getStr("ID"));
|
|
|
sysMindMappingDo1.setBstable("aps_process_operation");
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.putOpt("craftStepId", apsProcessOperationDo1.getId());
|
|
@@ -700,6 +790,19 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
sysMindMappingDoList.add(sysMindMappingDo1);
|
|
|
|
|
|
newProcessIds.add(previousProcessVo);
|
|
|
+
|
|
|
+ StringBuffer planoutsb = new StringBuffer();
|
|
|
+ Collections.sort(planoutputList);
|
|
|
+ Integer outIndex = 1;
|
|
|
+ if (planoutputList.size() == 1) {
|
|
|
+ planoutsb.append("[1]" + planoutputList.get(0));
|
|
|
+ } else {
|
|
|
+ for (String planout : planoutputList) {
|
|
|
+ planoutsb.append("[" + outIndex + "]" + planout + "/n");
|
|
|
+ outIndex++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ processOperationDo.setPlanoutput(planoutsb.toString());
|
|
|
apsProcessOperationDoList.add(processOperationDo);
|
|
|
|
|
|
overProcessIds.add(apsProcessOperationDo1.getId());
|
|
@@ -708,26 +811,85 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
previousProcessVo = new PreviousProcessVo();
|
|
|
//首道工序
|
|
|
processId = SecurityUtil.getUUID();
|
|
|
+ String meterInput = getInMeterInfo(blanckdata.getStr("PRODUCTTYPE"), blanckdata.getStr("ALLOY"), blanckdata.getStr("ALLOYSTATUS"), blanckdata.getBigDecimal("THICKNESS"), blanckdata.getBigDecimal("PROWIDTH"), blanckdata.getBigDecimal("PROLENGTH"));
|
|
|
processOperationDo = BeanUtil.toBean(apsProcessOperationDo, ApsProcessOperationDo.class);
|
|
|
processOperationDo.setId(processId);
|
|
|
- processOperationDo.setBlankid(oldblankid);
|
|
|
+ processOperationDo.setPlaninput(meterInput + blanckdata.getStr("SINGLEROLLWEIGHT") + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), ""));
|
|
|
+ processOperationDo.setMetalstate(blanckdata.getStr("ALLOYSTATUS"));
|
|
|
+ processOperationDo.setProwidth(blanckdata.getBigDecimal("PROWIDTH"));
|
|
|
+ processOperationDo.setProlength(blanckdata.getBigDecimal("PROLENGTH"));
|
|
|
+ processOperationDo.setSinglerollweight(blanckdata.getBigDecimal("SINGLEROLLWEIGHT"));
|
|
|
+ processOperationDo.setPlaninrall(blanckdata.getInt("ROLLNUM"));
|
|
|
+ processOperationDo.setPlanprocessrall(blanckdata.getInt("ROLLNUM"));
|
|
|
+ processOperationDo.setUnfinishroll(blanckdata.getInt("ROLLNUM"));
|
|
|
+ processOperationDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
processOperationDo.setNextprocessid(null);
|
|
|
|
|
|
+ if (!processOperationDo.getProcessway().equals("合并加工")) {
|
|
|
+ BigDecimal loadingmin = processOperationDo.getLoadingmin() == null ? BigDecimal.valueOf(0) : processOperationDo.getLoadingmin();
|
|
|
+ BigDecimal cuttingmin = processOperationDo.getCuttingmin() == null ? BigDecimal.valueOf(0) : processOperationDo.getCuttingmin();
|
|
|
+ if (processOperationDo.getTimeway().equals("10")) {
|
|
|
+ //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*(上料时长+下料时长+(输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)))
|
|
|
+ BigDecimal prowidth = processOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : processOperationDo.getProwidth();
|
|
|
+ BigDecimal thickness = processOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : processOperationDo.getThickness();
|
|
|
+ BigDecimal workspeed = processOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : processOperationDo.getWorkspeed();
|
|
|
+ BigDecimal onceprocessmin = new BigDecimal(df.format(loadingmin.add(cuttingmin).add(processOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP))));
|
|
|
+ processOperationDo.setOnceprocessmin(onceprocessmin);
|
|
|
+ processOperationDo.setProcesstotaltime(new BigDecimal(df.format(BigDecimal.valueOf(processOperationDo.getPlanprocessrall()).multiply(onceprocessmin))));
|
|
|
+ } else if (processOperationDo.getTimeway().equals("40")) {
|
|
|
+ //如果计时方式=按单次加工时长计时,计划作业时长=(上料时长+下料时长+单次加工时长)*计划加工卷数
|
|
|
+ processOperationDo.setProcesstotaltime(new BigDecimal(df.format(loadingmin.add(cuttingmin).add(processOperationDo.getOnceprocessmin()).multiply(BigDecimal.valueOf(processOperationDo.getPlanprocessrall())))));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//本道工序信息
|
|
|
previousProcessVo.setProcessId(processId);
|
|
|
previousProcessVo.setPreviousstepid(apsProcessOperationDo.getId());
|
|
|
+ previousProcessVo.setPlanprocessrall(blanckdata.getInt("ROLLNUM"));
|
|
|
|
|
|
//本道工序的输出
|
|
|
List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos1 = apsProcessOperationOutMaterDos.stream().filter(omd -> apsProcessOperationDo.getId().equals(omd.getMainid())).collect(Collectors.toList());
|
|
|
if (apsProcessOperationOutMaterDos1.size() == 0) {
|
|
|
return R.error("工艺步骤" + apsProcessOperationDo.getProcessname() + "没输出");
|
|
|
}
|
|
|
+ List<String> planoutputList = new ArrayList<>();
|
|
|
for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDos1) {
|
|
|
ApsProcessOperationOutMaterDo processOperationOutMaterDo = BeanUtil.toBean(apsProcessOperationOutMaterDo, ApsProcessOperationOutMaterDo.class);
|
|
|
- processOperationOutMaterDo.setRoption(apsProcessOperationOutMaterDo.getId());
|
|
|
processOperationOutMaterDo.setId(SecurityUtil.getUUID());
|
|
|
+ processOperationOutMaterDo.setRoption(apsProcessOperationOutMaterDo.getId());
|
|
|
+ String outProducttype = apsProcessOperationOutMaterDo.getProducttype();
|
|
|
+ if (apsProcessOperationOutMaterDo.getProducttyperule().equals("不变")) {
|
|
|
+ outProducttype = blanckdata.getStr("PRODUCTTYPE") == null ? "" : blanckdata.getStr("PRODUCTTYPE");
|
|
|
+ processOperationOutMaterDo.setProducttypeid(blanckdata.getStr("PRODUCTTYPEID") == null ? "" : blanckdata.getStr("PRODUCTTYPEID"));
|
|
|
+ processOperationOutMaterDo.setProducttype(outProducttype);
|
|
|
+ }
|
|
|
+ String outMeter = apsProcessOperationOutMaterDo.getMetal();
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalrule().equals("不变")) {
|
|
|
+ outMeter = blanckdata.getStr("ALLOY") == null ? "" : blanckdata.getStr("ALLOY");
|
|
|
+ processOperationOutMaterDo.setMetal(outMeter);
|
|
|
+ }
|
|
|
+ String outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
|
|
|
+ if (apsProcessOperationOutMaterDo.getMetalstaterule().equals("不变")) {
|
|
|
+ outMetalstate = blanckdata.getStr("ALLOYSTATUS") == null ? "" : blanckdata.getStr("ALLOYSTATUS");
|
|
|
+ processOperationOutMaterDo.setMetalstate(outMetalstate);
|
|
|
+ }
|
|
|
+ BigDecimal tval = changeSize(blanckdata.getBigDecimal("THICKNESS"), apsProcessOperationOutMaterDo.getThickrule(), apsProcessOperationOutMaterDo.getThickchange(), apsProcessOperationOutMaterDo.getThickness());
|
|
|
+ processOperationOutMaterDo.setThickness(tval);
|
|
|
+ BigDecimal wval = changeSize(blanckdata.getBigDecimal("PROWIDTH"), apsProcessOperationOutMaterDo.getWidthrule(), apsProcessOperationOutMaterDo.getWidthchange(), apsProcessOperationOutMaterDo.getProwidth());
|
|
|
+ processOperationOutMaterDo.setProwidth(wval);
|
|
|
+ BigDecimal lval = changeSize(blanckdata.getBigDecimal("PROLENGTH"), apsProcessOperationOutMaterDo.getLengthrule(), apsProcessOperationOutMaterDo.getLengthchange(), apsProcessOperationOutMaterDo.getProlength());
|
|
|
+ processOperationOutMaterDo.setProlength(lval);
|
|
|
+ processOperationOutMaterDo.setPlanrollnum(blanckdata.getInt("ROLLNUM"));
|
|
|
+ //输入单卷重*输出宽度/输入宽度
|
|
|
+ String singlerollweight = df.format(blanckdata.getBigDecimal("SINGLEROLLWEIGHT").multiply(wval == null ? BigDecimal.valueOf(1) : wval).divide(blanckdata.getBigDecimal("PROWIDTH") == null ? BigDecimal.valueOf(1) : blanckdata.getBigDecimal("PROWIDTH"), 3, BigDecimal.ROUND_HALF_UP));
|
|
|
+ processOperationOutMaterDo.setSinglerollweight(new BigDecimal(singlerollweight));
|
|
|
+ processOperationOutMaterDo.setNumunit(blanckdata.getStr("NUMBERUNIT"));
|
|
|
+ //输出物料
|
|
|
+ String outputMeter = getOutMeterInfo(outProducttype, outMeter, outMetalstate, tval, wval, lval, apsProcessOperationOutMaterDo.getThickoffset(), apsProcessOperationOutMaterDo.getWidthoffset(), apsProcessOperationOutMaterDo.getLengthoffset()) + singlerollweight + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), "");
|
|
|
+ processOperationOutMaterDo.setOutputmaterial(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
+ planoutputList.add(outputMeter + "*" + blanckdata.getInt("ROLLNUM") + "卷");
|
|
|
processOperationOutMaterDo.setMainid(processId);
|
|
|
- processOperationOutMaterDo.setBlankid(oldblankid);
|
|
|
+ processOperationOutMaterDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
apsProcessOperationOutMaterDoList.add(processOperationOutMaterDo);
|
|
|
}
|
|
|
previousProcessVo.setApsProcessOperationOutMaterDos(apsProcessOperationOutMaterDoList);
|
|
@@ -738,7 +900,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
ApsProcessOperationEquDo processOperationEquDo = BeanUtil.toBean(apsProcessOperationEquDo, ApsProcessOperationEquDo.class);
|
|
|
processOperationEquDo.setId(SecurityUtil.getUUID());
|
|
|
processOperationEquDo.setMainid(processId);
|
|
|
- processOperationEquDo.setBlankid(oldblankid);
|
|
|
+ processOperationEquDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
apsProcessOperationEquDoList.add(processOperationEquDo);
|
|
|
}
|
|
|
|
|
@@ -747,7 +909,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
SysMindMappingDo sysMindMappingDo1 = sysMindMappingDos1.get(0);
|
|
|
sysMindMappingDo1.setId(processId);
|
|
|
sysMindMappingDo1.setParentid(mindStrId);
|
|
|
- sysMindMappingDo1.setBsid(oldblankid);
|
|
|
+ sysMindMappingDo1.setBsid(blanckdata.getStr("ID"));
|
|
|
sysMindMappingDo1.setBstable("aps_process_operation");
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.putOpt("craftStepId", apsProcessOperationDo.getId());
|
|
@@ -755,6 +917,19 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
sysMindMappingDoList.add(sysMindMappingDo1);
|
|
|
|
|
|
newProcessIds.add(previousProcessVo);
|
|
|
+
|
|
|
+ StringBuffer planoutsb = new StringBuffer();
|
|
|
+ Collections.sort(planoutputList);
|
|
|
+ Integer outIndex = 1;
|
|
|
+ if (planoutputList.size() == 1) {
|
|
|
+ planoutsb.append("[1]" + planoutputList.get(0));
|
|
|
+ } else {
|
|
|
+ for (String planout : planoutputList) {
|
|
|
+ planoutsb.append("[" + outIndex + "]" + planout + "/n");
|
|
|
+ outIndex++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ processOperationDo.setPlanoutput(planoutsb.toString());
|
|
|
apsProcessOperationDoList.add(processOperationDo);
|
|
|
}
|
|
|
}
|
|
@@ -766,7 +941,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
boolean bool4 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDoList);
|
|
|
if (bool1 && bool2 && bool3 && bool4) {
|
|
|
//更新坯料计划的所选工艺路线
|
|
|
- apsBlankOrderDao.upCraftrouteId(oldblankid, craftrouteid);
|
|
|
+ apsBlankOrderDao.upCraftrouteId(blanckdata.getStr("ID"), craftrouteid);
|
|
|
return R.ok();
|
|
|
} else {
|
|
|
return R.error();
|
|
@@ -1332,7 +1507,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
String outputfinishproduct = "";
|
|
|
if (StringUtils.isBlank(apsProcessOperationDo.getNextprocessid())) {
|
|
|
//如果没有后道工序作业,则自动填入=“{输出物料的输入物料描述} * {计划输出卷数 - 计划备料卷数}卷”
|
|
|
- outputfinishproduct = getInMeterInfo(apsProcessOperationOutMaterDo.getProducttype(), apsProcessOperationOutMaterDo.getMetal(), apsProcessOperationOutMaterDo.getMetalstate(), apsProcessOperationOutMaterDo.getThickness(), apsProcessOperationOutMaterDo.getProwidth(), apsProcessOperationOutMaterDo.getProlength())+ apsProcessOperationOutMaterDo.getSinglerollweight()+UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "")+ " * " + rollnum + "卷";
|
|
|
+ outputfinishproduct = getInMeterInfo(apsProcessOperationOutMaterDo.getProducttype(), apsProcessOperationOutMaterDo.getMetal(), apsProcessOperationOutMaterDo.getMetalstate(), apsProcessOperationOutMaterDo.getThickness(), apsProcessOperationOutMaterDo.getProwidth(), apsProcessOperationOutMaterDo.getProlength()) + apsProcessOperationOutMaterDo.getSinglerollweight() + UNIT_MAP.getOrDefault(apsProcessOperationOutMaterDo.getNumunit(), "") + " * " + rollnum + "卷";
|
|
|
apsProcessOperationOutMaterDo.setPlanprodrollnum(rollnum);
|
|
|
}
|
|
|
apsProcessOperationOutMaterDo.setOutputfinishproduct(outputfinishproduct);
|