fix:子卷维护

This commit is contained in:
2024-12-09 11:12:34 +08:00
parent e181617d6f
commit fa05b5a784
2 changed files with 73 additions and 22 deletions

View File

@@ -20,14 +20,13 @@ import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService;
import org.nl.wms.pdm.ivt.bcut.service.IBstIvtCutpointivtService;
import org.nl.wms.pdm.ivt.bcut.service.dao.BstIvtCutpointivt;
import org.nl.wms.pdm.ivt.cut.service.dao.StIvtCutpointivt;
import org.nl.wms.pdm.ivt.cut.service.IstIvtCutpointivtService;
import org.nl.wms.pdm.ivt.cut.service.dao.StIvtCutpointivt;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.tasks.nbj.SendShaftAGVTask;
import org.nl.wms.sch.task_manage.tasks.slitter.*;
import org.nl.wms.util.TaskUtils;
import org.slf4j.MDC;
@@ -76,6 +75,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
private SlitterInHotAGVTask slitterInHotAGVTask;
@Autowired
private SlitterRebakeAGVTask slitterRebakeAGVTask;
@Override
public JSONObject queryOrderInfo(JSONObject param) {
JSONObject result = new JSONObject();
@@ -355,29 +355,29 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
if (ObjectUtil.isEmpty(containerName)) {
throw new BadRequestException("子卷号不能为空!");
}
List<String> collect = Arrays.stream(containerName.split(",")).collect(Collectors.toList());
StIvtCutpointivt slitterDevice = cutpointivtService.getPintByUpOrDownCode(pointCode1, false);
String qzzNo;
List<String> collect = Arrays.stream(containerName.split("[,|、/]")).collect(Collectors.toList());
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.getByContainerNames(collect);
if (plans.size() == 0) {
throw new BadRequestException("子卷号:[" + containerName + "] 的分切计划没找到,检查是否推送或者子卷号是否正确!");
// 生产分切计划
qzzNo = doCreatePlan(collect, slitterDevice, pointCode1);
// throw new BadRequestException("子卷号:[" + containerName + "] 的分切计划没找到,检查是否推送或者子卷号是否正确!");
} else {
PdmBiSlittingproductionplan demoPlan = plans.get(0);
String resourceName = demoPlan.getResource_name();
qzzNo = TaskUtils.createVirtualQzzNo(resourceName, "yyMMddHHmmss", demoPlan);
if (ObjectUtil.isNotEmpty(demoPlan.getQzzno())) {
qzzNo = demoPlan.getQzzno();
}
for (PdmBiSlittingproductionplan plan : plans) {
plan.setQzzno(qzzNo);
plan.setStatus("05");
TaskUtils.updateOptMessageBySlitterPlan(plan);
}
slittingproductionplanService.updateBatchById(plans);
}
PdmBiSlittingproductionplan demoPlan = plans.get(0);
String resourceName = demoPlan.getResource_name();
String qzzNo = resourceName.substring(0, 2)
+ resourceName.substring(resourceName.length() - 2)
+ demoPlan.getSplit_group()
+ TaskUtils.getDateTime("yyMMddHHmmss") + "-"
+ demoPlan.getUp_or_down();
if (ObjectUtil.isNotEmpty(demoPlan.getQzzno())) {
qzzNo = demoPlan.getQzzno();
}
for (PdmBiSlittingproductionplan plan : plans) {
plan.setQzzno(qzzNo);
plan.setStatus("05");
TaskUtils.updateOptMessageBySlitterPlan(plan);
}
slittingproductionplanService.updateBatchById(plans);
// 气胀轴编码设置到分切机器上
StIvtCutpointivt slitterDevice = cutpointivtService.getPintByUpOrDownCode(pointCode1, false);
if (pointCode1.equals(slitterDevice.getUp_point_code())) {
slitterDevice.setUp_qzzno(qzzNo);
} else {
@@ -390,6 +390,43 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
return res;
}
private String doCreatePlan(List<String> collect, StIvtCutpointivt slitterDevice, String point) {
List<PdmBiSlittingproductionplan> plans = new ArrayList<>();
String upOrDown = "S".equals(point.substring(point.length() - 1)) ? "1" : "2";
String qzzno = TaskUtils.createVirtualQzzNo(slitterDevice.getExt_code(),
"yyMMddHHmmss",
upOrDown);
for (int i = 0; i < collect.size(); i++) {
String containerName = collect.get(i);
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
p.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
p.setOrder_type("1");
p.setContainer_name(containerName);
p.setProduct_name("-");
p.setResource_name(slitterDevice.getExt_code());
p.setSplit_group("A");
p.setManufacture_sort("1");
p.setMfg_order_name("1");
p.setManufacture_date(DateUtil.now());
p.setPaper_tube_or_FRP("1");
p.setSplit_breadth(BigDecimal.ONE);
p.setSplit_height(BigDecimal.ONE);
p.setSplit_weight(BigDecimal.ONE);
p.setStatus("05");
p.setIs_parent_ok("1");
p.setIs_child_tz_ok("1");
p.setIs_child_ps_ok("1");
p.setQzzno(qzzno);
p.setSale_order_name("-");
p.setIs_call("1");
p.setUp_or_down(upOrDown);
p.setLeft_or_right(String.valueOf(i + 1));
plans.add(p);
}
slittingproductionplanService.saveBatch(plans);
return qzzno;
}
@Override
public JSONObject requestTubeShaft(JSONObject param) {
log.info("请求套轴 - {}", param);
@@ -407,7 +444,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
for (CallShaftVo callShaftVo : row) {
// 保存工单
PdmBiSlittingproductionplan plan = new PdmBiSlittingproductionplan();
plan.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
plan.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
plan.setOrder_type("1");
plan.setContainer_name(TaskUtils.createVirtualSubContainer("yyMMddHHmmss", cutDevice.getExt_code(), count++));
plan.setProduct_name("-");

View File

@@ -336,6 +336,20 @@ public class TaskUtils {
+ TaskUtils.getDateTime(format) + "-"
+ demoPlan.getUp_or_down();
}
/**
* 创建虚拟气胀轴编码
* @param resourceName 分切计划设备号
* @param format 格式
* @param upOrDown 上下轴
* @return 字符串
*/
public static String createVirtualQzzNo(String resourceName, String format, String upOrDown) {
return resourceName.substring(0, 2)
+ resourceName.substring(resourceName.length() - 2) + "-"
// + demoPlan.getSplit_group()
+ TaskUtils.getDateTime(format) + "-"
+ upOrDown;
}
/**
* 赋值分切计划的修改时间、人等信息