|
@@ -109,35 +109,90 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
@Value("${mes-auto-post.enabled:false}")
|
|
|
private Boolean autoPostEnable;
|
|
|
|
|
|
+ @ApiOperation(value = "任务下发通知接口", notes = "任务下发通知接口")
|
|
|
+ @PostMapping("/externalApi/order/addMes")
|
|
|
+ public R addNotice(@RequestBody List<JSONObject> list) {
|
|
|
+ log.info("================接受外部系统任务开始================{}", JSONObject.toJSONString(list));
|
|
|
+ for (JSONObject jsonObject : list) {
|
|
|
+ jsonObject.put("taskType","MES");
|
|
|
+ }
|
|
|
+ R r = this.uniformlyHandleTasks(list);
|
|
|
+ log.info("================接受外部系统任务结束================{}", JSONObject.toJSONString(r));
|
|
|
+ return r;
|
|
|
+ }
|
|
|
|
|
|
@ApiOperation(value = "接受质检任务下发通知接口", notes = "接受质检任务下发通知接口")
|
|
|
@PostMapping("/externalApi/measuringTaskReceive")
|
|
|
public R addQualityToNotice(@RequestBody String data) {
|
|
|
log.info("==============接受质检任务下发通知接口开始================={}", data);
|
|
|
- ThreeCoordinateDto threeCoordinateDto = JSONObject.parseObject(data, ThreeCoordinateDto.class);
|
|
|
+ List<JSONObject> list = new ArrayList<>();
|
|
|
+ list.add(JSONObject.parseObject(data));
|
|
|
+ for (JSONObject jsonObject : list) {
|
|
|
+ jsonObject.put("taskType","SQ");
|
|
|
+ }
|
|
|
+ R r = this.uniformlyHandleTasks(list);
|
|
|
+ log.info("================接受外部系统任务结束================{}", JSONObject.toJSONString(r));
|
|
|
+ return r;
|
|
|
+ }
|
|
|
|
|
|
+ @ApiOperation(value = "外部接口统一处理", notes = "外部接口统一处理")
|
|
|
+ @PostMapping("/externalApi/uniformlyHandleTasks")
|
|
|
+ public R uniformlyHandleTasks(List<JSONObject> listPar){
|
|
|
+ R<Boolean> returnMsg = null;
|
|
|
+ BaseContextHandler.setTenant("0000");
|
|
|
+ if(listPar.size()==0){
|
|
|
+ returnMsg = R.fail("数据不能为空");
|
|
|
+ }
|
|
|
|
|
|
- MesNotice mesNotice = MesNotice.builder().orderNo(threeCoordinateDto.getTaskCode()+"_"+threeCoordinateDto.getProcessCode()+"_"+threeCoordinateDto.getPartOrder()).
|
|
|
- buType("TASKDISTRIBUTE").
|
|
|
- apiType("QUALITYTASK").
|
|
|
- lineCode("407109").
|
|
|
- status("1").
|
|
|
- userCode(threeCoordinateDto.getUserCode()).
|
|
|
- batchNo(threeCoordinateDto.getBatchNo()).
|
|
|
- source("数字化检测系统").
|
|
|
- targetSource("产线管控单元").
|
|
|
- acceptPar(data).build();
|
|
|
- try {
|
|
|
- boolean b = baseService.addNotice(mesNotice, 1.0);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return R.fail(e.getMessage());
|
|
|
+ // 重复数据校验
|
|
|
+ List<MesNotice> dataList = Lists.newArrayList();
|
|
|
+ try{
|
|
|
+ JSONObject checkJson = listPar.get(0);
|
|
|
+ switch (checkJson.getString("taskType")){
|
|
|
+ case "MES":
|
|
|
+ for (JSONObject jsonObject : listPar) {
|
|
|
+ String checkPar = "407109&TASKDISTRIBUTE&MESTASK&"+jsonObject.getString("auidnr")+"&"+jsonObject.getString("afonr")+"&"+jsonObject.getString("sno");
|
|
|
+ MesNotice mesNotice = MesNotice.builder().orderNo(jsonObject.getString("auidnr")).userCode(jsonObject.getString("userno")).batchNo(jsonObject.getString("batchno")).
|
|
|
+ buType("TASKDISTRIBUTE").lineCode("407109").status("1").source("智能总控系统").apiType("MESTASK").apiSort(jsonObject.getInteger("prio"))
|
|
|
+ .targetSource("产线管控单元").acceptPar(jsonObject.toJSONString()).checkPar(checkPar).build();
|
|
|
+ dataList.add(mesNotice);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "SQ":
|
|
|
+ for (JSONObject jsonObject : listPar) {
|
|
|
+ ThreeCoordinateDto threeCoordinateDto = JSONObject.parseObject(JSONObject.toJSONString(jsonObject), ThreeCoordinateDto.class);
|
|
|
+ String checkPar = "407109&TASKDISTRIBUTE&QUALITYTASK&"+threeCoordinateDto.getOrderNumber()+"&"+threeCoordinateDto.getProcessCode()+"&"+threeCoordinateDto.getPartOrder();
|
|
|
+
|
|
|
+ MesNotice mesNotice = MesNotice.builder().orderNo(threeCoordinateDto.getTaskCode()+"_"+threeCoordinateDto.getProcessCode()+"_"+threeCoordinateDto.getPartOrder()).
|
|
|
+ buType("TASKDISTRIBUTE").apiType("QUALITYTASK"). lineCode("407109"). status("1"). userCode(threeCoordinateDto.getUserCode()).
|
|
|
+ batchNo(threeCoordinateDto.getBatchNo()). source("数字化检测系统"). targetSource("产线管控单元").
|
|
|
+ acceptPar(JSONObject.toJSONString(jsonObject)).checkPar(checkPar).build();
|
|
|
+
|
|
|
+ dataList.add(mesNotice);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ returnMsg = R.fail("没有识别到对应类型的业务");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!dataList.isEmpty() && dataList.size()>0){
|
|
|
+ // 新增
|
|
|
+ String s = baseService.addNoticeMore(dataList);
|
|
|
+ returnMsg = R.success(null,s);
|
|
|
+ }
|
|
|
+
|
|
|
+ }catch (Exception ex){
|
|
|
+ ex.printStackTrace();
|
|
|
+ log.info("处理外部任务报错,{}", ex);
|
|
|
+ returnMsg = R.fail("处理任务失败:"+ ex.getMessage());
|
|
|
}
|
|
|
|
|
|
- log.info("==============接受质检任务下发通知接口结束=================");
|
|
|
- return R.success();
|
|
|
+ return returnMsg;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@ApiOperation(value = "质检结果上报", notes = "质检结果上报")
|
|
|
@PostMapping("/externalApi/qualityResultReport")
|
|
|
public R QualityResultReport(@RequestBody JSONObject params) {
|
|
@@ -331,41 +386,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value = "任务下发通知接口", notes = "任务下发通知接口")
|
|
|
- @PostMapping("/externalApi/order/addMes")
|
|
|
- public R addNotice(@RequestBody JSONArray jsonArray) {
|
|
|
- log.info("================addMes接受上游系统的任务================");
|
|
|
- BaseContextHandler.setTenant("0000");
|
|
|
- log.info("任务数据{}", jsonArray.toJSONString());
|
|
|
- try {
|
|
|
- //JSONArray jsonArray = JSONArray.parseArray(data.toString());
|
|
|
- List<MesNotice> dataList = Lists.newArrayList();
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- jsonArray.stream().forEach(item -> {
|
|
|
- JSONObject jsonObject = (JSONObject) JSONObject.toJSON(item);
|
|
|
- MesNotice mesNotice = MesNotice.builder().orderNo(jsonObject.getString("auidnr")).userCode(jsonObject.getString("userno")).batchNo(jsonObject.getString("batchno")).
|
|
|
- buType("TASKDISTRIBUTE").lineCode("407109").status("1").source("智能总控系统").apiType("MESTASK").apiSort(jsonObject.getInteger("prio"))
|
|
|
- .targetSource("产线管控单元").acceptPar(jsonObject.toJSONString()).build();
|
|
|
- if (!baseService.checkExists(mesNotice)) {
|
|
|
- dataList.add(mesNotice);
|
|
|
- } else {
|
|
|
- stringBuilder.append("订单号:" + jsonObject.getString("auidnr"));
|
|
|
- }
|
|
|
- });
|
|
|
|
|
|
- if (dataList != null && dataList.size() > 0) {
|
|
|
- boolean b = baseService.addNoticeMore(dataList);
|
|
|
- }
|
|
|
- if (stringBuilder.length() > 0) {
|
|
|
- throw new BizException(stringBuilder.toString() + "订单已存在");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return R.fail(e.getMessage());
|
|
|
- }
|
|
|
- log.info("================接受上游系统的任务结束================");
|
|
|
- return R.success();
|
|
|
- }
|
|
|
|
|
|
@ApiOperation(value = "工序报工接口", notes = "工序报工接口")
|
|
|
@PostMapping("/externalApi/order/mesProcessReport")
|
|
@@ -992,6 +1013,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
String partsNo = null;
|
|
|
String batchNo = null;
|
|
|
String partName = null; // 零件名称
|
|
|
+ String processName = null;
|
|
|
String externalTaskCode = null;
|
|
|
List<Object> taskList = null;
|
|
|
List<Object> workPieceList = null;
|
|
@@ -1000,6 +1022,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
//处理质检任务信息
|
|
|
JSONObject dataInfo = (qualityInfo != null) ? qualityInfo : mesInfo;
|
|
|
processNo = (qualityInfo != null) ? dataInfo.getString("ProcessCode") : dataInfo.getString("afonr");
|
|
|
+ processName = (qualityInfo != null) ? dataInfo.getString("bez") : dataInfo.getString("bez");
|
|
|
workOrderNo = (qualityInfo != null) ? dataInfo.getString("OrderNumber") : dataInfo.getString("auidnr");
|
|
|
batchNo = (qualityInfo != null) ? dataInfo.getString("BatchNo") : dataInfo.getString("batchno");
|
|
|
partName = (qualityInfo != null) ? dataInfo.getString("teilebez") : dataInfo.getString("teilebez");
|
|
@@ -1022,7 +1045,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
materialCode = StringUtil.isNotEmpty(idnr) ? idnr : mMeterial.getMeterialCode();
|
|
|
BBom bom = bBomService.getOne(new LambdaQueryWrapper<BBom>().eq(BBom::getPartsNo, drawingNo + "_V" + processNo).eq(BBom::getDrawingNo, drawingNo).eq(BBom::getSynFlag, "1"));
|
|
|
if (bom == null) {
|
|
|
- materialName = partName==null? mMeterial.getTradeMark() : partName;
|
|
|
+ materialName = partName==null ? (processName==null ? mMeterial.getTradeMark() :processName) : partName;
|
|
|
partsNo = drawingNo + "_V" + processNo;
|
|
|
bom = BBom.builder().synFlag("1").name(materialName + "V" + processNo).batchNo(batchNo).partsNo(partsNo).partsAlias(materialCode).no(processNo).brand(workOrderNo).status("1").importantFlag("0").keyFlag("0").zoneId(zone.getId()).drawingNo(drawingNo).build();
|
|
|
bom.setMeterialId(1L);
|
|
@@ -1232,7 +1255,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
|
|
|
.setStatus("1").setSingleTaskFlag(0).setOrderStatus("1").setBatchNo(workOrder.getString("batchNo")).setExternalTaskCode(workOrder.getString("externalTaskCode"));
|
|
|
//产品编码+ 密级编码 + 批次号 + 工艺版本
|
|
|
String orderName = "MES_" + workOrder.getString("materialCode") + "_" + workOrder.getString("planSecretLevel").toUpperCase() + "_" + workOrder.getString("batchNo") + "_" + workOrder.getString("processRouteVersion");
|
|
|
- orderName = partName==null? orderName : partName +"_"+ processNo;
|
|
|
+ orderName = partName==null? (processName==null ? orderName :processName+"_"+processNo) : (partName +"_"+ processNo);
|
|
|
order.setCustId(0L).setOrderName(orderName).setZoneId(zone.getId()).setAuditStatus("0");
|
|
|
orderService.save(order);
|
|
|
|