diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index d5147dd..a744e27 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -39,6 +39,9 @@ public interface IMesWorkOrderService extends IBaseMesService { @ApiOperation("反向冲销") void doReportWorkReversal(WmsProductModel model); + @ApiOperation("重新打开") + void doReopen(String[] ids,String userName,String organizeCode); + List getPreDayReportMesProductionRecord(String organizeCode , List mesShiftList, String workCenterCode); List getPreDayReportMesProduceSn(String organizeCode ,List mesProductionRecordList ); diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/ccscTask/sapToMesCcscTaskResult.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/ccscTask/sapToMesCcscTaskResult.groovy index b80cf7a..6a05bbd 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/ccscTask/sapToMesCcscTaskResult.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/ccscTask/sapToMesCcscTaskResult.groovy @@ -92,13 +92,15 @@ class sapToMesCcscTaskResult { if (resultWorkMap.size() > 0) { String work_center_code = resultWorkMap.get(0).get("work_center_code") String work_cell_code = resultWorkMap.get(0).get("work_cell_code") + long workOrderId = Long.valueOf(resultWorkMap.get(0).get("id")+"") LOGGER.info("-------- filterData Start QMS同步MES_CCSC任务检测结果 70{}",work_center_code) String logUpdateSql="update mes_comunication_log set is_deleted = 1 " + " where organize_code= '"+organizeCode+"' and work_center_code= '"+work_center_code+"' " + " and work_cell_code= '"+work_cell_code+"' and parameter_name= '"+part_no+"'; " insertSqlList.add(logUpdateSql); - + //更新工单CCSC状态 + String workOrderUpdate = ""; if (taskResult.equals("2")) { //1:合格 2:不合格 String insertSql = String.format(" INSERT INTO mes_comunication_log " + "(`parameter_name`,`parameter_desc`,`value`,`status`,`work_cell_code`,`work_center_code`, " + @@ -118,8 +120,11 @@ class sapToMesCcscTaskResult { mesInputDefectRecordService.savePartInspection(mesProduceSn, "JOB",mesDefect,"A01") } } - + workOrderUpdate = "update mes_work_order set ccsc_status = 20,work_order_status=40 where id= "+workOrderId+"; " + }else{ + workOrderUpdate = "update mes_work_order set ccsc_status = 10 where id= "+workOrderId+"; " } + insertSqlList.add(workOrderUpdate); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index af62a48..14590ed 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -183,5 +183,19 @@ public class MesWorkOrderController extends BaseMesController { } } + @PutMapping(value = "/reopen") + @ApiOperation(value = "重新打开") + public ResultBean doReopen(String[] ids) { + try { + ValidatorBean.checkNotNull(ids); + mesWorkOrderService.doReopen(ids, AuthUtil.getSessionUser().getUserName(),AuthUtil.getOrganizeCode()); + return ResultBean.success("反向冲销成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 40de38e..98acf50 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -112,6 +112,10 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private MesWorkCenterPartRelationRepository partRelationRao; + + @Autowired + private IMesCcscTaskService mesCcscTaskService; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -1052,6 +1056,38 @@ public class MesWorkOrderService extends BaseMesService implements mesProductOffLineService.insertBatch(mesProductOffLineList); } + @Override + public void doReopen(String[] ids,String userName,String organizeCode) { + //获取工单信息 + List mesWorkOrderList = getMesWorkOrderList(ids, organizeCode); + //数据更新 + for (MesWorkOrder mesWorkOrder : mesWorkOrderList) { + if (MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() != mesWorkOrder.getWorkOrderStatus()) { + MesException.throwMesBusiException("工单【%S】状态不为关闭,请检查数据", mesWorkOrder.getWorkOrderNo()); + } + if (!MesExtEnumUtil.OK_NOK.NOK.getValue().equals(mesWorkOrder.getCcscStatus())) { + MesException.throwMesBusiException("工单【%S】CCSC状态不为NOK,请检查数据", mesWorkOrder.getWorkOrderNo()); + } + if (mesWorkOrder.getUnCompleteQty() <= 0) { + MesException.throwMesBusiException("工单【%s】未完成数量小于等于0,请检查数据", mesWorkOrder.getWorkOrderNo()); + } + //更新工单状态 + mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + mesWorkOrder.setCcscStatus(""); + updateMesWorkOrder(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,mesWorkOrder.getQty()); + } + } + + private List getMesWorkOrderList(String[] ids, String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPack(String.join(",", ids),"id",packBean); + List mesWorkOrderList = baseRDao.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(mesWorkOrderList)) { + MesException.throwMesBusiException("选择工单信息不存在"); + } + return mesWorkOrderList; + } + private void updateMesWorkOrder(MesWorkOrder mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE type,double qty) { //修改工单,需要重新同步 mesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());