From 27174712d996d8bc315ca561ffd6645f9183d5b9 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 12 Oct 2023 09:29:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AD=E7=9F=A9=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i3plus-ext-mes-pcn.iml | 12 - .../i3plus-ext-mes-pcn-api.iml | 325 ---------------- .../api/base/IShiftProdCenterRecordService.java | 9 +- .../mes/pcn/api/base/IWorkOrderStartService.java | 3 - .../pcn/api/busi/jx/ITorqueManageCheckService.java | 52 +++ .../i3plus-ext-mes-pcn-apiservice.iml | 408 --------------------- .../base/ShiftProdCenterRecordController.java | 45 ++- .../busi/jx/TorqueManageCheckController.java | 115 ++++++ .../base/ShiftProdCenterRecordService.java | 105 ++++-- .../serviceimpl/base/SxWorkOrderExtService.java | 12 +- .../busi/jx/TorqueManageCheckDetailService.java | 185 ++++++++++ .../busi/jx/TorqueManageCheckService.java | 272 ++++++++++++++ .../i3plus-ext-mes-pcn-icloud.iml | 325 ---------------- .../i3plus-ext-mes-pcn-pojo.iml | 88 ----- .../mes/pcn/pojo/bean/MesProcessTorqueManage.java | 61 +++ .../bean/MesProcessTorqueManageTaskDetail.java | 204 +++++++++++ .../pcn/pojo/bean/MesShiftProdCenterRecord.java | 50 +++ .../ext/mes/pcn/pojo/model/MesOrderJobModel.java | 1 + .../pcn/pojo/model/ShiftProdCenterRecordModel.java | 42 +++ .../MesProcessTorqueManageRepository.java | 16 + ...MesProcessTorqueManageTaskDetailRepository.java | 16 + .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 26 ++ .../ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java | 90 ++++- 23 files changed, 1250 insertions(+), 1212 deletions(-) delete mode 100644 i3plus-ext-mes-pcn.iml delete mode 100644 modules/i3plus-ext-mes-pcn-api/i3plus-ext-mes-pcn-api.iml create mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/ITorqueManageCheckService.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/i3plus-ext-mes-pcn-apiservice.iml create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/jx/TorqueManageCheckController.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckDetailService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckService.java delete mode 100644 modules/i3plus-ext-mes-pcn-icloud/i3plus-ext-mes-pcn-icloud.iml delete mode 100644 modules/i3plus-ext-mes-pcn-pojo/i3plus-ext-mes-pcn-pojo.iml create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManage.java create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManageTaskDetail.java create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageRepository.java create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageTaskDetailRepository.java diff --git a/i3plus-ext-mes-pcn.iml b/i3plus-ext-mes-pcn.iml deleted file mode 100644 index f409c0e..0000000 --- a/i3plus-ext-mes-pcn.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-api/i3plus-ext-mes-pcn-api.iml b/modules/i3plus-ext-mes-pcn-api/i3plus-ext-mes-pcn-api.iml deleted file mode 100644 index c0ac73a..0000000 --- a/modules/i3plus-ext-mes-pcn-api/i3plus-ext-mes-pcn-api.iml +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IShiftProdCenterRecordService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IShiftProdCenterRecordService.java index 0c8d93a..418e91a 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IShiftProdCenterRecordService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IShiftProdCenterRecordService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesShiftProd; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesShiftProdCenterRecord; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterExt; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdCenterModel; +import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdCenterRecordModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -37,17 +38,17 @@ public interface IShiftProdCenterRecordService { /** * 停开机记录-结束班次 - * @param workCenter 产线信息 + * @param centerRecordModel 产线信息 */ @ApiOperation(value = "停开机记录-结束班次", notes = "停开机记录-结束班次") - void doShiftProdCenterStop(MesWorkCenterExt workCenter); + void doShiftProdCenterStop(ShiftProdCenterRecordModel centerRecordModel); /** * 停开机记录-启动班次 - * @param workCenter 产线信息 + * @param centerRecordModel 产线信息 */ @ApiOperation(value = "停开机记录-启动班次", notes = "停开机记录-启动班次") - void doShiftProdCenterStart(MesWorkCenterExt workCenter); + void doShiftProdCenterStart(ShiftProdCenterRecordModel centerRecordModel); /** * 新增停开机记录 diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IWorkOrderStartService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IWorkOrderStartService.java index 39b966e..dfae42a 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IWorkOrderStartService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IWorkOrderStartService.java @@ -1,11 +1,8 @@ package cn.estsh.i3plus.ext.mes.pcn.api.base; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesCheckErrorLog; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; /** * @author yumingxing diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/ITorqueManageCheckService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/ITorqueManageCheckService.java new file mode 100644 index 0000000..4a2e1b7 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/ITorqueManageCheckService.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.busi.jx; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessTorqueManageTaskDetail; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Author: xinwang.yi + * @CreateDate: 2023/14/32 14:25 + * @Description: + **/ +public interface ITorqueManageCheckService { + /** + * 查询扭矩管理点检明细 + * @param personCheckDetail + * @return + */ + @ApiOperation(value = "查询扭矩管理点检明细", notes = "查询扭矩管理点检明细") + ListPager queryTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail personCheckDetail, Pager pager); + + + /** + * 扭矩管理点检作业 + * @param torqueManageTaskDetail + * @return + */ + @ApiOperation(value = "扭矩管理点检作业", notes = "扭矩管理点检作业") + void updateTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail torqueManageTaskDetail); + + /** + * 扭矩管理点检作业 + * @param torqueManageTaskDetail + * @return + */ + @ApiOperation(value = "根据单号修改明细数据中扭矩规格值和管理NO", notes = "根据单号修改明细数据中扭矩规格值和管理NO") + void updateTopTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail torqueManageTaskDetail); + + + /** + * 通过单据编号查询工位 + * + * @param orderNo + * @param organizeCode + * @return + */ + @ApiOperation(value = "通过单据编号查询工位", notes = "通过单据编号查询工位") + List queryCellByOrderNo(String orderNo, String organizeCode); +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/i3plus-ext-mes-pcn-apiservice.iml b/modules/i3plus-ext-mes-pcn-apiservice/i3plus-ext-mes-pcn-apiservice.iml deleted file mode 100644 index 290ae11..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/i3plus-ext-mes-pcn-apiservice.iml +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ShiftProdCenterRecordController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ShiftProdCenterRecordController.java index 6701b57..7559767 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ShiftProdCenterRecordController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ShiftProdCenterRecordController.java @@ -4,7 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IShiftProdCenterRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesShiftExt; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesShiftProd; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesShiftProdCenterRecord; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterExt; +import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdCenterRecordModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.util.CommonConstWords; @@ -66,15 +66,17 @@ public class ShiftProdCenterRecordController extends MesPcnBaseController { @PostMapping(value = "/shift-prod-center/stop") @ApiOperation(value = "停开机记录-结束班次") - public ResultBean doShiftProdCenterStop(MesWorkCenterExt workCenter) { + public ResultBean doShiftProdCenterStop(ShiftProdCenterRecordModel centerRecordModel) { try { - ValidatorBean.beginValid(workCenter) - .notNull(MesPcnExtConstWords.ORGANIZE_CODE, workCenter.getOrganizeCode()) - .notNull(MesPcnExtConstWords.AREA_CODE, workCenter.getAreaCode()) - .notNull(MesPcnExtConstWords.WORK_CENTER_CODE, workCenter.getWorkCenterCode()) - .notNull(MesPcnExtConstWords.MODIFY_USER, workCenter.getModifyUser()); + ValidatorBean.beginValid(centerRecordModel) + .notNull(MesPcnExtConstWords.ORGANIZE_CODE, centerRecordModel.getOrganizeCode()) + .notNull(MesPcnExtConstWords.AREA_CODE, centerRecordModel.getAreaCode()) + .notNull(MesPcnExtConstWords.WORK_CENTER_CODE, centerRecordModel.getWorkCenterCode()) + .notNull(MesPcnExtConstWords.MODIFY_USER, centerRecordModel.getModifyUser()) + .notNull(MesPcnExtConstWords.END_TIME, centerRecordModel.getEndTime()) + .notNull(MesPcnExtConstWords.PART_CUT_COUNT, centerRecordModel.getPartCutCount()); - shiftProdCenterRecordService.doShiftProdCenterStop(workCenter); + shiftProdCenterRecordService.doShiftProdCenterStop(centerRecordModel); return ResultBean.success("结束成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -86,17 +88,24 @@ public class ShiftProdCenterRecordController extends MesPcnBaseController { @PostMapping(value = "/shift-prod-center/start") @ApiOperation(value = "停开机记录-启动班次") - public ResultBean doShiftProdCenterStart(MesWorkCenterExt workCenter) { + public ResultBean doShiftProdCenterStart(ShiftProdCenterRecordModel centerRecordModel) { try { - ValidatorBean.beginValid(workCenter) - .notNull(MesPcnExtConstWords.ORGANIZE_CODE, workCenter.getOrganizeCode()) - .notNull(MesPcnExtConstWords.AREA_CODE, workCenter.getAreaCode()) - .notNull(MesPcnExtConstWords.WORK_CENTER_CODE, workCenter.getWorkCenterCode()) - .notNull(MesPcnExtConstWords.SHIFT_CODE, workCenter.getShiftCode()) - .notNull(MesPcnExtConstWords.WORKER_QTY, workCenter.getWorkerQty()) - .notNull(MesPcnExtConstWords.MODIFY_USER, workCenter.getModifyUser()); - - shiftProdCenterRecordService.doShiftProdCenterStart(workCenter); + ValidatorBean.beginValid(centerRecordModel) + .notNull(MesPcnExtConstWords.ORGANIZE_CODE, centerRecordModel.getOrganizeCode()) + .notNull(MesPcnExtConstWords.AREA_CODE, centerRecordModel.getAreaCode()) + .notNull(MesPcnExtConstWords.WORK_CENTER_CODE, centerRecordModel.getWorkCenterCode()) + .notNull(MesPcnExtConstWords.SHIFT_CODE, centerRecordModel.getShiftCode()) + .notNull(MesPcnExtConstWords.WORKER_QTY, centerRecordModel.getWorkerQty()) + .notNull(MesPcnExtConstWords.MODIFY_USER, centerRecordModel.getModifyUser()) + .notNull(MesPcnExtConstWords.WORK_TIME, centerRecordModel.getWorkTime()) + .notNull(MesPcnExtConstWords.AT_HOME_NUM, centerRecordModel.getWorkTime()) + .notNull(MesPcnExtConstWords.ABSENTEEISM_NUM, centerRecordModel.getWorkTime()) + .notNull(MesPcnExtConstWords.NEW_WORK_NUM, centerRecordModel.getNewWorkNum()) + .notNull(MesPcnExtConstWords.QUIT_WORK_NUM, centerRecordModel.getQuitWorkNum()) + .notNull(MesPcnExtConstWords.START_TIME, centerRecordModel.getStartTime()) + ; + + shiftProdCenterRecordService.doShiftProdCenterStart(centerRecordModel); return ResultBean.success("启动成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/jx/TorqueManageCheckController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/jx/TorqueManageCheckController.java new file mode 100644 index 0000000..7032975 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/jx/TorqueManageCheckController.java @@ -0,0 +1,115 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi.jx; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.jx.ITorqueManageCheckService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessTorqueManageTaskDetail; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.MesPcnBaseController; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: xinwang.yi + * @CreateDate: 2023/10/10 15:37 + * @Description: + **/ +@RestController +@Api(tags = "扭矩管理点检") +@RequestMapping(CommonConstWords.BASE_URL_MES_PCN + "/torque-manage-check") +public class TorqueManageCheckController extends MesPcnBaseController { + public static final Logger LOGGER = LoggerFactory.getLogger(TorqueManageCheckController.class); + + @Autowired + private ITorqueManageCheckService personCheckDetailService; + + + /** + * 查询扭矩管理点检作业明细 + * + * @param torqueManageTaskDetail + * @return + */ + @GetMapping(value = "/detail/query") + @ApiOperation(value = "查询扭矩管理点检作业明细") + public ResultBean queryProcessTorqueManageTaskDetailCheckDetail(MesProcessTorqueManageTaskDetail torqueManageTaskDetail, Pager pager) { + try { + return ResultBean.success("查询成功").setResultObject(personCheckDetailService.queryTorqueManageCheckDetail(torqueManageTaskDetail, pager)) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 修改明细数据 + * + * @param personCheckDetail + * @return + */ + @PutMapping(value = "/detail/update") + @ApiOperation(value = "修改明细数据") + public ResultBean updateMesQManageTaskDetail(MesProcessTorqueManageTaskDetail personCheckDetail) { + try { + personCheckDetailService.updateTorqueManageCheckDetail(personCheckDetail); + return ResultBean.success("修改成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 修改顶部明细数据 + * + * @param personCheckDetail + * @return + */ + @PutMapping(value = "/detail/update-top-data") + @ApiOperation(value = "根据单号修改明细数据中扭矩规格值和管理NO") + public ResultBean updateTopMesQManageTaskDetail(MesProcessTorqueManageTaskDetail personCheckDetail) { + try { + personCheckDetailService.updateTopTorqueManageCheckDetail(personCheckDetail); + return ResultBean.success("修改成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 通过单据编号查询工位 + * + * @param orderNo + * @param organizeCode + * @return + */ + @GetMapping("/cell/query") + @ApiOperation(value = "通过单据编号查询工位") + public ResultBean queryCellByOrderNo(String orderNo, String organizeCode) { + try { + return ResultBean.success("查询成功").setResultList(this.personCheckDetailService.queryCellByOrderNo(orderNo, organizeCode)) + .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-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ShiftProdCenterRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ShiftProdCenterRecordService.java index 2925236..9e65dfa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ShiftProdCenterRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ShiftProdCenterRecordService.java @@ -151,73 +151,99 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi } @Override - public void doShiftProdCenterStop(MesWorkCenterExt workCenter) { - MesWorkCenterExt workCenterDb = getWorkCenter(workCenter.getOrganizeCode(), workCenter.getAreaCode(), workCenter.getWorkCenterCode()); + public void doShiftProdCenterStop(ShiftProdCenterRecordModel centerRecordModel) { + MesWorkCenterExt workCenterDb = getWorkCenter(centerRecordModel.getOrganizeCode(), centerRecordModel.getAreaCode(), centerRecordModel.getWorkCenterCode()); if (null == workCenterDb) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("区域代码[%s]生产线代码[%s]对应的信息不存在", workCenter.getAreaCode(), workCenter.getWorkCenterCode()) + .setErrorDetail("区域代码[%s]生产线代码[%s]对应的信息不存在", centerRecordModel.getAreaCode(), centerRecordModel.getWorkCenterCode()) .build(); } if (StringUtils.isEmpty(workCenterDb.getShiftCode()) || StringUtils.isEmpty(workCenterDb.getWorkTime())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生产线[%s]未启动班次,不能执行结束班次操作", workCenter.getWorkCenterCode()) + .setErrorDetail("生产线[%s]未启动班次,不能执行结束班次操作", centerRecordModel.getWorkCenterCode()) .build(); } workCenterDb.setShiftCode(null); workCenterDb.setWorkTime(null); workCenterDb.setWorkerQty(null); - ConvertBean.serviceModelUpdate(workCenterDb, workCenter.getModifyUser()); + ConvertBean.serviceModelUpdate(workCenterDb, centerRecordModel.getModifyUser()); new ConvertBeanExt(workCenterDb).convertBean(workCenterDb); workCenterExtRepository.save(workCenterDb); + + MesShiftProdCenterRecord shiftProdCenterRecordDb = shiftProdCenterRecordRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, + MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.SHIFT_CODE, MesPcnExtConstWords.WORK_TIME, MesPcnExtConstWords.PROD_TYPE}, + new Object[]{workCenterDb.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), + workCenterDb.getWorkCenterCode(), workCenterDb.getShiftCode(), workCenterDb.getWorkTime(), MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME}); + + if (shiftProdCenterRecordDb == null) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("生产线[%s]不存在开始/结束班次时间类型停开机记录,不能执行结束班次操作", centerRecordModel.getWorkCenterCode()) + .build(); + } + + shiftProdCenterRecordDb.setEndTime(centerRecordModel.getEndTime()); + shiftProdCenterRecordDb.setPartCutCount(centerRecordModel.getPartCutCount()); + shiftProdCenterRecordDb.setOvertimeNum(centerRecordModel.getOvertimeNum()); + ConvertBean.serviceModelUpdate(shiftProdCenterRecordDb, centerRecordModel.getModifyUser()); + shiftProdCenterRecordRepository.save(shiftProdCenterRecordDb); } @Override - public void doShiftProdCenterStart(MesWorkCenterExt workCenter) { - MesShift shiftDb = shiftExtService.getShiftByShiftCodeAndCenterCode(workCenter.getOrganizeCode(), workCenter.getWorkCenterCode(), workCenter.getShiftCode()); + public void doShiftProdCenterStart(ShiftProdCenterRecordModel centerRecordModel) { + MesShift shiftDb = shiftExtService.getShiftByShiftCodeAndCenterCode(centerRecordModel.getOrganizeCode(), centerRecordModel.getWorkCenterCode(), centerRecordModel.getShiftCode()); if (null == shiftDb) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生产线代码[%s]班次代码[%s]对应的信息不存在", workCenter.getWorkCenterCode(), workCenter.getShiftCode()) + .setErrorDetail("生产线代码[%s]班次代码[%s]对应的信息不存在", centerRecordModel.getWorkCenterCode(), centerRecordModel.getShiftCode()) .build(); } - MesWorkCenterExt workCenterDb = getWorkCenter(workCenter.getOrganizeCode(), workCenter.getAreaCode(), workCenter.getWorkCenterCode()); + MesWorkCenterExt workCenterDb = getWorkCenter(centerRecordModel.getOrganizeCode(), centerRecordModel.getAreaCode(), centerRecordModel.getWorkCenterCode()); if (null == workCenterDb) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("区域代码[%s]生产线代码[%s]对应的信息不存在", workCenter.getAreaCode(), workCenter.getWorkCenterCode()) + .setErrorDetail("区域代码[%s]生产线代码[%s]对应的信息不存在", centerRecordModel.getAreaCode(), centerRecordModel.getWorkCenterCode()) .build(); } //计算作业时间(年月日) String workTime = getWorkTime(shiftDb.getStartTime(), shiftDb.getEndTime()); workCenterDb.setShiftCode(shiftDb.getShiftCode()); - workCenterDb.setWorkerQty(workCenter.getWorkerQty()); + workCenterDb.setWorkerQty(centerRecordModel.getWorkerQty()); workCenterDb.setWorkTime(workTime); - ConvertBean.serviceModelUpdate(workCenterDb, workCenter.getModifyUser()); + ConvertBean.serviceModelUpdate(workCenterDb, centerRecordModel.getModifyUser()); new ConvertBeanExt(workCenterDb).convertBean(workCenterDb); workCenterExtRepository.save(workCenterDb); //查询停开机记录表,不存在此维度[作业时间+生产线+班次]数据时,查询产线班次固定作业内容信息,存在则遍历插入停开机记录表,需要冗余班次作业项目信息中的字段 List shiftProdCenterRecordList = getShiftProdCenterRecordList( - workCenter.getOrganizeCode(), workTime, workCenter.getWorkCenterCode(), shiftDb.getShiftCode()); + centerRecordModel.getOrganizeCode(), workTime, centerRecordModel.getWorkCenterCode(), shiftDb.getShiftCode()); + + MesShiftProdCenterRecord startOrEndShiftRecord = new MesShiftProdCenterRecord(); + if (CollectionUtils.isEmpty(shiftProdCenterRecordList)) { - List shiftProdCenterList = getShiftProdCenterList(workCenter.getOrganizeCode(), workCenter.getWorkCenterCode(), shiftDb.getShiftCode()); + + ConvertBean.serviceModelInitialize(startOrEndShiftRecord, centerRecordModel.getModifyUser()); + + List shiftProdCenterList = getShiftProdCenterList(centerRecordModel.getOrganizeCode(), centerRecordModel.getWorkCenterCode(), shiftDb.getShiftCode()); if (!CollectionUtils.isEmpty(shiftProdCenterList)) { //获取班次作业项目表根据作业内容代码分组的数据 - Map> prodCodeMap = getProdCodeMap(workCenter.getOrganizeCode(), shiftProdCenterList); + Map> prodCodeMap = getProdCodeMap(centerRecordModel.getOrganizeCode(), shiftProdCenterList); for (MesShiftProdCenter shiftProdCenter : shiftProdCenterList) { if (null == shiftProdCenter) { continue; } MesShiftProdCenterRecord record = new MesShiftProdCenterRecord(); - record.setWorkCenterCode(workCenter.getWorkCenterCode()); + record.setWorkCenterCode(centerRecordModel.getWorkCenterCode()); record.setShiftCode(shiftDb.getShiftCode()); record.setShiftName(shiftDb.getShiftName()); record.setProdCode(shiftProdCenter.getProdCode()); @@ -240,13 +266,36 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi } else { record.setEndTime(workTime + MesPcnExtConstWords.ONE_SPACE + shiftProdCenter.getEndTime()); } - record.setWorkerQty(workCenter.getWorkerQty()); - record.setOrganizeCode(workCenter.getOrganizeCode()); - ConvertBean.serviceModelInitialize(record, workCenter.getModifyUser()); + record.setWorkerQty(centerRecordModel.getWorkerQty()); + record.setOrganizeCode(centerRecordModel.getOrganizeCode()); + ConvertBean.serviceModelInitialize(record, centerRecordModel.getModifyUser()); shiftProdCenterRecordRepository.insert(record); } } + } else { + for (MesShiftProdCenterRecord shiftProdCenterRecord : shiftProdCenterRecordList) { + if (shiftProdCenterRecord.getProdType() == MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()) { + startOrEndShiftRecord = shiftProdCenterRecord; + ConvertBean.serviceModelUpdate(startOrEndShiftRecord, centerRecordModel.getModifyUser()); + } + } } + + startOrEndShiftRecord.setWorkCenterCode(centerRecordModel.getWorkCenterCode()); + startOrEndShiftRecord.setStartTime(TimeTool.getNowTime(true)); + startOrEndShiftRecord.setShiftCode(shiftDb.getShiftCode()); + startOrEndShiftRecord.setShiftName(shiftDb.getShiftName()); + startOrEndShiftRecord.setWorkTime(workTime); + startOrEndShiftRecord.setAtHomeNum(centerRecordModel.getAtHomeNum()); + startOrEndShiftRecord.setAbsenteeismNum(centerRecordModel.getAbsenteeismNum()); + startOrEndShiftRecord.setOvertimeNum(centerRecordModel.getOvertimeNum()); + startOrEndShiftRecord.setNewWorkNum(centerRecordModel.getNewWorkNum()); + startOrEndShiftRecord.setQuitWorkNum(centerRecordModel.getQuitWorkNum()); + startOrEndShiftRecord.setWorkerQty(centerRecordModel.getWorkerQty()); + startOrEndShiftRecord.setProdType(MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()); + + shiftProdCenterRecordRepository.insert(startOrEndShiftRecord); + } private List getShiftProdCenterList(String organizeCode, String workCenterCode, String shiftCode) { @@ -546,8 +595,20 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi @Override public int deleteShiftProdCenterRecodeById(Long id, String modifyUser) { - return shiftProdCenterRecordRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID}, new Object[]{id}, - new String[]{MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, - new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), modifyUser, TimeTool.getNowTime(true)}); + + MesShiftProdCenterRecord shiftProdCenterRecordById = getShiftProdCenterRecordById(id); + + if (shiftProdCenterRecordById.getProdType() == MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("[%s]类型停开机记录不能删除", MesPcnExtEnumUtil.SHIFT_PROD_TYPE.valueOfDescription(shiftProdCenterRecordById.getProdType())) + .build(); + } + + shiftProdCenterRecordById.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(shiftProdCenterRecordById, modifyUser); + shiftProdCenterRecordRepository.save(shiftProdCenterRecordById); + return 1; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/SxWorkOrderExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/SxWorkOrderExtService.java index 1bed0d7..a0b2ec3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/SxWorkOrderExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/SxWorkOrderExtService.java @@ -27,6 +27,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; @@ -37,6 +38,7 @@ import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository; import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -51,6 +53,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; +import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -123,8 +126,8 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService { @Autowired private MesPackageDetailRepository packageDetailRepository; - @Autowired - private MesReworkOrderRepository reworkOrderRepository; + @Resource(name = MesPcnExtConstWords.REDIS_RES_PCN) + private ImppRedis redisMesPcn; /** * 生成生产工单 @@ -750,9 +753,6 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService { } } - MesBusiConfig waterPurifierCode = busiConfigRepository.getByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.CFG_CODE}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), MesPcnExtConstWords.WATER_PURIFIER_CODE}); // 一个工单号下的多个工单 for (MesWorkOrderExt workOrderExt : workOrderExtList) { Integer lastWorkOrderStatus = null; @@ -857,6 +857,8 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService { .setErrorDetail("工单[%s]的状态不是启动,下达,创建状态,不能暂停", workOrderExt.getOrderNo()) .build(); } + String key = new StringJoiner(MesPcnExtConstWords.COLON).add("MES-PAUSE-ORDER").add(workOrderExt.getOrderNo()).toString(); + redisMesPcn.putObject(key, workOrderExt.getOrderNo(), MesPcnEnumUtil.EXPIRE_TIME.ONE_MIN.getValue()); } else if (MesPcnExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() == workOrderStatus) { /*//关闭 //校验工单是否是暂停状态 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckDetailService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckDetailService.java new file mode 100644 index 0000000..bedf36c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckDetailService.java @@ -0,0 +1,185 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.jx; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.jx.ITorqueManageCheckService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOrderJob; +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessTorqueManageTaskDetail; +import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOrderJobRepository; +import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProcessTorqueManageTaskDetailRepository; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.MesConstWords; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository; +import cn.estsh.i3plus.pojo.mes.sqlpack.MesHqlPack; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: xiangming.liao + * @CreateDate: 2021/02/05 13:52 + * @Description: + **/ +@Service +public class TorqueManageCheckDetailService implements ITorqueManageCheckService { + @Autowired + private MesProcessTorqueManageTaskDetailRepository torqueManageTaskDetailRepository; + @Autowired + private MesOrderJobRepository mesOrderJobRDao; + @Autowired + private MesWorkCellRepository mesWorkCellRDao; + + @Override + public ListPager queryTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail personCheckDetail, Pager pager) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(personCheckDetail.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(personCheckDetail.getOrderJobNo(), MesPcnExtConstWords.ORDER_JOB_NO, packBean); + DdlPreparedPack.getNumEqualPack(personCheckDetail.getIsValid(), MesPcnExtConstWords.IS_VALID, packBean); + DdlPreparedPack.getStringEqualPack(personCheckDetail.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringEqualPack(personCheckDetail.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean); + pager = PagerHelper.getPager(pager, torqueManageTaskDetailRepository.findByHqlWhereCount(packBean)); + List torqueManageTaskDetailList = torqueManageTaskDetailRepository.findByHqlWherePage(packBean, pager); + for (MesProcessTorqueManageTaskDetail mesProcessTorqueManageTaskDetail : torqueManageTaskDetailList) { + if (!StringUtils.isEmpty(mesProcessTorqueManageTaskDetail.getTorqueSpecValue())) { + mesProcessTorqueManageTaskDetail.setTorqueSpecValueList(Arrays.stream(mesProcessTorqueManageTaskDetail.getTorqueSpecValue().split(MesPcnExtConstWords.COMMA)).collect(Collectors.toList())); + } + } + return new ListPager(torqueManageTaskDetailList, pager); + } + + @Override + public void updateTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail torqueManageTaskDetail) { + MesProcessTorqueManageTaskDetail detailById = torqueManageTaskDetailRepository.getById(torqueManageTaskDetail.getId()); + if (null == detailById) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("该条数据不存在") + .build(); + } + + // 前端未判断点检结果则后端进行判断 + if (torqueManageTaskDetail.getCheckResult() == null || torqueManageTaskDetail.getCheckResult() == 0) { + // 未维护上下限的情况 + if (!StringUtils.isEmpty(torqueManageTaskDetail.getUpLimit()) && !StringUtils.isEmpty(torqueManageTaskDetail.getDownLimit())) { + + if (StringUtils.isEmpty(torqueManageTaskDetail.getTorqueValue1()) || + StringUtils.isEmpty(torqueManageTaskDetail.getTorqueValue2()) || + StringUtils.isEmpty(torqueManageTaskDetail.getTorqueValue3()) || + StringUtils.isEmpty(torqueManageTaskDetail.getTorqueValue4()) || + StringUtils.isEmpty(torqueManageTaskDetail.getTorqueValue5()) || + torqueManageTaskDetail.getRotationNoAbnormal() == null || + torqueManageTaskDetail.getRotationNoAbnormal() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getFasteningNoAbnormal() == null || + torqueManageTaskDetail.getFasteningNoAbnormal() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getFasteningIsStc() == null || + torqueManageTaskDetail.getFasteningIsStc() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getToolHeadNoWear() == null || + torqueManageTaskDetail.getToolHeadNoWear() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() + ) torqueManageTaskDetail.setCheckResult(MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue()); + + else { + + Double upLimitDouble = Double.parseDouble(torqueManageTaskDetail.getUpLimit()); + Double downLimitDouble = Double.parseDouble(torqueManageTaskDetail.getDownLimit()); + + boolean isNG = false; + if (checkValue(torqueManageTaskDetail.getTorqueValue1(), upLimitDouble, downLimitDouble)) isNG = true; + else if (checkValue(torqueManageTaskDetail.getTorqueValue2(), upLimitDouble, downLimitDouble)) isNG = true; + else if (checkValue(torqueManageTaskDetail.getTorqueValue3(), upLimitDouble, downLimitDouble)) isNG = true; + else if (checkValue(torqueManageTaskDetail.getTorqueValue4(), upLimitDouble, downLimitDouble)) isNG = true; + else if (checkValue(torqueManageTaskDetail.getTorqueValue5(), upLimitDouble, downLimitDouble)) isNG = true; + + if (isNG) torqueManageTaskDetail.setCheckResult(MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue()); + else torqueManageTaskDetail.setCheckResult(MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.OK.getValue()); + + } + + } else { + // 未维护上下限的情况 不判断扭矩值1-5 + if (torqueManageTaskDetail.getRotationNoAbnormal() == null || + torqueManageTaskDetail.getRotationNoAbnormal() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getFasteningNoAbnormal() == null || + torqueManageTaskDetail.getFasteningNoAbnormal() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getFasteningIsStc() == null || + torqueManageTaskDetail.getFasteningIsStc() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() || + torqueManageTaskDetail.getToolHeadNoWear() == null || + torqueManageTaskDetail.getToolHeadNoWear() == MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue() + ) torqueManageTaskDetail.setCheckResult(MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.NG.getValue()); + + else torqueManageTaskDetail.setCheckResult(MesPcnExtEnumUtil.TORQUE_MANAGE_CHECK_RESULT.OK.getValue()); + } + } + + torqueManageTaskDetail.setCheckTime(TimeTool.getNowTime(true)); + torqueManageTaskDetail.setCheckUser(torqueManageTaskDetail.getModifyUser()); + ConvertBean.serviceModelUpdate(torqueManageTaskDetail, torqueManageTaskDetail.getModifyUser()); + torqueManageTaskDetailRepository.save(torqueManageTaskDetail); + + //单据主表状态改为点检中 + updateOrderJobStatus(torqueManageTaskDetail); + } + + private boolean checkValue(String checkValue, Double upLimit, Double dowmLimit) { + + Double torqueValueDouble = Double.parseDouble(checkValue); + + if (torqueValueDouble > upLimit || torqueValueDouble < dowmLimit) { + return true; + } + return false; + } + + @Override + public void updateTopTorqueManageCheckDetail(MesProcessTorqueManageTaskDetail torqueManageTaskDetail) { + torqueManageTaskDetailRepository.updateByProperties(new String[]{MesPcnExtConstWords.ORDER_JOB_NO}, new Object[]{torqueManageTaskDetail.getOrderJobNo()}, + new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.TORQUE_MANAGE_NO1, MesPcnExtConstWords.TORQUE_MANAGE_NO2, MesPcnExtConstWords.TORQUE_MANAGE_NO3, MesPcnExtConstWords.TORQUE_SPEC_VALUE}, + new Object[]{AuthUtil.getSessionUser().getUserName(), TimeTool.getNowTime(true), torqueManageTaskDetail.getTorqueManageNo1(), torqueManageTaskDetail.getTorqueManageNo2(), torqueManageTaskDetail.getTorqueManageNo3(), torqueManageTaskDetail.getTorqueSpecValue()}); + } + + private void updateOrderJobStatus(MesProcessTorqueManageTaskDetail torqueManageTaskDetail) { + //单据主表状态改为点检中 + MesOrderJob mesOrderJob = mesOrderJobRDao.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.ORDER_NO}, + new Object[]{torqueManageTaskDetail.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), + MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), torqueManageTaskDetail.getOrderJobNo()}); + if (mesOrderJob.getOrderStatus() == MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()) { + mesOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECKING.getValue()); + mesOrderJob.setComplateTime(TimeTool.getNowTime(true)); + ConvertBean.serviceModelUpdate(mesOrderJob, torqueManageTaskDetail.getModifyUser()); + mesOrderJobRDao.save(mesOrderJob); + } + } + + @Override + public List queryCellByOrderNo(String orderNo, String organizeCode) { + DdlPackBean packBean = MesHqlPack.getMesAllData(organizeCode); + DdlPreparedPack.getStringEqualPack(orderNo, MesPcnExtConstWords.ORDER_JOB_NO, packBean); + List checkDetailList = torqueManageTaskDetailRepository.findByHqlWhere(packBean); + List centerList = checkDetailList.stream().map(MesProcessTorqueManageTaskDetail::getWorkCenterCode).collect(Collectors.toList()); + List cellList = checkDetailList.stream().map(MesProcessTorqueManageTaskDetail::getWorkCellCode).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(cellList)) { + return null; + } + DdlPackBean cellPackBean = MesHqlPack.getMesAllData(organizeCode); + DdlPreparedPack.getInPackList(cellList, MesPcnExtConstWords.WORK_CELL_CODE, cellPackBean); + DdlPreparedPack.getInPackList(centerList, MesPcnExtConstWords.WORK_CENTER_CODE, cellPackBean); + return mesWorkCellRDao.findByHqlWhere(cellPackBean); + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckService.java new file mode 100644 index 0000000..48c203b --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/TorqueManageCheckService.java @@ -0,0 +1,272 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.jx; + +import cn.estsh.i3plus.ext.mes.pcn.api.base.ICheckErrorLogService; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IWorkOrderStartService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*; +import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.*; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil; +import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository; +import cn.estsh.i3plus.pojo.mes.sqlpack.MesHqlPack; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import cn.estsh.impp.framework.boot.util.ResultBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Optional; +import java.util.StringJoiner; +import java.util.stream.Collectors; + +/** + * @author yumingxing + * @version 1.0 + * @date 2021/2/19 16:06 + **/ +@Slf4j +@Service +public class TorqueManageCheckService implements IWorkOrderStartService { + + @Autowired + private ICheckErrorLogService checkErrorLogService; + + @Autowired + private MesProcessTorqueManageRepository torqueManageRepository; + + @Autowired + private MesProcessTorqueManageTaskDetailRepository torqueManageTaskDetailRepository; + + @Autowired + private MesWorkCenterExtRepository workCenterExtRepository; + + @Autowired + private MesWorkCellRepository workCellRepository; + + @Autowired + private MesProcessCellRepository processCellRepository; + + @Autowired + private MesOrderJobRepository orderJobRepository; + + @Autowired + private MesOrderRuleRepository orderRuleRepository; + + @Autowired + private ISyncFuncService syncFuncService; + + @Resource(name = MesPcnExtConstWords.REDIS_RES_PCN) + private ImppRedis redisMesPcn; + + /** + * 工单启动后方法执行 + * + * @param workOrderExt 工单 + * @return {@link ResultBean} + */ + @Override + public void doGenCheckOrder(MesWorkOrderExt workOrderExt, String userInfo) { + MesCheckErrorLog checkErrorLog = new MesCheckErrorLog(); + checkErrorLog.setGenerationMethod(MesPcnExtEnumUtil.GENERATION_METHOD.FROM_WORK_ORDER_START.getValue()); + checkErrorLog.setGeneratingModule(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.TORQUE_MANAGE.getDescription()); + + String msg; + try { + + MesWorkCenterExt workCenterExt = workCenterExtRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.WORK_CENTER_CODE}, + new Object[]{workOrderExt.getOrganizeCode(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), workOrderExt.getWorkCenterCode()}); + + if (null == workCenterExt) { + msg = String.format("扭矩管理生成单据:工单[%s]生产线[%s]无效", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + if (StringUtils.isEmpty(workCenterExt.getShiftCode()) || StringUtils.isEmpty(workCenterExt.getWorkTime())) { + msg = String.format("扭矩管理生成单据:工单[%s]生产线[%s]未启动班次", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + + if (checkGenedOrder(workOrderExt, userInfo, checkErrorLog, workCenterExt)) return; + + //1、查找产线下所有的工位 + List mesWorkCellList = workCellRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE}, + new Object[]{workOrderExt.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), workOrderExt.getWorkCenterCode()}); + + //2、通过产线和工位去工序工位关系表中查询所有的工序 + List workCells = mesWorkCellList.stream().map(MesWorkCell::getWorkCellCode).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(workCells)) { + msg = String.format("扭矩管理生成单据:工单[%s]生产线[%s]未关联工位", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + + DdlPackBean pcPackBean = MesHqlPack.getMesAllData(workOrderExt.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workOrderExt.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, pcPackBean); + DdlPreparedPack.getInPackList(workCells, MesPcnExtConstWords.WORK_CELL_CODE, pcPackBean); + List processCellList = processCellRepository.findByHqlWhere(pcPackBean); + if (CollectionUtils.isEmpty(processCellList)) { + msg = String.format("扭矩管理生成单据:工单[%s]请先维护工序工位关系", workOrderExt.getOrderNo()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + + //DdlPackBean torqueManageTaskDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); + //DdlPreparedPack.getStringEqualPack(orderNo, MesPcnExtConstWords.ORDER_NO, torqueManageTaskDetailPackBean); + //List torqueManageTaskDetailList = torqueManageTaskDetailRepository.findByHqlWhere(torqueManageTaskDetailPackBean); + //if (!CollectionUtils.isEmpty(torqueManageTaskDetailList)) { + // msg = String.format("扭矩管理点检生成单据:工单[%s]已经生成过扭矩管理点检单", workOrderExt.getOrderNo()); + // log.info(msg); + // checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + // return; + //} + + //DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); + //DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.TORQUE_MANAGE.getValue(), MesPcnExtConstWords.ORDER_TYPE, ddlPackBean); + //DdlPreparedPack.getStringEqualPack(workOrderExt.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, ddlPackBean); + //DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_CREATE_RULE.WORK_ORDER_CREATE.getValue(), MesPcnExtConstWords.CREATE_RULE, ddlPackBean); + DdlPackBean caseCondition = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workOrderExt.getPartNo(), MesPcnExtConstWords.PART_NO, caseCondition); + List torqueManageList = torqueManageRepository.findByHqlWhere(caseCondition); + if (CollectionUtils.isEmpty(torqueManageList)) { + msg = String.format("扭矩管理点检生成单据:工单[%s]物料编码[%s]未维护扭矩管理点检基础数据", workOrderExt.getOrderNo(), workOrderExt.getPartNo()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + + List orderRuleList = orderRuleRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, + MesPcnExtConstWords.ORDER_TYPE, MesPcnExtConstWords.CREATE_RULE, MesPcnExtConstWords.WORK_CENTER_CODE}, + new Object[]{workOrderExt.getOrganizeCode(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), + MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.FAILURE_CASE_CHECK.getValue(), MesPcnExtEnumUtil.MES_OR_CREATE_RULE.WORK_ORDER_CREATE.getValue(), workOrderExt.getWorkCenterCode()}); + Optional orderRuleOp = CollectionUtils.isEmpty(orderRuleList) ? null : + orderRuleList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getShiftCode()) && o.getShiftCode().equals(workCenterExt.getShiftCode()))).findFirst(); + if (null == orderRuleOp || !orderRuleOp.isPresent()) { + orderRuleOp = CollectionUtils.isEmpty(orderRuleList) ? null : orderRuleList.stream().filter(o -> (null != o && StringUtils.isEmpty(o.getShiftCode()))).findFirst(); + } + if (null == orderRuleOp || !orderRuleOp.isPresent()) { + msg = String.format("扭矩管理点检生成单据:工单[%s]未配置生产线代码[%s][工单创建][扭矩管理点检]班次为[%s]或班次为空的单据规则信息,请检查", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode(), workCenterExt.getShiftCode()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + + MesOrderJob mesOrderJob = new MesOrderJob(); + mesOrderJob.setTaskType(orderRuleOp.get().getTaskType()); + mesOrderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.TORQUE_MANAGE.getValue()); + List orderNoList = getOrderNoByRuleCode(1, MesPcnExtConstWords.ORDER_NO_RULE, new GenSerialNoModel(), userInfo, workOrderExt.getOrganizeCode()); + if (CollectionUtils.isEmpty(orderNoList)) { + msg = String.format("扭矩管理点检生成单据:工单[%s]单据编号未生成成功", workOrderExt.getOrderNo()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return; + } + mesOrderJob.setOrderNo(orderNoList.get(0)); + mesOrderJob.setWorkCenterCode(workOrderExt.getWorkCenterCode()); + mesOrderJob.setShiftCode(workCenterExt.getShiftCode()); + mesOrderJob.setWorkOrderNo(workOrderExt.getOrderNo()); + mesOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); + mesOrderJob.setOrderDate(TimeTool.getToday()); + mesOrderJob.setWorkTime(workCenterExt.getWorkTime()); + mesOrderJob.setOrganizeCode(workOrderExt.getOrganizeCode()); + ConvertBean.serviceModelInitialize(mesOrderJob, userInfo); + mesOrderJob.setGenerateTime(mesOrderJob.getModifyDatetime()); + orderJobRepository.insert(mesOrderJob); + + for (MesProcessTorqueManage torqueManage : torqueManageList) { + //通过工序和产线查询工序工位信息 + DdlPackBean pcPackBeanByPrcs = MesHqlPack.getMesAllData(workOrderExt.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(torqueManage.getProcessCode(), MesPcnExtConstWords.PROCESS_CODE, pcPackBeanByPrcs); + DdlPreparedPack.getStringEqualPack(mesOrderJob.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, pcPackBeanByPrcs); + MesProcessCell processCell = processCellRepository.getByProperty(pcPackBeanByPrcs); + if(null != processCell){ + MesProcessTorqueManageTaskDetail detail = new MesProcessTorqueManageTaskDetail(); + BeanUtils.copyProperties(torqueManage, detail, MesPcnExtConstWords.ID); + detail.setOrderJobNo(mesOrderJob.getOrderNo()); + detail.setWorkCenterCode(mesOrderJob.getWorkCenterCode()); + detail.setWorkOrderNo(mesOrderJob.getWorkOrderNo()); + detail.setShiftCode(workCenterExt.getShiftCode()); + detail.setWorkCellCode(processCell.getWorkCellCode()); + detail.setWorkCellName(processCell.getWorkCellName()); + detail.setProcessCode(processCell.getProcessCode()); + detail.setProcessName(processCell.getProcessName()); + detail.setPartNo(workOrderExt.getPartNo()); + detail.setOrganizeCode(workOrderExt.getOrganizeCode()); + + ConvertBean.serviceModelInitialize(detail, userInfo); + torqueManageTaskDetailRepository.insert(detail); + } + } + } catch (Exception e) { + checkErrorLogService.insertCheckErrorLog(checkErrorLog, e.getMessage(), userInfo); + log.info(e.getMessage()); + } + } + + private boolean checkGenedOrder(MesWorkOrderExt workOrderExt, String userInfo, MesCheckErrorLog checkErrorLog, MesWorkCenterExt workCenterExt) { + + String msg; + + StringJoiner key = new StringJoiner(MesPcnExtConstWords.COLON).add("MES-PAUSE-ORDER").add(workOrderExt.getOrderNo()); + + String pauseOrderKey = (String) redisMesPcn.getObject(key); + + if (StringUtils.isEmpty(pauseOrderKey)) { + msg = String.format("扭矩管理点检生成单据:工单[%s]在一分钟内有过暂停操作,操作频繁,等待一分钟后可再生成扭矩管理点检单", workOrderExt.getOrderNo()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return true; + } + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.PART_CHECK.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); + DdlPreparedPack.getStringEqualPack(workOrderExt.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringEqualPack(workCenterExt.getShiftCode(), MesPcnExtConstWords.SHIFT_CODE, packBean); + DdlPreparedPack.getStringEqualPack(workCenterExt.getWorkTime(), MesPcnExtConstWords.WORK_TIME, packBean); + DdlPreparedPack.getStringEqualPack(workOrderExt.getOrderNo(), MesPcnExtConstWords.WORK_ORDER_NO, packBean); + List orderJobList = orderJobRepository.findByHqlWhere(packBean); + + if (!CollectionUtils.isEmpty(orderJobList)) { + msg = String.format("扭矩管理点检生成单据:工单[%s]已经生成过扭矩管理点检单", workOrderExt.getOrderNo()); + log.info(msg); + checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); + return true; + } + return false; + } + + private List getOrderNoByRuleCode(int number, String ruleCode, GenSerialNoModel genSerialNoModel, String userName, String org) { + genSerialNoModel.setRuleCode(ruleCode); + BaseResultBean serialNumberBean; + try { + serialNumberBean = syncFuncService.syncSerialNo(genSerialNoModel, userName, org, Integer.valueOf(number)); + } catch (Exception e) { + return null; + } + if (serialNumberBean != null && serialNumberBean.isSuccess()) { + return serialNumberBean.getResultList(); + } else { + return null; + } + } +} diff --git a/modules/i3plus-ext-mes-pcn-icloud/i3plus-ext-mes-pcn-icloud.iml b/modules/i3plus-ext-mes-pcn-icloud/i3plus-ext-mes-pcn-icloud.iml deleted file mode 100644 index 2f784db..0000000 --- a/modules/i3plus-ext-mes-pcn-icloud/i3plus-ext-mes-pcn-icloud.iml +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-pojo/i3plus-ext-mes-pcn-pojo.iml b/modules/i3plus-ext-mes-pcn-pojo/i3plus-ext-mes-pcn-pojo.iml deleted file mode 100644 index eec1465..0000000 --- a/modules/i3plus-ext-mes-pcn-pojo/i3plus-ext-mes-pcn-pojo.iml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManage.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManage.java new file mode 100644 index 0000000..8921f89 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManage.java @@ -0,0 +1,61 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; + +/** + * @Description: + * @Author: xiangming.liao + * @Date: 2021/01/18 15:44 + * @Modify: + */ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "MES_PROCESS_TORQUE_MANAGE") +@Api("MES_工序扭矩管理") +public class MesProcessTorqueManage extends BaseBean implements Serializable { + + private static final long serialVersionUID = -5545553227344055268L; + + @Column(name="PART_NO") + @ApiParam("零件编号") + private String partNo; + + @Column(name = "PROCESS_CODE") + @ApiParam(value = "工序编号") + public String processCode; + + @Column(name="PROCESS_NAME") + @ApiParam(value ="工序名称") + private String processName; + + @Column(name = "FASTENING_POSITION") + @ApiParam("紧固部位") + private String fasteningPosition; + + @Column(name = "SPECIFICATION") + @ApiParam("规格") + private String specification; + + @Column(name = "UP_LIMIT") + @ApiParam("上限值") + private String upLimit; + + @Column(name = "DOWN_LIMIT") + @ApiParam("下限值") + private String downLimit; + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManageTaskDetail.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManageTaskDetail.java new file mode 100644 index 0000000..9010ea9 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessTorqueManageTaskDetail.java @@ -0,0 +1,204 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.bean; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil; +import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: + * @Author: xiangming.liao + * @Date: 2021/01/18 15:44 + * @Modify: + */ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "MES_PROCESS_TORQUE_MANAGE_TASK_DETAIL") +@Api("MES_工序扭矩管理任务明细") +public class MesProcessTorqueManageTaskDetail extends BaseBean implements Serializable { + + private static final long serialVersionUID = -5545553227344055268L; + + @Column(name="ORDER_JOB_NO") + @ApiParam("作业单据号") + private String orderJobNo; + + //@Column(name="ORDER_STATUS") + //@ApiParam(value ="单据状态") + //private Integer orderStatus; + + @Column(name="WORK_ORDER_NO") + @ApiParam("工单号") + private String workOrderNo; + + @Column(name="WORK_CENTER_CODE") + @ApiParam("产线代码") + private String workCenterCode; + + @Column(name="WORK_CELL_CODE") + @ApiParam("工位代码") + private String workCellCode; + + @Column(name="WORK_CELL_NAME") + @ApiParam("工位名称") + private String workCellName; + + @Column(name="SHIFT_CODE") + @ApiParam("班次代码") + private String shiftCode; + + @Column(name="SHIFT_NAME") + @ApiParam("班次名称") + private String shiftName; + + @Column(name="PART_NO") + @ApiParam("零件编号") + private String partNo; + + @Column(name = "PROCESS_CODE") + @ApiParam(value = "工序编号") + public String processCode; + + @Column(name="PROCESS_NAME") + @ApiParam(value ="工序名称") + private String processName; + + @Column(name = "FASTENING_POSITION") + @ApiParam("紧固部位") + private String fasteningPosition; + + @Column(name = "SPECIFICATION") + @ApiParam("规格") + private String specification; + + @Column(name = "UP_LIMIT") + @ApiParam("上限值") + private String upLimit; + + @Column(name = "DOWN_LIMIT") + @ApiParam("下限值") + private String downLimit; + + @Column(name = "SCREWDRIVER_NO") + @ApiParam("螺丝刀NO") + private String screwdriverNo; + + @Column(name = "TORQUE_VALUE1") + @ApiParam("扭矩值1") + private String torqueValue1; + + @Column(name = "TORQUE_VALUE2") + @ApiParam("扭矩值2") + private String torqueValue2; + + @Column(name = "TORQUE_VALUE3") + @ApiParam("扭矩值3") + private String torqueValue3; + + @Column(name = "TORQUE_VALUE4") + @ApiParam("扭矩值4") + private String torqueValue4; + + @Column(name = "TORQUE_VALUE5") + @ApiParam("扭矩值5") + private String torqueValue5; + + @Column(name = "ROTATION_NO_ABNORMAL") + @ApiParam("回转时是否有异常声、振动和发热") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CHECK_RESULT.class, refForeignKey = "value", value = "description") + private Integer rotationNoAbnormal; + + @Column(name = "FASTENING_NO_ABNORMAL") + @ApiParam("紧固后状态确认:浮起、歪斜等") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CHECK_RESULT.class, refForeignKey = "value", value = "description") + private Integer fasteningNoAbnormal; + + @Column(name = "FASTENING_IS_STC") + @ApiParam("紧固后是否有圆滑感") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CHECK_RESULT.class, refForeignKey = "value", value = "description") + private Integer fasteningIsStc; + + @Column(name = "TOOL_HEAD_NO_WEAR") + @ApiParam("刀头是否无磨损") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CHECK_RESULT.class, refForeignKey = "value", value = "description") + private Integer toolHeadNoWear; + + @Column(name = "CHECK_RESULT") + @ApiParam("点检结果") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CHECK_RESULT.class, refForeignKey = "value", value = "description") + private Integer checkResult; + + @Column(name = "CHECK_USER") + @ApiParam("点检人员") + private String checkUser; + + @Column(name = "CHECK_TIME") + @ApiParam("点检时间") + private String checkTime; + + @Column(name = "IS_TEAM_CONFIRM") + @ApiParam("是否班组确认") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.CONFIRM_TYPE.class, refForeignKey = "value", value = "description") + private Integer isTeamConfirm = 20; + + @Column(name = "TEAM_CONFIRM_USER") + @ApiParam("班组确认人") + private String teamConfirmUser; + + @Column(name = "TEAM_CONFIRM_TIME") + @ApiParam("班组确认时间") + private String teamConfirmTime; + + @Column(name = "TORQUE_SPEC_VALUE") + @ApiParam("扭矩规格值") + private String torqueSpecValue; + + @Transient + @ApiParam("扭矩规格值") + private String torqueSpecValueDesc; + + @Transient + @ApiParam("扭矩规格值") + private List torqueSpecValueList = new ArrayList<>(); + + @Column(name = "TORQUE_MANAGE_NO1") + @ApiParam("扭矩螺丝刀-扭矩管理NO1") + private String torqueManageNo1; + + @Transient + @ApiParam("扭矩螺丝刀-扭矩管理NO1") + private String torqueManageNo1Full; + + @Column(name = "TORQUE_MANAGE_NO2") + @ApiParam("扭矩螺丝刀-扭矩管理NO2") + private String torqueManageNo2; + + @Transient + @ApiParam("全称扭矩螺丝刀-扭矩管理NO2") + private String torqueManageNo2Full; + + @Column(name = "TORQUE_MANAGE_NO3") + @ApiParam("扭矩螺丝刀-扭矩管理NO3") + private String torqueManageNo3; + + @Transient + @ApiParam("全称扭矩螺丝刀-扭矩管理NO3") + private String torqueManageNo3Full; + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesShiftProdCenterRecord.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesShiftProdCenterRecord.java index f58ae7f..0b4dcd6 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesShiftProdCenterRecord.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesShiftProdCenterRecord.java @@ -116,4 +116,54 @@ public class MesShiftProdCenterRecord extends BaseBean implements Serializable { @Column(name = "ORDER_NO") @ApiParam("单号") private String orderNo; + + @Column(name = "PART_CUT_COUNT") + @ApiParam("机种切换次数") + private Integer partCutCount; + + @Column(name="AT_HOME_NUM") + @ApiParam(value = "在籍人数") + @ColumnDefault("0") + public Integer atHomeNum; + + @Column(name="ABSENTEEISM_NUM") + @ApiParam(value = "缺勤人数") + @ColumnDefault("0") + public Integer absenteeismNum; + + @Column(name="OVERTIME_NUM") + @ApiParam(value = "加班人数") + @ColumnDefault("0") + public Integer overtimeNum; + + @Column(name="NEW_WORK_NUM") + @ApiParam(value = "新上班人数") + @ColumnDefault("0") + public Integer newWorkNum; + + @Column(name="QUIT_WORK_NUM") + @ApiParam(value = "退职人数") + @ColumnDefault("0") + public Integer quitWorkNum; + + @Column(name = "MAIN_REASON") + @ApiParam("主要原因") + private String mainReason; + + @Column(name = "OWNER_DEPARTMENT") + @ApiParam(value = "责任部门") + private String ownerDepartment; + + @Column(name = "COUNTERMEASURE") + @ApiParam("对策") + private String countermeasure; + + @Column(name = "IMPL_DATE") + @ApiParam("实施日") + private String implDate; + + @Column(name = "DECISION_MAKER") + @ApiParam("决策者") + private String decisionMaker; + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesOrderJobModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesOrderJobModel.java index cba230b..f5e993e 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesOrderJobModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesOrderJobModel.java @@ -31,6 +31,7 @@ public class MesOrderJobModel implements Serializable { * 10=物料点检,20=人员点检,30=Q管理,40=设备点检、50=防静电点检、 * 60=工单首检、70=4M变更、80=失败事例点检、90=特殊过程工艺参数、 * 100=铭牌保证书一致性、110=外观防划伤点检、120=工程巡回确认、130=称重管理表 + * 140=扭矩管理 */ @ApiParam(value = "单据类型", example = "10") public Integer orderType; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ShiftProdCenterRecordModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ShiftProdCenterRecordModel.java index f9fc44a..ae8a0f6 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ShiftProdCenterRecordModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ShiftProdCenterRecordModel.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.pojo.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiParam; import lombok.Data; +import org.hibernate.annotations.ColumnDefault; import java.io.Serializable; @@ -113,4 +114,45 @@ public class ShiftProdCenterRecordModel implements Serializable { @ApiParam("事业别") private String careerName; + @ApiParam("机种切换次数") + private Integer partCutCount; + + @ApiParam(value = "在籍人数") + @ColumnDefault("0") + public Integer atHomeNum; + + @ApiParam(value = "缺勤人数") + @ColumnDefault("0") + public Integer absenteeismNum; + + @ApiParam(value = "加班人数") + @ColumnDefault("0") + public Integer overtimeNum; + + @ApiParam(value = "新上班人数") + @ColumnDefault("0") + public Integer newWorkNum; + + @ApiParam(value = "退职人数") + @ColumnDefault("0") + public Integer quitWorkNum; + + @ApiParam("主要原因") + private String mainReason; + + @ApiParam(value = "责任部门") + private String ownerDepartment; + + @ApiParam("对策") + private String countermeasure; + + @ApiParam("实施日") + private String implDate; + + @ApiParam("决策者") + private String decisionMaker; + + @ApiParam("生产区域代码") + private String areaCode; + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageRepository.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageRepository.java new file mode 100644 index 0000000..98e7fd6 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.repository; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessTorqueManage; +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import org.springframework.stereotype.Repository; + +/** + * @author yxw + * @desc 扭矩管理 + * @version 1.0 + * @date 2023/10/09 9:17 + **/ +@Repository +public interface MesProcessTorqueManageRepository extends BaseRepository { + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageTaskDetailRepository.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageTaskDetailRepository.java new file mode 100644 index 0000000..4ee6e67 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/repository/MesProcessTorqueManageTaskDetailRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.repository; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessTorqueManageTaskDetail; +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import org.springframework.stereotype.Repository; + +/** + * @author yxw + * @desc 扭矩管理 + * @version 1.0 + * @date 2023/10/09 9:17 + **/ +@Repository +public interface MesProcessTorqueManageTaskDetailRepository extends BaseRepository { + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 8b7ac45..77e2387 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -825,4 +825,30 @@ public class MesPcnExtConstWords { //获取工单下条码数量 public static final String GET_PRODUCE_SN_NUM = "GET_PRODUCE_SN_NUM"; + + //在籍人数 + public static final String AT_HOME_NUM = "atHomeNum"; + + //缺勤人数 + public static final String ABSENTEEISM_NUM = "absenteeismNum"; + + //加班人数 + public static final String OVERTIME_NUM = "overtimeNum"; + + //新上班人数 + public static final String NEW_WORK_NUM = "newWorkNum"; + + //退职人数 + public static final String QUIT_WORK_NUM = "quitWorkNum"; + + //机种切换次数 + public static final String PART_CUT_COUNT = "partCutCount"; + + //扭矩管理NO + public static final String TORQUE_MANAGE_NO1 = "torqueManageNo1"; + public static final String TORQUE_MANAGE_NO2 = "torqueManageNo2"; + public static final String TORQUE_MANAGE_NO3 = "torqueManageNo3"; + + //扭矩规格值 + public static final String TORQUE_SPEC_VALUE = "torqueSpecValue"; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java index f37073f..20d7bb2 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.pojo.util; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.val; import org.springframework.util.StringUtils; public class MesPcnExtEnumUtil { @@ -409,7 +410,8 @@ public class MesPcnExtEnumUtil { NAMEPLATE_GUARANTEE_CONSISTENCY(100, "铭牌保证书一致性"), EXTERIOR_SCRATCH_PROOF_CHECK(110, "外观防划伤点检"), PROJECT_TOUR_CONTRIM(120, "工程巡回确认"), - WEIGHING_MANAGEMENT_TABLE(130, "称重管理表"); + WEIGHING_MANAGEMENT_TABLE(130, "称重管理表"), + TORQUE_MANAGE(140, "扭矩管理"); private int value; private String description; @@ -997,7 +999,8 @@ public class MesPcnExtEnumUtil { NORMAL_STOP_CENTER(10, "常规停机"), UNNORMAL_STOP_CENTER(20, "非常规停机"), NORMAL_PROD(30, "常规生产"), - UNNORMAL_PROD(40, "非常规生产"); + UNNORMAL_PROD(40, "非常规生产"), + START_OR_END_SHIFT_TIME(50, "开始/结束班次时间"); private int value; private String description; @@ -3251,4 +3254,87 @@ public class MesPcnExtEnumUtil { return tmp; } } + + + /** + * 扭矩规格值 + */ + public static enum TORQUE_SPEC_VALUE { + ZERO_TO_TWENTY("10", "0~20 kgf cm"), + TWENTY_TO_FORTY("20", "20~40 kgf cm"), + FORTY_TO_SIXTY_NINE("30", "40~69 kgf cm") + ; + + private String value; + private String description; + + TORQUE_SPEC_VALUE(String value, String description) { + this.value = value; + this.description = description; + } + + public String getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(String val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value.equals(val)) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static String descriptionOfValue(String description) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /** + * 扭矩管理检测结果 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum TORQUE_MANAGE_CHECK_RESULT { + + OK(10, "OK"), + NG(20, "NG"); + + private int value; + private String description; + + TORQUE_MANAGE_CHECK_RESULT(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + } }