add:新增与MES用于更新分切计划和订单BOM信息的接口

This commit is contained in:
zhouz
2025-05-26 15:07:43 +08:00
parent 40addef8a1
commit c5a63cd8b6
3 changed files with 180 additions and 3 deletions

View File

@@ -190,4 +190,11 @@ public class MesToLmsController {
public ResponseEntity<Object> boxIsPass(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.boxIsPass(jo), HttpStatus.OK);
}
@PostMapping("/changeBomInfo")
@Log("MES更新LMS分切工单、订单BOM信息")
@SaIgnore
public ResponseEntity<Object> changeBomInfo(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.changeBomInfo(jo), HttpStatus.OK);
}
}

View File

@@ -85,4 +85,6 @@ public interface MesToLmsService {
JSONObject WasteFoilSuccess(JSONObject param);
JSONObject boxIsPass(JSONObject jo);
JSONObject changeBomInfo(JSONObject jo);
}

View File

@@ -420,7 +420,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
} else {
if (containerName.startsWith("B1") || containerName.startsWith("B3")) {
point_code = jsonCoolIvt.getString("point_code");
}else {
} else {
point_code = jsonCoolIvt.getString("full_point_code");
}
}
@@ -457,7 +457,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
JSONObject jsonPoint = pointTab.query("material_code = '" + containerName + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
JSONObject cool_jo = new JSONObject();
if (ObjectUtil.isEmpty(jsonPoint)) {
cool_jo = coolIvtTab.query("container_name = '"+containerName+"'").uniqueResult(0);
cool_jo = coolIvtTab.query("container_name = '" + containerName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(cool_jo)) {
throw new BadRequestException("当前AGV已启用且母卷不存在烘箱对接位上");
}
@@ -466,7 +466,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
// 调用接口输入参数
if (ObjectUtil.isEmpty(jsonPoint)) {
jsonParam.put("point_code", cool_jo.getString("point_code"));
}else {
} else {
jsonParam.put("point_code", jsonPoint.getString("point_code"));
}
jsonParam.put("container_name", containerName);
@@ -2453,4 +2453,172 @@ public class MesToLmsServiceImpl implements MesToLmsService {
}
return resultParam;
}
@Override
public JSONObject changeBomInfo(JSONObject param) {
log.info("changeBomInfo输入参数为-------------------" + param.toString());
WQLObject plan_tab = WQLObject.getWQLObject("pdm_bi_slittingproductionplan");
WQLObject bom_tab = WQLObject.getWQLObject("pdm_bi_orderbominfo");
/* MES传递的入参内容
{
ChangType:1
"MfgOrderName": "25529502-20230926$02#02",
"ContainerName":"A2512505050203B2",
"ProductName": "44151000900045",
"Description": "木制包装容器及板材|木箱|650|4|3|1290*750*494",
"CarrierName": "48221000000001",
"CarrierDescription": "纸制筒管|纸管|3英寸|650",
"Type": "RW2",
"HL01": "A+",
"HL02": "520",
"HL03": "1,538.000",
"HL031": "2,000.000",
"HL04": "100.000",
"HL041": "130.000",
"HL05": "20,000.000",
"HL06": "CC",
"HL07": "4",
"HL08": "ZT1(纸筒-3寸)",
"HL081": "650",
"HL09": "ROF(毛面朝外)",
"HL10": "纸管长度650中性包装",
"HL11": null
}
*/
Long id = IdUtil.getSnowflake(1, 1).nextId();
//变更类型
String change_type = param.getString("ChangeType");
//子卷号
String container_name = param.getString("ContainerName");
//设备级工单号
String mfg_order = param.getString("MfgOrderName");
//木箱物料编码
String product_name = param.getString("ProductName");
//木箱描述
String description = param.getString("Description");
//管芯编码
String carrier_name = param.getString("CarrierName");
//管芯描述
String carrier_description = param.getString("CarrierDescription");
//类型
String type = param.getString("Type");
//等级
String level = param.getString("HL01");
//幅宽
String thickness = param.getString("HL02");
//单卷长度下限
String length_floor = param.getString("HL03");
//单卷长度上限
String length_ceiling = param.getString("HL031");
//单卷重量下限
String weight_floor = param.getString("HL04");
//单卷重量上限
String weight_ceiling = param.getString("HL041");
//订单重量
String order_weight = param.getString("HL05");
//包装方案
String package_type = param.getString("HL06");
//单箱装卷数
String package_num = param.getString("HL07");
//管芯选配
String paper_type = param.getString("HL08");
//客户要求管芯长度
String need_paper_length = param.getString("HL081");
//收卷方式
String rolling_type = param.getString("HL09");
//客户特殊包装要求
String package_request = param.getString("HL10");
//客户指定生箔机台
String request_machine = param.getString("HL11");
JSONObject resultParam = new JSONObject();
try {
if (change_type.equals("1")) {
HashMap plan_map = new HashMap();
//变更分切计划的管件信息及订单号
//1、判断变更的属于FRP管还是纸管通过判断类型。TypeRW2FRP管RW3纸管
if (type.equals("RW2")) {
plan_map.put("paper_tube_or_FRP", "2");
plan_map.put("FRP_material", carrier_name);
plan_map.put("FRP_description", carrier_description);
plan_map.put("FRP_model", carrier_description);
plan_map.put("mfg_order_name", mfg_order);
} else {
plan_map.put("paper_tube_or_FRP", "1");
plan_map.put("paper_tube_material", carrier_name);
plan_map.put("paper_tube_description", carrier_description);
plan_map.put("paper_tube_model", carrier_description);
plan_map.put("mfg_order_name", mfg_order);
}
plan_tab.update(plan_map, "container_name = '" + container_name + "'");
}
//变更订单BOM的信息
//判断当前订单BOM是否存在如果存在则更新否则保存
IPdmBiOrderbominfoService orderbominfoService = SpringContextHolder.getBean(IPdmBiOrderbominfoService.class);
PdmBiOrderbominfo orderbominfo = orderbominfoService.getOne(new LambdaQueryWrapper<PdmBiOrderbominfo>().eq(PdmBiOrderbominfo::getMfgOrder, mfg_order));
if (ObjectUtil.isEmpty(orderbominfo)) {
PdmBiOrderbominfo bom_info = PdmBiOrderbominfo.builder()
.id(id)
.mfgOrder(mfg_order)
.productName(product_name)
.description(description)
.carrierName(carrier_name)
.carrierDescription(carrier_description)
.type(type)
.level(level)
.thickness(thickness)
.lengthFloor(length_floor)
.lengthCeiling(length_ceiling)
.weightFloor(weight_floor)
.weightCeiling(weight_ceiling)
.orderWeight(order_weight)
.packageType(package_type)
.packageNum(package_num)
.paperType(paper_type)
.needPaperLength(need_paper_length)
.rollingType(rolling_type)
.packageRequest(package_request)
.requestMachine(request_machine)
.inputTime(DateUtil.now())
.build();
orderbominfoService.save(bom_info);
} else {
orderbominfo.setProductName(product_name);
orderbominfo.setDescription(description);
orderbominfo.setCarrierName(carrier_name);
orderbominfo.setCarrierDescription(carrier_description);
orderbominfo.setType(type);
orderbominfo.setLevel(level);
orderbominfo.setThickness(thickness);
orderbominfo.setLengthFloor(length_floor);
orderbominfo.setLengthCeiling(length_ceiling);
orderbominfo.setWeightFloor(weight_floor);
orderbominfo.setWeightCeiling(weight_ceiling);
orderbominfo.setOrderWeight(order_weight);
orderbominfo.setPackageType(package_type);
orderbominfo.setPackageNum(package_num);
orderbominfo.setPaperType(paper_type);
orderbominfo.setNeedPaperLength(need_paper_length);
orderbominfo.setRollingType(rolling_type);
orderbominfo.setPackageRequest(package_request);
orderbominfo.setRequestMachine(request_machine);
orderbominfoService.updateById(orderbominfo);
}
resultParam.put("RTYPE", "S");
resultParam.put("RTMSG", "操作成功!");
resultParam.put("RTOAL", 1);
resultParam.put("RTDAT", null);
} catch (Exception e) {
resultParam.put("RTYPE", "E");
resultParam.put("RTMSG", "操作失败!" + e.getMessage());
resultParam.put("RTOAL", 0);
resultParam.put("RTDAT", null);
}
return resultParam;
}
}