diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java index 1b0ae92..49442ae 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.MesConfigService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.MesProduceSnExtService; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import jodd.util.Base64; import lombok.extern.slf4j.Slf4j; @@ -43,7 +44,7 @@ public class MesWhiteController { @PostMapping("/picture") public ResultBean savePicture(@RequestBody MesPictureModel model){ - log.info("castle-保存图片开始"); + log.info("castle-保存图片开始 model={}", JSONObject.toJSONString(model)); String localUrl = mesConfigService.getCfgValue(model.getOrganizeCode(), "LOCAL_PICTURE_ABS_URL"); String fileName = localUrl+model.getFileName(); File file = new File(fileName); @@ -60,10 +61,14 @@ public class MesWhiteController { if (!StringUtils.isBlank(model.getRemoteUserName()) && !StringUtils.isBlank(model.getRemoteNginxUrl()) ){ // 构建scp命令 log.info("castle-保存图片开始-scp命令"); - String scpCommand = String.format("scp -P %s %s %s@%s:%s", model.getRemotePort() ,fileName, model.getRemoteUserName(), model.getRemoteNginxUrl(), localUrl); + String scpCommand = String.format("scp %s %s@%s:%s" ,fileName, model.getRemoteUserName(), model.getRemoteNginxUrl(), localUrl); + log.info("castle-保存图片开始-scp命令开始={}",scpCommand); + try { Runtime.getRuntime().exec(scpCommand); - } catch (IOException e) { + log.info("castle-保存图片开始-scp命令结束={}",scpCommand); + + } catch (Exception e) { log.error("调用scp命令失败,请手动同步图片:{}",fileName); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java index fd9e154..2c09905 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java @@ -33,6 +33,7 @@ import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -291,6 +292,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { public void doReworkSuccess(MesReworkTaskRequestModel requestModel) { MesReworkTask mesReworkTask = getMesReworkTask(requestModel); + /** * 获取返工单信息 */ @@ -362,7 +364,9 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { String workCenterCode = ""; if (mesPartInspection != null) { workCenterCode = mesPartInspection.getWorkCenterCode(); + requestModel.setSn(mesPartInspection.getSn()); } + requestModel.setReworkedQty(mesReworkTask.getQty()); if (MesExtEnumUtil.NC_TYPE.REWORK.getValue() == requestModel.getType()) { if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) { String destLocateNo = getDestLocateNo(requestModel.getOrganizeCode(), mesPartInspection.getId()); @@ -1181,6 +1185,15 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { private void doCreateReworkMove(MesReworkTaskRequestModel requestModel,String srcLocate, String destLocate,String workCenterCode,String partNo,Long partInspectionId) { MesPartSap mesPartSap = mesPartService.getMesPartSapByPartNo(partNo, requestModel.getOrganizeCode()); + + GenSerialNoModel serialNoModel = new GenSerialNoModel("INPUT_DEFECT_ZRSUM"); + serialNoModel.setPartNo(mesPartSap.getPartNo()); + ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, requestModel.getUserName(), requestModel.getOrganizeCode(), 1); + String zrsum = ""; + if (null != rb && !CollectionUtils.isEmpty(rb.getResultList())) { + zrsum = (rb.getResultList().get(0)).toString(); + } + MesMove move = new MesMove(); move.setMatnr(mesPartSap.getPartNo()); move.setOrganizeCode(requestModel.getOrganizeCode()); @@ -1189,12 +1202,13 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { move.setUmlgo(destLocate); move.setPartInspectionId(partInspectionId); move.setMenge(requestModel.getReworkedQty()); + move.setZrsum(zrsum); move.setMeins(mesPartSap.getUnit()); move.setPostDate(TimeTool.getToday()); move.setPostTime(TimeTool.getTimeShortWithColon()); move.setMoveType(MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE.getValue()); move.setProductSn(requestModel.getSn()); - move.setWorkCenter(workCenterCode); + move.setWorkCenter(prodOrgExtService.getErpWorkCenterCode(requestModel.getOrganizeCode(), workCenterCode)); ConvertBean.serviceModelInitialize(move, requestModel.getUserName()); moveRepository.insert(move); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index 665dd30..00a6f07 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -238,6 +238,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService public void savePartInspection(MesPartInspectionInputModel model) { MesProduceSn produceSn = getProduceSn(model.getSn(), model.getOrganizeCode()); + model.setWorkCenterCode(produceSn.getWorkCenterCode()); if (null != produceSn && StringUtils.isEmpty(model.getPartNo())) model.setPartNo(produceSn.getPartNo()); //武汉 会输入客户条码 boolean isWorkOrderQcStatus=false; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java index 52d5752..85a5178 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java @@ -67,8 +67,13 @@ public class MesProduceSnExtService implements IMesProduceSnExtService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(productSn, MesPcnExtConstWords.PRODUCT_SN, packBean); - - return produceSnRepository.findByHqlWhere(packBean); + List snList = produceSnRepository.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(snList)) { + DdlPackBean packCustSnBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(productSn, MesPcnExtConstWords.CUST_SN, packCustSnBean); + snList = produceSnRepository.findByHqlWhere(packCustSnBean); + } + return snList; } //根据零件条码查询零件条码信息, 创建时间倒序 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java index b731f7e..aef56de 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java @@ -134,11 +134,17 @@ public class MesProductionRecordService implements IMesProductionRecordService { public void updateProductionRecord(String organizeCode, String userName, Long id, String errorMsg) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean); -// DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean); - productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"}, - new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean); - } + MesProductionRecord mesProductionRecord = productionRecordRepository.getByProperty(ddlPackBean); + if (mesProductionRecord !=null && Objects.equals(mesProductionRecord.getReportStatus(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue())) { + productionRecordRepository.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"}, + new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean); + } else { + productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"}, + new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean); + + } + } @Override public ResultBean queryMesProductionRecordReport(String organizeCode, String productSn) { @@ -255,9 +261,16 @@ public class MesProductionRecordService implements IMesProductionRecordService { recordList.forEach(record->{ DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(record.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(record.getId(), "id", ddlPackBean); - productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "reportStatus","remark","systemSyncStatus","systemSyncDatetime"}, - new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), reportStatus,msg,CommonEnumUtil.FALSE,""}, ddlPackBean); + MesProductionRecord mesProductionRecord = productionRecordRepository.getByProperty(ddlPackBean); + if (mesProductionRecord !=null && Objects.equals(mesProductionRecord.getReportStatus(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue())) { + productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "reportStatus","remark"}, + new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), reportStatus,msg}, ddlPackBean); + } else { + productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "reportStatus","remark","systemSyncStatus","systemSyncDatetime"}, + new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), reportStatus,msg,CommonEnumUtil.FALSE,""}, ddlPackBean); + + } }); }