From e02d45e8a08545076a04a40fed1aa1b650d431f3 Mon Sep 17 00:00:00 2001 From: yxw Date: Sun, 8 Oct 2023 09:27:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E9=A6=96=E6=A3=80=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BAQ=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/base/IAntiStaticCheckDetailService.java | 2 + .../mes/pcn/api/base/bu/IBuFirstOrderService.java | 2 +- .../mes/pcn/api/base/bu3/IBuQManageService.java | 50 +- .../base/ep/IEpEquipmentCheckDetailService.java | 126 ++-- .../base/AntiStaticCheckDetailController.java | 13 + .../controller/base/FirstOrderController.java | 6 +- .../controller/base/bu/BuFirstOrderController.java | 10 +- .../controller/base/bu/BuQManageController.java | 112 +-- .../base/ep/EpEquipmentCheckDetailController.java | 244 +++--- .../schedulejob/AntiStaticCheckOrderJob.java | 1 - .../base/AntiStaticCheckDetailService.java | 10 + .../serviceimpl/base/MesOrderJobService.java | 54 +- .../serviceimpl/base/SxWorkOrderExtService.java | 63 +- .../serviceimpl/base/bu/BuFirstOrderService.java | 196 ++--- .../serviceimpl/base/bu/BuMesOrderJobService.java | 12 +- .../serviceimpl/base/bu3/BuQManageService.java | 292 ++++---- .../base/ep/EpEquipmentCheckDetailService.java | 830 ++++++++++----------- .../serviceimpl/busi/QManageOrderService.java | 514 ++++++------- .../job/ep/EpEquipmentCheckOrderService.java | 594 +++++++-------- .../job/ep/EpQManageCheckOrderService.java | 494 ++++++------ .../ext/mes/pcn/pojo/bean/MesFirstOrderDetail.java | 25 +- .../ext/mes/pcn/pojo/bean/MesProcessFirstItem.java | 23 + .../ext/mes/pcn/pojo/util/MesPcnExtEnumUtil.java | 45 ++ 23 files changed, 1867 insertions(+), 1851 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IAntiStaticCheckDetailService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IAntiStaticCheckDetailService.java index 39b48ad..201178c 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IAntiStaticCheckDetailService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IAntiStaticCheckDetailService.java @@ -45,4 +45,6 @@ public interface IAntiStaticCheckDetailService { List queryCell(String orderNo, String organizeCode); + + //List queryProcessCodeList(String orderNo, String organizeCode); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu/IBuFirstOrderService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu/IBuFirstOrderService.java index 7d256a0..5a3bc44 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu/IBuFirstOrderService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu/IBuFirstOrderService.java @@ -36,5 +36,5 @@ public interface IBuFirstOrderService { * @param userName * @return */ - void updateMesFirstOrderDetail(MesFirstOrderDetail mesFirstOrderDetail, String userName); + String updateMesFirstOrderDetail(MesFirstOrderDetail mesFirstOrderDetail, String userName); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu3/IBuQManageService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu3/IBuQManageService.java index dfb840b..1ab02c0 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu3/IBuQManageService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/bu3/IBuQManageService.java @@ -1,25 +1,25 @@ -package cn.estsh.i3plus.ext.mes.pcn.api.base.bu3; - -/** - * @Author: xinwang.yi - * @CreateDate: 2023/04/17 9:31 上午 - * @Description: - **/ -public interface IBuQManageService { - - /** - * 生成周点检 - * @param organizeCode 工厂代码 - * @param workCenterCode 产线代码 - */ - //void generateWeekCheck(String organizeCode, String workCenterCode); - - /** - * 生成月点检 - * @param organizeCode 工厂代码 - * @param workCenterCode 产线代码 - */ - void generateMonthCheck(String organizeCode, String workCenterCode); - - -} +//package cn.estsh.i3plus.ext.mes.pcn.api.base.bu3; +// +///** +// * @Author: xinwang.yi +// * @CreateDate: 2023/04/17 9:31 上午 +// * @Description: +// **/ +//public interface IBuQManageService { +// +// /** +// * 生成周点检 +// * @param organizeCode 工厂代码 +// * @param workCenterCode 产线代码 +// */ +// //void generateWeekCheck(String organizeCode, String workCenterCode); +// +// /** +// * 生成月点检 +// * @param organizeCode 工厂代码 +// * @param workCenterCode 产线代码 +// */ +// void generateMonthCheck(String organizeCode, String workCenterCode); +// +// +//} diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/ep/IEpEquipmentCheckDetailService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/ep/IEpEquipmentCheckDetailService.java index 89c7d7b..153feb5 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/ep/IEpEquipmentCheckDetailService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/ep/IEpEquipmentCheckDetailService.java @@ -1,63 +1,63 @@ -package cn.estsh.i3plus.ext.mes.pcn.api.base.ep; - -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; -import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpEquipmentCheckDetailModel; -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; - -import java.util.List; - -public interface IEpEquipmentCheckDetailService { - /** - * 查询 - * @param equipmentCheck - * @param pager - * @return - */ - ListPager queryByPager(MesEpEquipmentCheckDetail equipmentCheck, Pager pager); - - /** - * 新增 - * @param equipmentCheck - * @return - */ - MesEpEquipmentCheckDetail insert(MesEpEquipmentCheckDetail equipmentCheck); - - /** - * 修改 - * - * @param equipmentCheck - * @return - */ - void update(MesEpEquipmentCheckDetail equipmentCheck); - - /** - * 根据 - * - * @param id - * @param status - * @return - */ - int updateIsValidById(long id, Integer status); - - /** - * 查询工位 - * @param detail - * @return - */ - List queryCell(MesEpEquipmentCheckDetail detail); - - /** - * 生成月点检 - * @param organizeCode - * @param workCenterCode - */ - void generateWeekCheck(String organizeCode, String workCenterCode); - - /** - * 生成周点检 - * @param organizeCode - * @param workCenterCode - */ - void generateMonthCheck(String organizeCode, String workCenterCode); -} +//package cn.estsh.i3plus.ext.mes.pcn.api.base.ep; +// +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpEquipmentCheckDetailModel; +//import cn.estsh.i3plus.pojo.base.bean.ListPager; +//import cn.estsh.i3plus.pojo.base.common.Pager; +// +//import java.util.List; +// +//public interface IEpEquipmentCheckDetailService { +// /** +// * 查询 +// * @param equipmentCheck +// * @param pager +// * @return +// */ +// ListPager queryByPager(MesEpEquipmentCheckDetail equipmentCheck, Pager pager); +// +// /** +// * 新增 +// * @param equipmentCheck +// * @return +// */ +// MesEpEquipmentCheckDetail insert(MesEpEquipmentCheckDetail equipmentCheck); +// +// /** +// * 修改 +// * +// * @param equipmentCheck +// * @return +// */ +// void update(MesEpEquipmentCheckDetail equipmentCheck); +// +// /** +// * 根据 +// * +// * @param id +// * @param status +// * @return +// */ +// int updateIsValidById(long id, Integer status); +// +// /** +// * 查询工位 +// * @param detail +// * @return +// */ +// List queryCell(MesEpEquipmentCheckDetail detail); +// +// /** +// * 生成月点检 +// * @param organizeCode +// * @param workCenterCode +// */ +// void generateWeekCheck(String organizeCode, String workCenterCode); +// +// /** +// * 生成周点检 +// * @param organizeCode +// * @param workCenterCode +// */ +// void generateMonthCheck(String organizeCode, String workCenterCode); +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/AntiStaticCheckDetailController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/AntiStaticCheckDetailController.java index 8a9325f..b59241f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/AntiStaticCheckDetailController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/AntiStaticCheckDetailController.java @@ -51,6 +51,19 @@ public class AntiStaticCheckDetailController { } } + //@GetMapping("query-process-code-list") + //@ApiOperation(value = "查询工序代码下拉框") + //public ResultBean queryProcessCode(String orderNo, String organizeCode) { + // try { + // return ResultBean.success("查询成功").setResultList(this.antiStaticCheckDetailService.queryProcessCodeList(orderNo, organizeCode)) + // .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + // } catch (ImppBusiException busExcep) { + // return ResultBean.fail(busExcep); + // } catch (Exception e) { + // return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + // } + //} + @PutMapping("update") @ApiOperation(value = "修改") public ResultBean update(@RequestBody MesAntiStaticCheckDetail detail) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/FirstOrderController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/FirstOrderController.java index a39aa7c..8c883e9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/FirstOrderController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/FirstOrderController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController; * @Description: **/ @RestController -@Api(tags = "工单首检") +@Api(tags = "工单首检(改为Q管理)") @RequestMapping(CommonConstWords.BASE_URL_MES_PCN+ "/first") public class FirstOrderController extends MesPcnBaseController { @@ -60,7 +60,7 @@ public class FirstOrderController extends MesPcnBaseController { * @return */ @GetMapping(value = "/mes-first-order-detail/find") - @ApiOperation(value = "查询首检单明细数据") + @ApiOperation(value = "查询首检单(Q管理)明细数据") public ResultBean findMesFirstOrderDetail(String orderNo, String organizeCode) { try { return ResultBean.success("查询成功").setResultList(firstOrderService.findMesFirstOrderDetail(orderNo, organizeCode)) @@ -80,7 +80,7 @@ public class FirstOrderController extends MesPcnBaseController { * @return */ @PutMapping(value = "/mes-first-order-detail/update") - @ApiOperation(value = "修改首检明细信息") + @ApiOperation(value = "修改首检(Q管理)明细信息") public ResultBean updateMesFirstOrderDetail(MesFirstOrderDetail mesFirstOrderDetail, String userName) { try { firstOrderService.updateMesFirstOrderDetail(mesFirstOrderDetail, userName); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuFirstOrderController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuFirstOrderController.java index a6dc6f7..bd00b27 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuFirstOrderController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuFirstOrderController.java @@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*; * @Description: **/ @RestController -@Api(tags = "工单首检") +@Api(tags = "工单首检(改为Q管理)") @RequestMapping(CommonConstWords.BASE_URL_MES_PCN+ "/bu-ext/first") public class BuFirstOrderController extends MesPcnBaseController { @@ -58,7 +58,7 @@ public class BuFirstOrderController extends MesPcnBaseController { * @return */ @GetMapping(value = "/mes-first-order-detail/find") - @ApiOperation(value = "查询首检单明细数据") + @ApiOperation(value = "查询首检单(改为Q管理)明细数据") public ResultBean findMesFirstOrderDetail(String orderNo, String organizeCode) { try { return ResultBean.success("查询成功").setResultList(firstOrderService.findMesFirstOrderDetail(orderNo, organizeCode)) @@ -77,12 +77,12 @@ public class BuFirstOrderController extends MesPcnBaseController { * @return */ @PutMapping(value = "/mes-first-order-detail/update") - @ApiOperation(value = "修改首检明细信息") + @ApiOperation(value = "修改Q管理明细信息") public ResultBean updateMesFirstOrderDetail(@RequestBody MesFirstOrderDetail mesFirstOrderDetail) { try { String userName = AuthUtil.getSessionUser().getUserName(); - firstOrderService.updateMesFirstOrderDetail(mesFirstOrderDetail, userName); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultObject(firstOrderService.updateMesFirstOrderDetail(mesFirstOrderDetail, userName)); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuQManageController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuQManageController.java index 68ce4ef..329d122 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuQManageController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/bu/BuQManageController.java @@ -1,56 +1,56 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base.bu; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.bu3.IBuQManageService; -import cn.estsh.i3plus.platform.common.util.CommonConstWords; -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.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @Author: xinwang.yi - * @CreateDate: 2023/04/17 09:14 - * @Description: - **/ -@RestController -@Api(tags = "Q管理作业") -@RequestMapping(CommonConstWords.BASE_URL_MES_PCN + "/bu/q-manage") -public class BuQManageController extends MesPcnBaseController { - - @Autowired - private IBuQManageService qManageService; - - //@PostMapping("/generate-week") - //@ApiOperation(value = "生成周点检") - //public ResultBean generateWeekCheck(String organizeCode, String workCenterCode) { - // - // try { - // qManageService.generateWeekCheck(organizeCode, workCenterCode); - // return ResultBean.success("扫描成功"); - // } catch (ImppBusiException busExcep) { - // return ResultBean.fail(busExcep); - // } catch (Exception e) { - // return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - // } - //} - - @PostMapping("/generate-month") - @ApiOperation(value = "生成月点检") - public ResultBean generateMonthCheck(String organizeCode, String workCenterCode) { - - try { - qManageService.generateMonthCheck(organizeCode, workCenterCode); - return ResultBean.success("生成成功"); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base.bu; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.bu3.IBuQManageService; +//import cn.estsh.i3plus.platform.common.util.CommonConstWords; +//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.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +///** +// * @Author: xinwang.yi +// * @CreateDate: 2023/04/17 09:14 +// * @Description: +// **/ +//@RestController +//@Api(tags = "Q管理作业") +//@RequestMapping(CommonConstWords.BASE_URL_MES_PCN + "/bu/q-manage") +//public class BuQManageController extends MesPcnBaseController { +// +// @Autowired +// private IBuQManageService qManageService; +// +// //@PostMapping("/generate-week") +// //@ApiOperation(value = "生成周点检") +// //public ResultBean generateWeekCheck(String organizeCode, String workCenterCode) { +// // +// // try { +// // qManageService.generateWeekCheck(organizeCode, workCenterCode); +// // return ResultBean.success("扫描成功"); +// // } catch (ImppBusiException busExcep) { +// // return ResultBean.fail(busExcep); +// // } catch (Exception e) { +// // return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// // } +// //} +// +// @PostMapping("/generate-month") +// @ApiOperation(value = "生成月点检") +// public ResultBean generateMonthCheck(String organizeCode, String workCenterCode) { +// +// try { +// qManageService.generateMonthCheck(organizeCode, workCenterCode); +// return ResultBean.success("生成成功"); +// } 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/controller/base/ep/EpEquipmentCheckDetailController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ep/EpEquipmentCheckDetailController.java index 9b74c69..4e7e2c7 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ep/EpEquipmentCheckDetailController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/ep/EpEquipmentCheckDetailController.java @@ -1,122 +1,122 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base.ep; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpEquipmentCheckDetailService; -import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpMesOrderJobService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; -import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpOrderJobModel; -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.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.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * @PROJECT_NAME: i3plus-mes-panasonic-dev - * @DESCRIPTION: - * @USER: xinwang.yi - * @DATE: 2021-12-13 17:08 - */ -@RestController -@Api(tags = "EP设备点检") -@RequestMapping(CommonConstWords.BASE_URL_MES_PCN + "/ep-ext/order-job") -public class EpEquipmentCheckDetailController { - - @Autowired - private IEpEquipmentCheckDetailService mesEquipmentCheckService; - - @Autowired - private IEpMesOrderJobService orderJobService; - - @GetMapping("/equipment-check-detail/query") - @ApiOperation(value = "条件分页查询设备点检详细") - public ResultBean queryPager(MesEpEquipmentCheckDetail detail, Pager pager) { - try { - return ResultBean.success("查询成功").setListPager(this.mesEquipmentCheckService.queryByPager(detail, pager)) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - /** - * 物料点检作业 - * - * @param detail - * @return - */ - @PutMapping("/equipment-check-detail/update") - @ApiOperation(value = "修改") - public ResultBean update(@RequestBody MesEpEquipmentCheckDetail detail) { - try { - this.mesEquipmentCheckService.update(detail); - return ResultBean.success("扫描成功") - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/equipment-check/query") - @ApiOperation(value = "条件分页查询单据") - public ResultBean queryPager(EpOrderJobModel orderJob) { - try { - return ResultBean.success("查询成功").setResultList(orderJobService.queryMesOrderJob(orderJob)) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PostMapping("/equipment-check/generate-week") - @ApiOperation(value = "生成周点检") - public ResultBean generateWeekCheck(String organizeCode, String workCenterCode) { - - try { - mesEquipmentCheckService.generateWeekCheck(organizeCode, workCenterCode); - return ResultBean.success("生成成功"); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PostMapping("/equipment-check/generate-month") - @ApiOperation(value = "生成月点检") - public ResultBean generateMonthCheck(String organizeCode, String workCenterCode) { - - try { - mesEquipmentCheckService.generateMonthCheck(organizeCode, workCenterCode); - return ResultBean.success("生成成功"); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/query-cell") - @ApiOperation(value = "查询工序代码下拉框") - public ResultBean queryCell(MesEpEquipmentCheckDetail detail) { - try { - return ResultBean.success("查询成功").setResultList(this.mesEquipmentCheckService.queryCell(detail)) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base.ep; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpEquipmentCheckDetailService; +//import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpMesOrderJobService; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpOrderJobModel; +//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.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.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.*; +// +///** +// * @PROJECT_NAME: i3plus-mes-panasonic-dev +// * @DESCRIPTION: +// * @USER: xinwang.yi +// * @DATE: 2021-12-13 17:08 +// */ +//@RestController +//@Api(tags = "EP设备点检") +//@RequestMapping(CommonConstWords.BASE_URL_MES_PCN + "/ep-ext/order-job") +//public class EpEquipmentCheckDetailController { +// +// @Autowired +// private IEpEquipmentCheckDetailService mesEquipmentCheckService; +// +// @Autowired +// private IEpMesOrderJobService orderJobService; +// +// @GetMapping("/equipment-check-detail/query") +// @ApiOperation(value = "条件分页查询设备点检详细") +// public ResultBean queryPager(MesEpEquipmentCheckDetail detail, Pager pager) { +// try { +// return ResultBean.success("查询成功").setListPager(this.mesEquipmentCheckService.queryByPager(detail, pager)) +// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } +// +// /** +// * 物料点检作业 +// * +// * @param detail +// * @return +// */ +// @PutMapping("/equipment-check-detail/update") +// @ApiOperation(value = "修改") +// public ResultBean update(@RequestBody MesEpEquipmentCheckDetail detail) { +// try { +// this.mesEquipmentCheckService.update(detail); +// return ResultBean.success("扫描成功") +// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } +// +// @GetMapping("/equipment-check/query") +// @ApiOperation(value = "条件分页查询单据") +// public ResultBean queryPager(EpOrderJobModel orderJob) { +// try { +// return ResultBean.success("查询成功").setResultList(orderJobService.queryMesOrderJob(orderJob)) +// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } +// +// @PostMapping("/equipment-check/generate-week") +// @ApiOperation(value = "生成周点检") +// public ResultBean generateWeekCheck(String organizeCode, String workCenterCode) { +// +// try { +// mesEquipmentCheckService.generateWeekCheck(organizeCode, workCenterCode); +// return ResultBean.success("生成成功"); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } +// +// @PostMapping("/equipment-check/generate-month") +// @ApiOperation(value = "生成月点检") +// public ResultBean generateMonthCheck(String organizeCode, String workCenterCode) { +// +// try { +// mesEquipmentCheckService.generateMonthCheck(organizeCode, workCenterCode); +// return ResultBean.success("生成成功"); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } +// +// @GetMapping("/query-cell") +// @ApiOperation(value = "查询工序代码下拉框") +// public ResultBean queryCell(MesEpEquipmentCheckDetail detail) { +// try { +// return ResultBean.success("查询成功").setResultList(this.mesEquipmentCheckService.queryCell(detail)) +// .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/schedulejob/AntiStaticCheckOrderJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/AntiStaticCheckOrderJob.java index 3ae32aa..97ea276 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/AntiStaticCheckOrderJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/AntiStaticCheckOrderJob.java @@ -1,7 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; import cn.estsh.i3plus.ext.mes.pcn.api.job.IAntiStaticCheckOrderService; -import cn.estsh.i3plus.ext.mes.pcn.api.job.IProjectTourConfirmOrderService; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/AntiStaticCheckDetailService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/AntiStaticCheckDetailService.java index ee6a388..3669f5b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/AntiStaticCheckDetailService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/AntiStaticCheckDetailService.java @@ -150,6 +150,16 @@ public class AntiStaticCheckDetailService implements IAntiStaticCheckDetailServi .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); } + //@Override + //public List queryProcessCodeList(String orderNo, String organizeCode) { + // DdlPackBean packBean = MesHqlPack.getMesAllData(organizeCode); + // DdlPreparedPack.getStringEqualPack(orderNo, "orderJobNo", packBean); + // List details = antiStaticCheckDetailRepository.findByHqlWhere(packBean); + // return (details.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCellCode()))) + // .map(MesAntiStaticCheckDetail::getProcessCode).collect(Collectors.toList())) + // .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + //} + /** * 异常 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesOrderJobService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesOrderJobService.java index c766c46..57a9f76 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesOrderJobService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesOrderJobService.java @@ -135,12 +135,12 @@ public class MesOrderJobService implements IMesOrderJobService { List personCheckDetailList = personCheckDetailRDao.findByHqlWhere(packBean); return CollectionUtils.isEmpty(personCheckDetailList)? true : false; - case Q_MANAGE: - //判断当前明细数据中【刀头是否完好】字段存在数据 - List qDetailsTotal = qManageTaskDetailRDao.findByHqlWhere(packBean); - DdlPreparedPack.getStringNotBlanklPack("isIntact", packBean); - List qDetails = qManageTaskDetailRDao.findByHqlWhere(packBean); - return qDetails.size() == qDetailsTotal.size() ? true : false; + //case Q_MANAGE: + // //判断当前明细数据中【刀头是否完好】字段存在数据 + // List qDetailsTotal = qManageTaskDetailRDao.findByHqlWhere(packBean); + // DdlPreparedPack.getStringNotBlanklPack("isIntact", packBean); + // List qDetails = qManageTaskDetailRDao.findByHqlWhere(packBean); + // return qDetails.size() == qDetailsTotal.size() ? true : false; case EQU_CHECK: DdlPackBean equPackBean = MesPcnHqlPack.getAllBaseData(organizeCode); @@ -152,14 +152,14 @@ public class MesOrderJobService implements IMesOrderJobService { return CollectionUtils.isEmpty(equDetails) ? true : false; //兼容EP - case EP_EQU_CHECK: - DdlPackBean epEquPackBean = MesPcnHqlPack.getAllBaseData(organizeCode); - DdlPreparedPack.getStringEqualPack(orderNo, "orderJobNo", epEquPackBean); - DdlPreparedPack.getNotInPack(Stream.of(MesPcnExtEnumUtil.EQU_CHECK_RESULT.QUALIFIED.getValue(), - MesPcnExtEnumUtil.EQU_CHECK_RESULT.EQUIPMENT_ABNORMAL.getValue(), - MesPcnExtEnumUtil.EQU_CHECK_RESULT.EQUIPMENT_FAILURE.getValue()).collect(Collectors.toList()), "checkResult", epEquPackBean); - List epEquDetails = epEquDetailRepository.findByHqlWhere(epEquPackBean); - return CollectionUtils.isEmpty(epEquDetails) ? true : false; + //case EP_EQU_CHECK: + // DdlPackBean epEquPackBean = MesPcnHqlPack.getAllBaseData(organizeCode); + // DdlPreparedPack.getStringEqualPack(orderNo, "orderJobNo", epEquPackBean); + // DdlPreparedPack.getNotInPack(Stream.of(MesPcnExtEnumUtil.EQU_CHECK_RESULT.QUALIFIED.getValue(), + // MesPcnExtEnumUtil.EQU_CHECK_RESULT.EQUIPMENT_ABNORMAL.getValue(), + // MesPcnExtEnumUtil.EQU_CHECK_RESULT.EQUIPMENT_FAILURE.getValue()).collect(Collectors.toList()), "checkResult", epEquPackBean); + // List epEquDetails = epEquDetailRepository.findByHqlWhere(epEquPackBean); + // return CollectionUtils.isEmpty(epEquDetails) ? true : false; case ESD_CHECK: DdlPackBean antPackBean = MesPcnHqlPack.getAllBaseData(organizeCode); @@ -246,19 +246,19 @@ public class MesOrderJobService implements IMesOrderJobService { DdlPreparedPack.getInPackList(statusList, "orderStatus", packBean); List mesOrderJobs = mesOrderJobRDao.findByHqlWhere(packBean); - if (!CollectionUtils.isEmpty(mesOrderJobs)) { - for (MesOrderJob orderJob : mesOrderJobs) { - if(orderJob.getOrderType() == MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue() && orderJob.getCheckType().equals(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.MONTH_CHECK.getValue())) continue; - packBean = DdlPackBean.getDdlPackBean(mesOrderJob.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderJob.getWorkOrderNo(), "orderNo", packBean); - - MesWorkOrder mesWorkOrder = mesWorkOrderRDao.getByProperty(packBean); - if (mesWorkOrder != null) { - orderJob.setPartNo(mesWorkOrder.getPartNo()); - orderJob.setPartNameRdd(mesWorkOrder.getPartNameRdd()); - } - } - } + //if (!CollectionUtils.isEmpty(mesOrderJobs)) { + // for (MesOrderJob orderJob : mesOrderJobs) { + // if(orderJob.getOrderType() == MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue() && orderJob.getCheckType().equals(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.MONTH_CHECK.getValue())) continue; + // packBean = DdlPackBean.getDdlPackBean(mesOrderJob.getOrganizeCode()); + // DdlPreparedPack.getStringEqualPack(orderJob.getWorkOrderNo(), "orderNo", packBean); + // + // MesWorkOrder mesWorkOrder = mesWorkOrderRDao.getByProperty(packBean); + // if (mesWorkOrder != null) { + // orderJob.setPartNo(mesWorkOrder.getPartNo()); + // orderJob.setPartNameRdd(mesWorkOrder.getPartNameRdd()); + // } + // } + //} return mesOrderJobs; } 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 0ca3e65..1bed0d7 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 @@ -823,7 +823,8 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService { .build(); } - if (MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() == workOrderStatus && + if (workOrderExt.getWorkOrderType() != MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue() && + MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() == workOrderStatus && (null == lastWorkOrderStatus || MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() == lastWorkOrderStatus)) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); List mesAffiliatedStartConfigs = affiliatedStartConfigRepository.findByHqlWhere(ddlPackBean); @@ -870,36 +871,36 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService { //完成 //校验工单是否是暂停状态 //修改返工工单状态 - if(workOrderExt.getWorkOrderType() == MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()) { - - List waterPurifierCodeList = !Optional.ofNullable(waterPurifierCode).isPresent() || StringUtils.isEmpty(waterPurifierCode.getCfgValue()) ? new ArrayList<>() : Arrays.asList(waterPurifierCode.getCfgValue().split(MesPcnExtConstWords.COMMA)); - if(CollectionUtils.isEmpty(waterPurifierCodeList) || !waterPurifierCodeList.contains(workOrderExt.getWorkCenterCode())){ - // 手动点击完成工单,存在未下线条码 - if(!workOrderExt.getQty().equals(workOrderExt.getCompleteQty())) { - List produceSnRepairList = queryProduceSnRepairList(organizeCode, workOrderExt.getOrderNo()); - if(!CollectionUtils.isEmpty(produceSnRepairList)) { - // 未下线条码 - produceSnRepairList = produceSnRepairList.stream().filter(o -> StringUtils.isEmpty(o.getOutWorkCenterTime())).collect(Collectors.toList()); - - if(!CollectionUtils.isEmpty(produceSnRepairList)){ - List serialNumberList = produceSnRepairList.stream().map(MesProduceSnRepair::getSerialNumber).collect(Collectors.toList()); - - updateProduceSnRepair(organizeCode, serialNumberList); - - updatePackage(organizeCode, serialNumberList); - - unbindReworkRangeList(organizeCode, workOrderExt, serialNumberList, userInfo); - - clearProdBindRecord(organizeCode, workOrderExt, TimeTool.getNowTime(true), serialNumberList, userInfo); - } - } - } - - reworkOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.REWORK_ORDER_NO}, new Object[]{workOrderExt.getOrderNo()}, - new String[]{ MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, - new Object[]{MesPcnExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue(), MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue(), AuthUtil.getSessionUser().getUserName(), TimeTool.getNowTime(true)}); - } - } + //if(workOrderExt.getWorkOrderType() == MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()) { + // + // List waterPurifierCodeList = !Optional.ofNullable(waterPurifierCode).isPresent() || StringUtils.isEmpty(waterPurifierCode.getCfgValue()) ? new ArrayList<>() : Arrays.asList(waterPurifierCode.getCfgValue().split(MesPcnExtConstWords.COMMA)); + // if(CollectionUtils.isEmpty(waterPurifierCodeList) || !waterPurifierCodeList.contains(workOrderExt.getWorkCenterCode())){ + // // 手动点击完成工单,存在未下线条码 + // if(!workOrderExt.getQty().equals(workOrderExt.getCompleteQty())) { + // List produceSnRepairList = queryProduceSnRepairList(organizeCode, workOrderExt.getOrderNo()); + // if(!CollectionUtils.isEmpty(produceSnRepairList)) { + // // 未下线条码 + // produceSnRepairList = produceSnRepairList.stream().filter(o -> StringUtils.isEmpty(o.getOutWorkCenterTime())).collect(Collectors.toList()); + // + // if(!CollectionUtils.isEmpty(produceSnRepairList)){ + // List serialNumberList = produceSnRepairList.stream().map(MesProduceSnRepair::getSerialNumber).collect(Collectors.toList()); + // + // updateProduceSnRepair(organizeCode, serialNumberList); + // + // updatePackage(organizeCode, serialNumberList); + // + // unbindReworkRangeList(organizeCode, workOrderExt, serialNumberList, userInfo); + // + // clearProdBindRecord(organizeCode, workOrderExt, TimeTool.getNowTime(true), serialNumberList, userInfo); + // } + // } + // } + // + // //reworkOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.REWORK_ORDER_NO}, new Object[]{workOrderExt.getOrderNo()}, + // // new String[]{ MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, + // // new Object[]{MesPcnExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue(), MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue(), AuthUtil.getSessionUser().getUserName(), TimeTool.getNowTime(true)}); + // } + //} /*if (MesExtEnumUtil.WORK_ORDER_STATUS.PAUSE.getValue() != mesWorkOrder.getWorkOrderStatus()) { throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("工单号【%s】的工单状态不是暂停状态,不能完成", mesWorkOrder.getOrderNo()) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuFirstOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuFirstOrderService.java index 7266367..5d93930 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuFirstOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuFirstOrderService.java @@ -1,13 +1,11 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.bu; -import cn.estsh.i3plus.ext.mes.pcn.api.base.IPartExtService; import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.api.base.bu.IBuFirstOrderService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IPackageExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesFirstOrderDetailRepository; import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOrderJobRepository; -import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesPackageExtRepository; +import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProduceSnExtRepository; 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; @@ -15,8 +13,6 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; 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.MesContainer; -import cn.estsh.i3plus.pojo.mes.repository.MesContainerRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -35,25 +31,16 @@ import java.util.List; public class BuFirstOrderService implements IBuFirstOrderService { @Autowired - private IPartExtService partExtService; - - @Autowired - private IPackageExtService packageExtService; - - @Autowired private MesOrderJobRepository orderJobRepository; @Autowired private ISxWorkOrderExtService workOrderExtService; @Autowired - private MesPackageExtRepository packageExtRepository; - - @Autowired private MesFirstOrderDetailRepository mesFirstOrderDetailRDao; @Autowired - private MesContainerRepository containerRepository; + private MesProduceSnExtRepository produceSnExtRepository; @Override public void doCheckSerialNumber(String serialNumber, String orderNo, String workOrderNo, String organizeCode, String modifyUser) { @@ -66,6 +53,19 @@ public class BuFirstOrderService implements IBuFirstOrderService { .build(); } + //扫描管理码 + MesProduceSnExt produceSnExt = produceSnExtRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.SERIAL_NUMBER, MesPcnExtConstWords.WORK_ORDER_NO}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), serialNumber, workOrderNo}); + + if (produceSnExt == null) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("管理码[%s]不存在于当前工单中", serialNumber) + .build(); + } + MesOrderJob orderJobDb = orderJobRepository.getByProperty( new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.ORDER_NO}, new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), orderNo}); @@ -94,136 +94,17 @@ public class BuFirstOrderService implements IBuFirstOrderService { .build(); } - MesPartExt partExt = partExtService.getPartExt(organizeCode, workOrderExt.getPartNo()); - if (null == partExt) { + MesOrderJob orderJobExist = orderJobRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.SERIAL_NUMBER}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), serialNumber}); + if (null != orderJobExist) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("生产工单号[%s]关联的物料编码[%s]无效", workOrderNo, workOrderExt.getPartNo()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("产品条码[%s]已经绑定单据[%s],不可再次执行绑定", serialNumber, orderJobExist.getOrderNo()) .build(); } - if (StringUtils.isEmpty(partExt.getCategoryCode2()) || MesPcnExtEnumUtil.CATEGORY_CODE_2.OUTSIDE.getValue().equals(partExt.getCategoryCode2())) { - - MesOrderJob orderJobExist = orderJobRepository.getByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.SERIAL_NUMBER}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), serialNumber}); - if (null != orderJobExist) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("包装条码[%s]已经绑定单据[%s],不可再次执行绑定", serialNumber, orderJobExist.getOrderNo()) - .build(); - } - - //扫描包装条码 - MesPackageExt packageExt = packageExtService.getPackageByPackNo(organizeCode, serialNumber); - if (null == packageExt) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("包装条码[%s]无效", serialNumber) - .build(); - } - - if (StringUtils.isEmpty(partExt.getCategoryCode2())) { - if (MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue() != workOrderExt.getWorkOrderType()) { - if (!packageExt.getWorkOrderNo().equals(workOrderNo)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生产工单[%s]未关联包装条码[%s]", workOrderNo, serialNumber) - .build(); - } else { - if (!StringUtils.isEmpty(packageExt.getLastWorkOrderNo()) && !packageExt.getLastWorkOrderNo().equals(packageExt.getWorkOrderNo())) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("包装条码[%s]已经关联返工工单[%s]", serialNumber, packageExt.getLastWorkOrderNo()) - .build(); - } - } - } else { - if (StringUtils.isEmpty(packageExt.getLastWorkOrderNo()) || !packageExt.getLastWorkOrderNo().equals(workOrderNo)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("返工工单[%s]未关联包装条码[%s]", workOrderNo, serialNumber) - .build(); - } - } - } else { - if (!packageExt.getWorkOrderNo().equals(workOrderNo)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生产工单[%s]未关联包装条码[%s]", workOrderNo, serialNumber) - .build(); - } - } - } else { - //扫描CT_NO - MesContainer containerDb = containerRepository.getByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.CT_NO}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), serialNumber}); - if (null == containerDb) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("容器条码[%s]无效", serialNumber) - .build(); - } - - if (MesPcnExtEnumUtil.CONTAINER_USE_STATUS.LEISURE.getValue() == containerDb.getUseStatus()) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("容器条码[%s]未进行生产,请重新扫描", serialNumber) - .build(); - } - - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(serialNumber, MesPcnExtConstWords.CT_NO, packBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.MODIFY_DATE_TIME}, packBean); - MesPackageExt packageExt = packageExtRepository.getByProperty(packBean); - if (null == packageExt) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("容器条码[%s]未关联包装条码", serialNumber) - .build(); - } - if (!packageExt.getWorkOrderNo().equals(workOrderNo)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("容器条码[%s]关联的最新包装条码[%s]对应的生产工单[%s]与当前生产工单[%s]不一致", - serialNumber, packageExt.getPackageNo(), packageExt.getWorkOrderNo(), workOrderNo) - .build(); - } else { - if (!StringUtils.isEmpty(packageExt.getLastWorkOrderNo()) && !packageExt.getLastWorkOrderNo().equals(packageExt.getWorkOrderNo())) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("容器条码[%s]关联的包装条码[%s]已经关联返工工单[%s]", serialNumber, packageExt.getPackageNo(), packageExt.getLastWorkOrderNo()) - .build(); - } - } - - MesOrderJob orderJobExist = orderJobRepository.getByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.SERIAL_NUMBER}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), serialNumber}); - if (null != orderJobExist) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("容器条码[%s]已经绑定单据[%s],不可再次执行绑定", serialNumber, orderJobExist.getOrderNo()) - .build(); - } - - serialNumber = packageExt.getPackageNo(); - } - orderJobDb.setSerialNumber(serialNumber); ConvertBean.serviceModelUpdate(orderJobDb, modifyUser); orderJobRepository.save(orderJobDb); @@ -241,7 +122,7 @@ public class BuFirstOrderService implements IBuFirstOrderService { } @Override - public void updateMesFirstOrderDetail(MesFirstOrderDetail mesFirstOrderDetail, String userName) { + public String updateMesFirstOrderDetail(MesFirstOrderDetail mesFirstOrderDetail, String userName) { //上下限有值时,结果值为必填 if (!StringUtils.isEmpty(mesFirstOrderDetail.getUpLimit()) && !StringUtils.isEmpty(mesFirstOrderDetail.getDownLimit()) && StringUtils.isEmpty(mesFirstOrderDetail.getResultValue())){ @@ -255,7 +136,7 @@ public class BuFirstOrderService implements IBuFirstOrderService { //根据单号查询任务主表信息 String orderNo = mesFirstOrderDetail.getOrderNo(); MesOrderJob mesOrderJob = orderJobRepository.getByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, "orderNo"}, + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.ORDER_NO}, new Object[]{mesFirstOrderDetail.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), orderNo}); @@ -272,28 +153,46 @@ public class BuFirstOrderService implements IBuFirstOrderService { if (!StringUtils.isEmpty(mesFirstOrderDetail.getUpLimit()) && StringUtils.isEmpty(mesFirstOrderDetail.getDownLimit())){ Double upLimit = Double.valueOf(mesFirstOrderDetail.getUpLimit()); if (resultValue > upLimit && mesFirstOrderDetail.getCheckResult().equals("10")){ - mesFirstOrderDetail.setCheckResult("30"); - }else if (resultValue <= upLimit && mesFirstOrderDetail.getCheckResult().equals("30")){ + mesFirstOrderDetail.setCheckResult("20"); + }else if (resultValue <= upLimit && mesFirstOrderDetail.getCheckResult().equals("20")){ mesFirstOrderDetail.setCheckResult("10"); } }else if (StringUtils.isEmpty(mesFirstOrderDetail.getUpLimit()) && !StringUtils.isEmpty(mesFirstOrderDetail.getDownLimit())){ Double downLimit = Double.valueOf(mesFirstOrderDetail.getDownLimit()); if (resultValue < downLimit && mesFirstOrderDetail.getCheckResult().equals("10")){ - mesFirstOrderDetail.setCheckResult("30"); - }else if (resultValue >= downLimit && mesFirstOrderDetail.getCheckResult().equals("30")){ + mesFirstOrderDetail.setCheckResult("20"); + }else if (resultValue >= downLimit && mesFirstOrderDetail.getCheckResult().equals("20")){ mesFirstOrderDetail.setCheckResult("10"); } }else if (!StringUtils.isEmpty(mesFirstOrderDetail.getUpLimit()) && !StringUtils.isEmpty(mesFirstOrderDetail.getDownLimit())){ Double upLimit = Double.valueOf(mesFirstOrderDetail.getUpLimit()); Double downLimit = Double.valueOf(mesFirstOrderDetail.getDownLimit()); - if ((upLimit >= resultValue && resultValue >= downLimit) && mesFirstOrderDetail.getCheckResult().equals("30")){ + if ((upLimit >= resultValue && resultValue >= downLimit) && mesFirstOrderDetail.getCheckResult().equals("20")){ mesFirstOrderDetail.setCheckResult("10"); }else if (!(upLimit >= resultValue && resultValue >= downLimit) && mesFirstOrderDetail.getCheckResult().equals("10")){ - mesFirstOrderDetail.setCheckResult("30"); + mesFirstOrderDetail.setCheckResult("20"); } } } + if (mesFirstOrderDetail.getManageType().equals(MesPcnExtEnumUtil.Q_MANAGE_MANAGE_TYPE.RESULT_TYPE.getValue()) && !StringUtils.isEmpty(mesFirstOrderDetail.getImportanceSafePartNo()) && StringUtils.isEmpty(mesFirstOrderDetail.getCheckResult())){ + if (!mesFirstOrderDetail.getImportanceSafePartNo().equals(mesFirstOrderDetail.getCheckValue())) { + MesProduceSnExt produceSnExt = produceSnExtRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PRODUCT_SN}, + new Object[]{mesFirstOrderDetail.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), + MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), mesFirstOrderDetail.getCheckValue()}); + + if (produceSnExt == null || !produceSnExt.getPartNo().equals(mesFirstOrderDetail.getImportanceSafePartNo())) { + log.info("updateMesFirstOrderDetail --- 条码为空或条码的重要安全部品编码不一致"); + mesFirstOrderDetail.setCheckValue("20"); + } else { + mesFirstOrderDetail.setCheckValue("10"); + } + } else { + mesFirstOrderDetail.setCheckValue("20"); + } + } + //修改首检单明细数据 mesFirstOrderDetail.setSpotCheckUser(userName); ConvertBean.serviceModelUpdate(mesFirstOrderDetail, userName); @@ -305,5 +204,6 @@ public class BuFirstOrderService implements IBuFirstOrderService { orderJobRepository.save(mesOrderJob); + return mesFirstOrderDetail.getCheckResult(); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuMesOrderJobService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuMesOrderJobService.java index 50418bd..7d1f132 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuMesOrderJobService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu/BuMesOrderJobService.java @@ -144,12 +144,12 @@ public class BuMesOrderJobService implements IBuMesOrderJobService { List personCheckDetailList = personCheckDetailRDao.findByHqlWhere(packBean); return CollectionUtils.isEmpty(personCheckDetailList)? true : false; - case Q_MANAGE: - //判断当前明细数据中【刀头是否完好】字段存在数据 - List qDetailsTotal = qManageTaskDetailRDao.findByHqlWhere(packBean); - DdlPreparedPack.getStringNotBlanklPack("isIntact", packBean); - List qDetails = qManageTaskDetailRDao.findByHqlWhere(packBean); - return qDetails.size() == qDetailsTotal.size() ? true : false; + //case Q_MANAGE: + // //判断当前明细数据中【刀头是否完好】字段存在数据 + // List qDetailsTotal = qManageTaskDetailRDao.findByHqlWhere(packBean); + // DdlPreparedPack.getStringNotBlanklPack("isIntact", packBean); + // List qDetails = qManageTaskDetailRDao.findByHqlWhere(packBean); + // return qDetails.size() == qDetailsTotal.size() ? true : false; case EQU_CHECK: DdlPackBean equPackBean = MesPcnHqlPack.getAllBaseData(organizeCode); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu3/BuQManageService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu3/BuQManageService.java index 3020417..95bae6e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu3/BuQManageService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/bu3/BuQManageService.java @@ -1,146 +1,146 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.bu3; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.bu3.IBuQManageService; -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.mes.pcn.util.DateUtil; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -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.enumutil.MesEnumUtil; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @PROJECT_NAME: i3plus-mes-panasonic-bu - * @DESCRIPTION: - * @USER: xinwang.yi - * @DATE: 2023-04-17 9:23 - */ -@Service -public class BuQManageService implements IBuQManageService { - - @Autowired - private MesOrderJobRepository orderJobRepository; - - @Autowired - private MesQManageTaskDetailRepository qManageTaskDetailRepository; - - @Autowired - private ISyncFuncService syncFuncService; - - @Autowired - private MesWorkCenterExtRepository workCenterExtRepository; - - @Autowired - private MesProcessQManageRepository processQManageRepository; - - @Autowired - private MesProcessCellRepository processCellRepository; - - //@Override - //public void generateWeekCheck(String organizeCode, String workCenterCode) { - // generateOrderJob(organizeCode, workCenterCode, MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.WEEK_CHECK.getValue()); - //} - - @Override - public void generateMonthCheck(String organizeCode, String workCenterCode) { - generateOrderJob(organizeCode, workCenterCode, MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.MONTH_CHECK.getValue()); - } - - private void generateOrderJob(String organizeCode, String workCenterCode, String checkType) { - List processCellList = processCellRepository.findByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.WORK_CENTER_CODE}, - new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), workCenterCode}); - Map processCellMap = processCellList.stream().collect(Collectors.toMap(o -> o.getProcessCode(), Function.identity(), (x, y) -> y)); - List qManageList = findQManageByCenterCode(organizeCode, processCellList, checkType); - if (!CollectionUtils.isEmpty(qManageList)) { - MesWorkCenterExt workCenter = getWorkCenter(workCenterCode, organizeCode); - MesOrderJob newOrderJob = new MesOrderJob(); - newOrderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); - newOrderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); - newOrderJob.setOrderNo(getOrderNo(organizeCode)); - newOrderJob.setWorkCenterCode(workCenterCode); - newOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); - newOrderJob.setOrderDate(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setWorkTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setGenerateTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setOrganizeCode(organizeCode); - newOrderJob.setIsValid(MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue()); - newOrderJob.setIsDeleted(MesEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - newOrderJob.setCreateDatetime(DateUtil.formatDate()); - newOrderJob.setModifyDatetime(DateUtil.formatDate()); - newOrderJob.setCheckType(checkType); - newOrderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.MANUALLY_CREATE.getValue()); - newOrderJob.setShiftCode(workCenter.getShiftCode()); - MesOrderJob job = orderJobRepository.save(newOrderJob); - - for (MesProcessQManage processQManage : qManageList) { - MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); - qManageTaskDetail.setOrderNo(job.getOrderNo()); - BeanUtils.copyProperties(processQManage, qManageTaskDetail, "id"); - qManageTaskDetail.setCheckType(checkType); - qManageTaskDetail.setShiftCode(workCenter.getShiftCode()); - qManageTaskDetail.setWorkCenterCode(workCenterCode); - MesProcessCell mesProcessCell = processCellMap.get(processQManage.getProcessCode()); - if(mesProcessCell != null){ - qManageTaskDetail.setWorkCellCode(mesProcessCell.getWorkCellCode()); - qManageTaskDetail.setWorkCellName(mesProcessCell.getWorkCellName()); - qManageTaskDetail.setProcessName(mesProcessCell.getProcessName()); - } - - qManageTaskDetailRepository.save(qManageTaskDetail); - } - }else{ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) - .setErrorDetail("产线【%s】未维护月点检项目,请确认",workCenterCode) - .build(); - } - } - - private MesWorkCenterExt getWorkCenter(String workCenterCode, String organizeCode) { - return workCenterExtRepository.getByProperty( - new String[]{"workCenterCode", "organizeCode", "isValid", "isDeleted"}, - new Object[]{workCenterCode, organizeCode, - CommonEnumUtil.IS_VAILD.VAILD.getValue(), - CommonEnumUtil.IS_DEAL.NO.getValue()}); - } - - public List findQManageByCenterCode(String organizeCode, List processCellList, String checkType) { - if(CollectionUtils.isEmpty(processCellList)) return null; - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, ddlPackBean); - DdlPreparedPack.getInPackList(processCellList.stream().map(MesProcessCell::getProcessCode).distinct().collect(Collectors.toList()), MesPcnExtConstWords.PROCESS_CODE, ddlPackBean); - - return processQManageRepository.findByHqlWhere(ddlPackBean); - } - - private String getOrderNo(String organizeCode) { - String orderNo = null; - try { - BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); - if (oneCodeResult != null && oneCodeResult.isSuccess()) { - orderNo = oneCodeResult.getResultList().get(0).toString(); - } - } catch (Exception e) { - } - return orderNo; - } -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.bu3; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.bu3.IBuQManageService; +//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.mes.pcn.util.DateUtil; +//import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +//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.enumutil.MesEnumUtil; +//import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +//import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +//import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +//import org.springframework.beans.BeanUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Service; +//import org.springframework.util.CollectionUtils; +// +//import java.util.Date; +//import java.util.List; +//import java.util.Map; +//import java.util.function.Function; +//import java.util.stream.Collectors; +// +///** +// * @PROJECT_NAME: i3plus-mes-panasonic-bu +// * @DESCRIPTION: +// * @USER: xinwang.yi +// * @DATE: 2023-04-17 9:23 +// */ +//@Service +//public class BuQManageService implements IBuQManageService { +// +// @Autowired +// private MesOrderJobRepository orderJobRepository; +// +// @Autowired +// private MesQManageTaskDetailRepository qManageTaskDetailRepository; +// +// @Autowired +// private ISyncFuncService syncFuncService; +// +// @Autowired +// private MesWorkCenterExtRepository workCenterExtRepository; +// +// @Autowired +// private MesProcessQManageRepository processQManageRepository; +// +// @Autowired +// private MesProcessCellRepository processCellRepository; +// +// //@Override +// //public void generateWeekCheck(String organizeCode, String workCenterCode) { +// // generateOrderJob(organizeCode, workCenterCode, MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.WEEK_CHECK.getValue()); +// //} +// +// @Override +// public void generateMonthCheck(String organizeCode, String workCenterCode) { +// generateOrderJob(organizeCode, workCenterCode, MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.MONTH_CHECK.getValue()); +// } +// +// private void generateOrderJob(String organizeCode, String workCenterCode, String checkType) { +// List processCellList = processCellRepository.findByProperty( +// new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.WORK_CENTER_CODE}, +// new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), workCenterCode}); +// Map processCellMap = processCellList.stream().collect(Collectors.toMap(o -> o.getProcessCode(), Function.identity(), (x, y) -> y)); +// List qManageList = findQManageByCenterCode(organizeCode, processCellList, checkType); +// if (!CollectionUtils.isEmpty(qManageList)) { +// MesWorkCenterExt workCenter = getWorkCenter(workCenterCode, organizeCode); +// MesOrderJob newOrderJob = new MesOrderJob(); +// newOrderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); +// newOrderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); +// newOrderJob.setOrderNo(getOrderNo(organizeCode)); +// newOrderJob.setWorkCenterCode(workCenterCode); +// newOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); +// newOrderJob.setOrderDate(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setWorkTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setGenerateTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setOrganizeCode(organizeCode); +// newOrderJob.setIsValid(MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue()); +// newOrderJob.setIsDeleted(MesEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// newOrderJob.setCreateDatetime(DateUtil.formatDate()); +// newOrderJob.setModifyDatetime(DateUtil.formatDate()); +// newOrderJob.setCheckType(checkType); +// newOrderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.MANUALLY_CREATE.getValue()); +// newOrderJob.setShiftCode(workCenter.getShiftCode()); +// MesOrderJob job = orderJobRepository.save(newOrderJob); +// +// for (MesProcessQManage processQManage : qManageList) { +// MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); +// qManageTaskDetail.setOrderNo(job.getOrderNo()); +// BeanUtils.copyProperties(processQManage, qManageTaskDetail, "id"); +// qManageTaskDetail.setCheckType(checkType); +// qManageTaskDetail.setShiftCode(workCenter.getShiftCode()); +// qManageTaskDetail.setWorkCenterCode(workCenterCode); +// MesProcessCell mesProcessCell = processCellMap.get(processQManage.getProcessCode()); +// if(mesProcessCell != null){ +// qManageTaskDetail.setWorkCellCode(mesProcessCell.getWorkCellCode()); +// qManageTaskDetail.setWorkCellName(mesProcessCell.getWorkCellName()); +// qManageTaskDetail.setProcessName(mesProcessCell.getProcessName()); +// } +// +// qManageTaskDetailRepository.save(qManageTaskDetail); +// } +// }else{ +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) +// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) +// .setErrorDetail("产线【%s】未维护月点检项目,请确认",workCenterCode) +// .build(); +// } +// } +// +// private MesWorkCenterExt getWorkCenter(String workCenterCode, String organizeCode) { +// return workCenterExtRepository.getByProperty( +// new String[]{"workCenterCode", "organizeCode", "isValid", "isDeleted"}, +// new Object[]{workCenterCode, organizeCode, +// CommonEnumUtil.IS_VAILD.VAILD.getValue(), +// CommonEnumUtil.IS_DEAL.NO.getValue()}); +// } +// +// public List findQManageByCenterCode(String organizeCode, List processCellList, String checkType) { +// if(CollectionUtils.isEmpty(processCellList)) return null; +// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, ddlPackBean); +// DdlPreparedPack.getInPackList(processCellList.stream().map(MesProcessCell::getProcessCode).distinct().collect(Collectors.toList()), MesPcnExtConstWords.PROCESS_CODE, ddlPackBean); +// +// return processQManageRepository.findByHqlWhere(ddlPackBean); +// } +// +// private String getOrderNo(String organizeCode) { +// String orderNo = null; +// try { +// BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); +// if (oneCodeResult != null && oneCodeResult.isSuccess()) { +// orderNo = oneCodeResult.getResultList().get(0).toString(); +// } +// } catch (Exception e) { +// } +// return orderNo; +// } +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ep/EpEquipmentCheckDetailService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ep/EpEquipmentCheckDetailService.java index 4ba05f0..25f15ff 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ep/EpEquipmentCheckDetailService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/ep/EpEquipmentCheckDetailService.java @@ -1,415 +1,415 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.ep; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpEquipmentCheckDetailService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheck; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOrderJob; -import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterExt; -import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpEquipmentCheckDetailModel; -import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesEpEquipmentCheckDetailRepository; -import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesEpEquipmentCheckRepository; -import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOrderJobRepository; -import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesWorkCenterExtRepository; -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.mes.pcn.util.DateUtil; -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.BaseResultBean; -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.enumutil.MesEnumUtil; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; -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.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @PROJECT_NAME: i3plus-mes-panasonic-dev - * @DESCRIPTION: - * @USER: xinwang.yi - * @DATE: 2021-12-14 10:32 - */ -@Service -public class EpEquipmentCheckDetailService implements IEpEquipmentCheckDetailService { - - @Autowired - private MesEpEquipmentCheckRepository epEquipmentCheckRepository; - - @Autowired - private MesEpEquipmentCheckDetailRepository equDetailRepository; - - @Autowired - private MesOrderJobRepository mesOrderJobRepository; - @Autowired - private MesWorkCenterExtRepository workCenterRepository; - @Autowired - private ISyncFuncService syncFuncService; - - @Override - public ListPager queryByPager(MesEpEquipmentCheckDetail equipmentCheck, Pager pager) { - String workCenterCode = equipmentCheck.getWorkCenterCode(); - String organizeCode = equipmentCheck.getOrganizeCode(); - DdlPackBean packBean = MesHqlPack.getMesAllData(organizeCode); - DdlPreparedPack.getStringEqualPack(equipmentCheck.getOrderJobNo(), MesPcnExtConstWords.ORDER_JOB_NO, packBean); - DdlPreparedPack.getStringEqualPack(equipmentCheck.getWorkCellCode(), "workCellCode", packBean); - - DdlPreparedPack.getNumEqualPack(equipmentCheck.getIsValid(), MesPcnExtConstWords.IS_VALID, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - pager = PagerHelper.getPager(pager, equDetailRepository.findByHqlWhereCount(packBean)); - List equipmentCheckDetails = equDetailRepository.findByHqlWherePage(packBean, pager); - List epEquipmentCheckDetailModels = new ArrayList<>(); - for(MesEpEquipmentCheckDetail epEquipmentCheckDetail: equipmentCheckDetails){ - EpEquipmentCheckDetailModel epEquipmentCheckDetailModel = new EpEquipmentCheckDetailModel(); - BeanUtils.copyProperties(epEquipmentCheckDetail, epEquipmentCheckDetailModel); - epEquipmentCheckDetailModel.setResutlTypeName(MesPcnExtEnumUtil.EP_EQUIPMENT_CHECK_RESULT_TYPE.valueOfDescription(epEquipmentCheckDetailModel.getResultType())); - epEquipmentCheckDetailModels.add(epEquipmentCheckDetailModel); - } - return new ListPager(epEquipmentCheckDetailModels, pager); - } - - /** - * 新增 - * - * @param equipmentCheck - * @return - */ - @Override - public MesEpEquipmentCheckDetail insert(MesEpEquipmentCheckDetail equipmentCheck) { - ConvertBean.modelInitialize(equipmentCheck, AuthUtil.getSessionUser()); - equipmentCheck.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); - return equDetailRepository.insert(equipmentCheck); - } - - /** - * 修改 - * - * @param equipmentCheck - * @return - */ - @Override - public void update(MesEpEquipmentCheckDetail equipmentCheck) { - //1、判断单据是否存在 - Long id = equipmentCheck.getId(); - MesEpEquipmentCheckDetail equipmentCheckMeta = equDetailRepository.getById(id); - if (ObjectUtils.isEmpty(equipmentCheckMeta)) { - throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode(), "点检信息不存在"); - } - - ConvertBean.serviceModelUpdate(equipmentCheckMeta, equipmentCheck.getModifyUser()); - equipmentCheckMeta.setSpotCheckTime(equipmentCheckMeta.getModifyDatetime()); - equipmentCheckMeta.setSpotCheckUser(equipmentCheckMeta.getModifyUser()); - - //根据单号查询任务主表信息 - String orderJobNo = equipmentCheckMeta.getOrderJobNo(); - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(equipmentCheck.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderJobNo, MesPcnExtConstWords.ORDER_NO, ddlPackBean); - MesOrderJob mesOrderJob = mesOrderJobRepository.getByProperty(ddlPackBean); - - if(null == mesOrderJob){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) - .setErrorDetail("单据【%s】不存在",orderJobNo) - .build(); - } - - switch (MesPcnExtEnumUtil.EP_EQUIPMENT_CHECK_RESULT_TYPE.valueOfDescription(equipmentCheck.getResultType())){ - case MesPcnExtConstWords.COMPARE_TYPE: - if(StringUtils.isEmpty(equipmentCheck.getResultValue())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - equipmentCheckMeta.setResultValue(""); - }else{ - try{ - Double.valueOf(equipmentCheck.getResultValue()); - }catch (Exception e){ - throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION.getCode(), "实际值不是数值型"); - } - //如果上限值和下限值为空 - if(StringUtils.isEmpty(equipmentCheckMeta.getUpLimit()) && StringUtils.isEmpty(equipmentCheckMeta.getDownLimit())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - }else if(!StringUtils.isEmpty(equipmentCheckMeta.getDownLimit()) && !StringUtils.isEmpty(equipmentCheckMeta.getUpLimit())){ - Double downLimit = Double.valueOf(equipmentCheckMeta.getDownLimit()); - Double upLimit = Double.valueOf(equipmentCheckMeta.getUpLimit()); - Double resultValue = Double.valueOf(equipmentCheck.getResultValue()); - //如果实际值在规定范围之内 - if(resultValue>= downLimit && resultValue<= upLimit){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - - if(StringUtils.isEmpty(equipmentCheck.getCheckResult())){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - }else if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - } else { - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - - }else{ - //实际值不在范围之内 - //如果点检结果是空的 - if(StringUtils.isEmpty(equipmentCheck.getCheckResult())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); - }else{ - //如果点检结果是10 - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - }else{ - //20 40 原值保存 - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - } - } - } else if(!StringUtils.isEmpty(equipmentCheckMeta.getDownLimit())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - if(Double.valueOf(equipmentCheck.getResultValue()) < Double.valueOf(equipmentCheckMeta.getDownLimit())){ - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); - }else{ - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - }else{ - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - }else{ - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - } - }else if(!StringUtils.isEmpty(equipmentCheckMeta.getUpLimit())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - if(Double.valueOf(equipmentCheck.getResultValue()) > Double.valueOf(equipmentCheckMeta.getUpLimit())){ - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); - }else{ - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - }else{ - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - }else{ - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - } - } - } - break; - case MesPcnExtConstWords.RESULT_TYPE: - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - break; - case MesPcnExtConstWords.EQUAL_TYPE: - //点检结果为空的时候 - if(StringUtils.isEmpty(equipmentCheckMeta.getStandardValue()) && StringUtils.isEmpty(equipmentCheck.getCheckResult())){ - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - }else{ - //结果不为空 - equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); - equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); - //标准值不为空 - if(!StringUtils.isEmpty(equipmentCheckMeta.getStandardValue())){ - //用户输入的标准值和之前设定的标准值都不为空 - if(equipmentCheckMeta.getStandardValue().equals(equipmentCheck.getResultValue())){ - if(!StringUtils.isEmpty(equipmentCheck.getCheckResult())){ - //当标准值一致,但点检结果为30时 - if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - }else{ - // 20 & 40 原值保存 - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - }else{ - // 标准值一致,点检结果为空 - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); - } - }else{ - //如果点检结果为空 - if(equipmentCheck.getCheckResult()==MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ - equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); - }else{ - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - } - }else{ - // 标准值为空 保存备注和结果 - equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); - } - } - break; - } - - mesOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECKING.getValue()); - ConvertBean.serviceModelUpdate(mesOrderJob,equipmentCheck.getCreateUser()); - mesOrderJobRepository.save(mesOrderJob); - ConvertBean.serviceModelUpdate(equipmentCheckMeta,equipmentCheck.getCreateUser()); - equipmentCheckMeta.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); - equDetailRepository.save(equipmentCheckMeta); - - } - - private MesWorkCenterExt getWorkCenter(String workCenterCode, String organizeCode) { - return workCenterRepository.getByProperty( - new String[]{MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED}, - new Object[]{workCenterCode, organizeCode, - CommonEnumUtil.IS_VAILD.VAILD.getValue(), - CommonEnumUtil.IS_DEAL.NO.getValue()}); - } - - /** - * 根据 - * - * @param id - * @param status - * @return - */ - @Override - public int updateIsValidById(long id, Integer status) { - //1、判断单据是否存在 - MesEpEquipmentCheckDetail equipmentCheck = equDetailRepository.getById(id); - if (ObjectUtils.isEmpty(equipmentCheck)) { - throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode(), "自动配置不存在"); - } - - return equDetailRepository.updateByProperties(new String[]{ MesPcnExtConstWords.ID}, new Object[]{id}, - new String[]{MesConstWords.IS_VALID, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, - new Object[]{status, AuthUtil.getSessionUser().getUserName(), TimeTool.getNowTime(true)}); - } - - @Override - public List queryCell(MesEpEquipmentCheckDetail detail) { - DdlPackBean packBean = MesHqlPack.getMesAllData(detail.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(detail.getWorkCellCode(), "workCellCode", packBean); - DdlPreparedPack.getStringEqualPack(detail.getWorkCenterCode(), "workCenterCode", packBean); - DdlPreparedPack.getStringEqualPack(detail.getOrderJobNo(), "orderJobNo", packBean); - List details = equDetailRepository.findByHqlWhere(packBean); - return details.stream().map(MesEpEquipmentCheckDetail::getWorkCellCode).distinct().collect(Collectors.toList()); - } - - @Override - public void generateWeekCheck(String organizeCode,String workCenterCode) { - generateOrderJob(organizeCode,workCenterCode,MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue()); - } - - @Override - public void generateMonthCheck(String organizeCode,String workCenterCode) { - generateOrderJob(organizeCode,workCenterCode,MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue()); - } - - //生产单据作业 - private void generateOrderJob(String organizeCode, String workCenterCode, String checkType) { - List mesEquipmentChecks = findEquByCenterCode(organizeCode, workCenterCode, checkType); - if (!CollectionUtils.isEmpty(mesEquipmentChecks)) { - MesWorkCenterExt workCenter = getWorkCenter(workCenterCode, organizeCode); - //根据设备编号来进行分组 - Map> resultMap = mesEquipmentChecks.stream().filter(mesEquipmentCheck -> mesEquipmentCheck.getEquNo() != null && !StringUtils.isEmpty(mesEquipmentCheck.getEquNo())).collect(Collectors.groupingBy(MesEpEquipmentCheck::getEquNo)); - for (String key: resultMap.keySet()){ - MesOrderJob newOrderJob = new MesOrderJob(); - newOrderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); - newOrderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue()); - newOrderJob.setOrderNo(getOrderNo(organizeCode)); - newOrderJob.setWorkCenterCode(workCenterCode); - newOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); - newOrderJob.setOrderDate(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setWorkTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setGenerateTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); - newOrderJob.setOrganizeCode(organizeCode); - newOrderJob.setIsValid(MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue()); - newOrderJob.setIsDeleted(MesEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - newOrderJob.setCreateDatetime(DateUtil.formatDate()); - newOrderJob.setModifyDatetime(DateUtil.formatDate()); - newOrderJob.setCheckType(checkType); - newOrderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.MANUALLY_CREATE.getValue()); - newOrderJob.setShiftCode(workCenter.getShiftCode()); - - MesOrderJob job = mesOrderJobRepository.save(newOrderJob); - - List epEquipmentChecks = resultMap.get(key); - - for (MesEpEquipmentCheck mesEquipmentCheck : epEquipmentChecks) { - MesEpEquipmentCheckDetail mesEquipmentCheckDetail = new MesEpEquipmentCheckDetail(); - mesEquipmentCheckDetail.setOrderJobNo(job.getOrderNo()); - BeanUtils.copyProperties(mesEquipmentCheck, mesEquipmentCheckDetail, MesPcnExtConstWords.ID); - mesEquipmentCheckDetail.setCheckType(checkType); - mesEquipmentCheckDetail.setEquNo(mesEquipmentCheck.getEquNo()); - mesEquipmentCheckDetail.setResultType(mesEquipmentCheck.getResultType()); - mesEquipmentCheckDetail.setEquName(mesEquipmentCheck.getEquName()); - mesEquipmentCheckDetail.setShiftCode(workCenter.getShiftCode()); - mesEquipmentCheckDetail.setStandardValue(mesEquipmentCheck.getStandardValue()); - mesEquipmentCheckDetail.setDownLimit(mesEquipmentCheck.getDownLimit()); - mesEquipmentCheckDetail.setUpLimit(mesEquipmentCheck.getUpLimit()); - mesEquipmentCheckDetail.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); - equDetailRepository.save(mesEquipmentCheckDetail); - } - } - } - - - } - - public List findEquByCenterCode(String organizeCode, String workCenterCode, String checkType) { - DdlPackBean ddlPackBean2 = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(checkType, "checkType", ddlPackBean2); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean2); - return epEquipmentCheckRepository.findByHqlWhere(ddlPackBean2); - - } - - private String getOrderNo(String organizeCode) { - String orderNo = ""; - BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); - if (oneCodeResult != null && oneCodeResult.isSuccess()) { - orderNo = oneCodeResult.getResultList().get(0).toString(); - } else { - throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(),ImppExceptionEnum.SYSTEM_EXCEPTION.getCode(),"生成唯一工单号失败"); - } - return orderNo; - } - - - /** - * 异常 - * - * @param softTypeCode softTypeCode - * @param errorDetailString 错误消息字符串 - * @param imppExceptionEnumCode 异常代码 - * @param args 参数 - */ - private void throwImppException(String softTypeCode, String errorDetailString, String imppExceptionEnumCode, Object... args) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(softTypeCode) - .setErrorCode(imppExceptionEnumCode) - .setErrorDetail(errorDetailString, args) - .build(); - } -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.ep; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.ep.IEpEquipmentCheckDetailService; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheck; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEpEquipmentCheckDetail; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOrderJob; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterExt; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpEquipmentCheckDetailModel; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesEpEquipmentCheckDetailRepository; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesEpEquipmentCheckRepository; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOrderJobRepository; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesWorkCenterExtRepository; +//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.mes.pcn.util.DateUtil; +//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.BaseResultBean; +//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.enumutil.MesEnumUtil; +//import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +//import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +//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.BeanUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Service; +//import org.springframework.util.CollectionUtils; +//import org.springframework.util.ObjectUtils; +//import org.springframework.util.StringUtils; +// +//import java.util.ArrayList; +//import java.util.Date; +//import java.util.List; +//import java.util.Map; +//import java.util.stream.Collectors; +// +///** +// * @PROJECT_NAME: i3plus-mes-panasonic-dev +// * @DESCRIPTION: +// * @USER: xinwang.yi +// * @DATE: 2021-12-14 10:32 +// */ +//@Service +//public class EpEquipmentCheckDetailService implements IEpEquipmentCheckDetailService { +// +// @Autowired +// private MesEpEquipmentCheckRepository epEquipmentCheckRepository; +// +// @Autowired +// private MesEpEquipmentCheckDetailRepository equDetailRepository; +// +// @Autowired +// private MesOrderJobRepository mesOrderJobRepository; +// @Autowired +// private MesWorkCenterExtRepository workCenterRepository; +// @Autowired +// private ISyncFuncService syncFuncService; +// +// @Override +// public ListPager queryByPager(MesEpEquipmentCheckDetail equipmentCheck, Pager pager) { +// String workCenterCode = equipmentCheck.getWorkCenterCode(); +// String organizeCode = equipmentCheck.getOrganizeCode(); +// DdlPackBean packBean = MesHqlPack.getMesAllData(organizeCode); +// DdlPreparedPack.getStringEqualPack(equipmentCheck.getOrderJobNo(), MesPcnExtConstWords.ORDER_JOB_NO, packBean); +// DdlPreparedPack.getStringEqualPack(equipmentCheck.getWorkCellCode(), "workCellCode", packBean); +// +// DdlPreparedPack.getNumEqualPack(equipmentCheck.getIsValid(), MesPcnExtConstWords.IS_VALID, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// pager = PagerHelper.getPager(pager, equDetailRepository.findByHqlWhereCount(packBean)); +// List equipmentCheckDetails = equDetailRepository.findByHqlWherePage(packBean, pager); +// List epEquipmentCheckDetailModels = new ArrayList<>(); +// for(MesEpEquipmentCheckDetail epEquipmentCheckDetail: equipmentCheckDetails){ +// EpEquipmentCheckDetailModel epEquipmentCheckDetailModel = new EpEquipmentCheckDetailModel(); +// BeanUtils.copyProperties(epEquipmentCheckDetail, epEquipmentCheckDetailModel); +// epEquipmentCheckDetailModel.setResutlTypeName(MesPcnExtEnumUtil.EP_EQUIPMENT_CHECK_RESULT_TYPE.valueOfDescription(epEquipmentCheckDetailModel.getResultType())); +// epEquipmentCheckDetailModels.add(epEquipmentCheckDetailModel); +// } +// return new ListPager(epEquipmentCheckDetailModels, pager); +// } +// +// /** +// * 新增 +// * +// * @param equipmentCheck +// * @return +// */ +// @Override +// public MesEpEquipmentCheckDetail insert(MesEpEquipmentCheckDetail equipmentCheck) { +// ConvertBean.modelInitialize(equipmentCheck, AuthUtil.getSessionUser()); +// equipmentCheck.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); +// return equDetailRepository.insert(equipmentCheck); +// } +// +// /** +// * 修改 +// * +// * @param equipmentCheck +// * @return +// */ +// @Override +// public void update(MesEpEquipmentCheckDetail equipmentCheck) { +// //1、判断单据是否存在 +// Long id = equipmentCheck.getId(); +// MesEpEquipmentCheckDetail equipmentCheckMeta = equDetailRepository.getById(id); +// if (ObjectUtils.isEmpty(equipmentCheckMeta)) { +// throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode(), "点检信息不存在"); +// } +// +// ConvertBean.serviceModelUpdate(equipmentCheckMeta, equipmentCheck.getModifyUser()); +// equipmentCheckMeta.setSpotCheckTime(equipmentCheckMeta.getModifyDatetime()); +// equipmentCheckMeta.setSpotCheckUser(equipmentCheckMeta.getModifyUser()); +// +// //根据单号查询任务主表信息 +// String orderJobNo = equipmentCheckMeta.getOrderJobNo(); +// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(equipmentCheck.getOrganizeCode()); +// DdlPreparedPack.getStringEqualPack(orderJobNo, MesPcnExtConstWords.ORDER_NO, ddlPackBean); +// MesOrderJob mesOrderJob = mesOrderJobRepository.getByProperty(ddlPackBean); +// +// if(null == mesOrderJob){ +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) +// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) +// .setErrorDetail("单据【%s】不存在",orderJobNo) +// .build(); +// } +// +// switch (MesPcnExtEnumUtil.EP_EQUIPMENT_CHECK_RESULT_TYPE.valueOfDescription(equipmentCheck.getResultType())){ +// case MesPcnExtConstWords.COMPARE_TYPE: +// if(StringUtils.isEmpty(equipmentCheck.getResultValue())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// equipmentCheckMeta.setResultValue(""); +// }else{ +// try{ +// Double.valueOf(equipmentCheck.getResultValue()); +// }catch (Exception e){ +// throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION.getCode(), "实际值不是数值型"); +// } +// //如果上限值和下限值为空 +// if(StringUtils.isEmpty(equipmentCheckMeta.getUpLimit()) && StringUtils.isEmpty(equipmentCheckMeta.getDownLimit())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// }else if(!StringUtils.isEmpty(equipmentCheckMeta.getDownLimit()) && !StringUtils.isEmpty(equipmentCheckMeta.getUpLimit())){ +// Double downLimit = Double.valueOf(equipmentCheckMeta.getDownLimit()); +// Double upLimit = Double.valueOf(equipmentCheckMeta.getUpLimit()); +// Double resultValue = Double.valueOf(equipmentCheck.getResultValue()); +// //如果实际值在规定范围之内 +// if(resultValue>= downLimit && resultValue<= upLimit){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// +// if(StringUtils.isEmpty(equipmentCheck.getCheckResult())){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// }else if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// } else { +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// +// }else{ +// //实际值不在范围之内 +// //如果点检结果是空的 +// if(StringUtils.isEmpty(equipmentCheck.getCheckResult())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); +// }else{ +// //如果点检结果是10 +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// }else{ +// //20 40 原值保存 +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// } +// } +// } else if(!StringUtils.isEmpty(equipmentCheckMeta.getDownLimit())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// if(Double.valueOf(equipmentCheck.getResultValue()) < Double.valueOf(equipmentCheckMeta.getDownLimit())){ +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); +// }else{ +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// }else{ +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// }else{ +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// } +// }else if(!StringUtils.isEmpty(equipmentCheckMeta.getUpLimit())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// if(Double.valueOf(equipmentCheck.getResultValue()) > Double.valueOf(equipmentCheckMeta.getUpLimit())){ +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); +// }else{ +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// }else{ +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// }else{ +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// } +// } +// } +// break; +// case MesPcnExtConstWords.RESULT_TYPE: +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// break; +// case MesPcnExtConstWords.EQUAL_TYPE: +// //点检结果为空的时候 +// if(StringUtils.isEmpty(equipmentCheckMeta.getStandardValue()) && StringUtils.isEmpty(equipmentCheck.getCheckResult())){ +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// }else{ +// //结果不为空 +// equipmentCheckMeta.setRemark(equipmentCheck.getRemark()); +// equipmentCheckMeta.setResultValue(equipmentCheck.getResultValue()); +// //标准值不为空 +// if(!StringUtils.isEmpty(equipmentCheckMeta.getStandardValue())){ +// //用户输入的标准值和之前设定的标准值都不为空 +// if(equipmentCheckMeta.getStandardValue().equals(equipmentCheck.getResultValue())){ +// if(!StringUtils.isEmpty(equipmentCheck.getCheckResult())){ +// //当标准值一致,但点检结果为30时 +// if(equipmentCheck.getCheckResult() == MesPcnExtConstWords.NG){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// }else{ +// // 20 & 40 原值保存 +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// }else{ +// // 标准值一致,点检结果为空 +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.OK); +// } +// }else{ +// //如果点检结果为空 +// if(equipmentCheck.getCheckResult()==MesPcnExtConstWords.OK && !MesPcnExtConstWords.INCONFORMITY.equals(equipmentCheck.getRemark())){ +// equipmentCheckMeta.setCheckResult(MesPcnExtConstWords.NG); +// }else{ +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// } +// }else{ +// // 标准值为空 保存备注和结果 +// equipmentCheckMeta.setCheckResult(equipmentCheck.getCheckResult()); +// } +// } +// break; +// } +// +// mesOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECKING.getValue()); +// ConvertBean.serviceModelUpdate(mesOrderJob,equipmentCheck.getCreateUser()); +// mesOrderJobRepository.save(mesOrderJob); +// ConvertBean.serviceModelUpdate(equipmentCheckMeta,equipmentCheck.getCreateUser()); +// equipmentCheckMeta.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); +// equDetailRepository.save(equipmentCheckMeta); +// +// } +// +// private MesWorkCenterExt getWorkCenter(String workCenterCode, String organizeCode) { +// return workCenterRepository.getByProperty( +// new String[]{MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED}, +// new Object[]{workCenterCode, organizeCode, +// CommonEnumUtil.IS_VAILD.VAILD.getValue(), +// CommonEnumUtil.IS_DEAL.NO.getValue()}); +// } +// +// /** +// * 根据 +// * +// * @param id +// * @param status +// * @return +// */ +// @Override +// public int updateIsValidById(long id, Integer status) { +// //1、判断单据是否存在 +// MesEpEquipmentCheckDetail equipmentCheck = equDetailRepository.getById(id); +// if (ObjectUtils.isEmpty(equipmentCheck)) { +// throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(), ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode(), "自动配置不存在"); +// } +// +// return equDetailRepository.updateByProperties(new String[]{ MesPcnExtConstWords.ID}, new Object[]{id}, +// new String[]{MesConstWords.IS_VALID, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, +// new Object[]{status, AuthUtil.getSessionUser().getUserName(), TimeTool.getNowTime(true)}); +// } +// +// @Override +// public List queryCell(MesEpEquipmentCheckDetail detail) { +// DdlPackBean packBean = MesHqlPack.getMesAllData(detail.getOrganizeCode()); +// DdlPreparedPack.getStringEqualPack(detail.getWorkCellCode(), "workCellCode", packBean); +// DdlPreparedPack.getStringEqualPack(detail.getWorkCenterCode(), "workCenterCode", packBean); +// DdlPreparedPack.getStringEqualPack(detail.getOrderJobNo(), "orderJobNo", packBean); +// List details = equDetailRepository.findByHqlWhere(packBean); +// return details.stream().map(MesEpEquipmentCheckDetail::getWorkCellCode).distinct().collect(Collectors.toList()); +// } +// +// @Override +// public void generateWeekCheck(String organizeCode,String workCenterCode) { +// generateOrderJob(organizeCode,workCenterCode,MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue()); +// } +// +// @Override +// public void generateMonthCheck(String organizeCode,String workCenterCode) { +// generateOrderJob(organizeCode,workCenterCode,MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue()); +// } +// +// //生产单据作业 +// private void generateOrderJob(String organizeCode, String workCenterCode, String checkType) { +// List mesEquipmentChecks = findEquByCenterCode(organizeCode, workCenterCode, checkType); +// if (!CollectionUtils.isEmpty(mesEquipmentChecks)) { +// MesWorkCenterExt workCenter = getWorkCenter(workCenterCode, organizeCode); +// //根据设备编号来进行分组 +// Map> resultMap = mesEquipmentChecks.stream().filter(mesEquipmentCheck -> mesEquipmentCheck.getEquNo() != null && !StringUtils.isEmpty(mesEquipmentCheck.getEquNo())).collect(Collectors.groupingBy(MesEpEquipmentCheck::getEquNo)); +// for (String key: resultMap.keySet()){ +// MesOrderJob newOrderJob = new MesOrderJob(); +// newOrderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); +// newOrderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue()); +// newOrderJob.setOrderNo(getOrderNo(organizeCode)); +// newOrderJob.setWorkCenterCode(workCenterCode); +// newOrderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); +// newOrderJob.setOrderDate(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setWorkTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setGenerateTime(DateUtil.formatDate("yyyy-MM-dd", new Date())); +// newOrderJob.setOrganizeCode(organizeCode); +// newOrderJob.setIsValid(MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue()); +// newOrderJob.setIsDeleted(MesEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// newOrderJob.setCreateDatetime(DateUtil.formatDate()); +// newOrderJob.setModifyDatetime(DateUtil.formatDate()); +// newOrderJob.setCheckType(checkType); +// newOrderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.MANUALLY_CREATE.getValue()); +// newOrderJob.setShiftCode(workCenter.getShiftCode()); +// +// MesOrderJob job = mesOrderJobRepository.save(newOrderJob); +// +// List epEquipmentChecks = resultMap.get(key); +// +// for (MesEpEquipmentCheck mesEquipmentCheck : epEquipmentChecks) { +// MesEpEquipmentCheckDetail mesEquipmentCheckDetail = new MesEpEquipmentCheckDetail(); +// mesEquipmentCheckDetail.setOrderJobNo(job.getOrderNo()); +// BeanUtils.copyProperties(mesEquipmentCheck, mesEquipmentCheckDetail, MesPcnExtConstWords.ID); +// mesEquipmentCheckDetail.setCheckType(checkType); +// mesEquipmentCheckDetail.setEquNo(mesEquipmentCheck.getEquNo()); +// mesEquipmentCheckDetail.setResultType(mesEquipmentCheck.getResultType()); +// mesEquipmentCheckDetail.setEquName(mesEquipmentCheck.getEquName()); +// mesEquipmentCheckDetail.setShiftCode(workCenter.getShiftCode()); +// mesEquipmentCheckDetail.setStandardValue(mesEquipmentCheck.getStandardValue()); +// mesEquipmentCheckDetail.setDownLimit(mesEquipmentCheck.getDownLimit()); +// mesEquipmentCheckDetail.setUpLimit(mesEquipmentCheck.getUpLimit()); +// mesEquipmentCheckDetail.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); +// equDetailRepository.save(mesEquipmentCheckDetail); +// } +// } +// } +// +// +// } +// +// public List findEquByCenterCode(String organizeCode, String workCenterCode, String checkType) { +// DdlPackBean ddlPackBean2 = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getStringEqualPack(checkType, "checkType", ddlPackBean2); +// DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean2); +// return epEquipmentCheckRepository.findByHqlWhere(ddlPackBean2); +// +// } +// +// private String getOrderNo(String organizeCode) { +// String orderNo = ""; +// BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); +// if (oneCodeResult != null && oneCodeResult.isSuccess()) { +// orderNo = oneCodeResult.getResultList().get(0).toString(); +// } else { +// throwImppException(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode(),ImppExceptionEnum.SYSTEM_EXCEPTION.getCode(),"生成唯一工单号失败"); +// } +// return orderNo; +// } +// +// +// /** +// * 异常 +// * +// * @param softTypeCode softTypeCode +// * @param errorDetailString 错误消息字符串 +// * @param imppExceptionEnumCode 异常代码 +// * @param args 参数 +// */ +// private void throwImppException(String softTypeCode, String errorDetailString, String imppExceptionEnumCode, Object... args) { +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(softTypeCode) +// .setErrorCode(imppExceptionEnumCode) +// .setErrorDetail(errorDetailString, args) +// .build(); +// } +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/QManageOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/QManageOrderService.java index 34ffdb8..d0afe3c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/QManageOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/QManageOrderService.java @@ -1,257 +1,257 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; - -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.model.GenSerialNoModel; -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 java.util.*; -import java.util.stream.Collectors; - -/** - * @author wangjie - * @version 1.0 - * @date 2021/1/13 9:28 - **/ -@Slf4j -@Service("qManageOrderService") -public class QManageOrderService implements IWorkOrderStartService { - - @Autowired - private MesWorkCenterExtRepository workCenterExtRepository; - - @Autowired - private MesOrderRuleRepository orderRuleRepository; - - @Autowired - private MesProcessCellRepository processCellRepository; - - @Autowired - private MesProcessQManageRepository processQManageRepository; - - @Autowired - private MesOrderJobRepository orderJobRepository; - - @Autowired - private MesQManageTaskDetailRepository qManageTaskDetailRepository; - - @Autowired - private ISyncFuncService syncFuncService; - - @Autowired - private ICheckErrorLogService checkErrorLogService; - - @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.Q_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("Q管理生成单据:工单[%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("Q管理生成单据:工单[%s]生产线[%s]未启动班次", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); - 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.Q_MANAGE.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("Q管理生成单据:工单[%s]未配置生产线代码[%s][工单创建][Q管理]班次为[%s]或班次为空的单据规则信息,请检查", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode(), workCenterExt.getShiftCode()); - log.info(msg); - checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); - return; - } - - List processCellList = processCellRepository.findByProperty( - 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()}); - Map> processCodeMap = CollectionUtils.isEmpty(processCellList) ? null : - processCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(MesProcessCell::getProcessCode)); - if (CollectionUtils.isEmpty(processCodeMap)) { - msg = String.format("Q管理生成单据:工单[%s]生产线代码[%s]未维护工序工位信息", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); - log.info(msg); - checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); - return; - } - List processCodeList = new ArrayList<>(processCodeMap.keySet()); - - DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(workOrderExt.getPartNo(), MesPcnExtConstWords.PART_NO, packBean); - DdlPreparedPack.getInPackList(processCodeList, MesPcnExtConstWords.PROCESS_CODE, packBean); - List processQManageList = processQManageRepository.findByHqlWhere(packBean); - processQManageList = CollectionUtils.isEmpty(processQManageList) ? null :processQManageList.stream().filter(o-> StringUtils.isEmpty(o.getCheckType()) || o.getCheckType().equals(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.ORDER_CHECK.getValue())).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(processQManageList)) { - msg = String.format("Q管理生成单据:工单[%s]物料编码[%s]与工序代码%s未配置Q管理项目信息,请检查", workOrderExt.getOrderNo(), workOrderExt.getPartNo(), processCodeList.toString()); - log.info(msg); - checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); - return; - } - - //根据单据类型【Q管理】、产线代码和产线信息中的班次代码、生产日期获取Q管理单信息 - packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.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)) { - String orderNo = insertMesOrderJob(workOrderExt, workCenterExt, orderRuleOp.get().getTaskType(), userInfo, checkErrorLog); - if (StringUtils.isEmpty(orderNo)) { - return; - } - insertMesQManageTaskDetail(orderNo, processQManageList, processCodeMap, userInfo); - }else { - msg = String.format("Q管理点检生成单据:工单[%s]已经生成过Q管理作业点检单", workOrderExt.getOrderNo()); - log.info(msg); - checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); - return; - } - /*else { - //根据作业单号查询明细数据 - List qManageTaskDetailList = new ArrayList<>(); - List orderNoList = orderJobList.stream().filter(o -> null != o).map(MesOrderJob::getOrderNo).collect(Collectors.toList()); - for (String orderNo : orderNoList) { - if (StringUtils.isEmpty(orderNo)) { - continue; - } - packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderNo, MesPcnExtConstWords.ORDER_NO, packBean); - qManageTaskDetailList.addAll(qManageTaskDetailRepository.findByHqlWhere(packBean)); - } - - Map> processQManageDbMap = CollectionUtils.isEmpty(processQManageList) ? null : - processQManageList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND) - .add(o.getProcessCode()).add(o.getPartNo()).add(o.getManageProjects()).add(o.getScrewType()).add(o.getTighteningTorque()).toString())); - - Map> qManageTaskDetailDbMap = CollectionUtils.isEmpty(qManageTaskDetailList) ? null : - qManageTaskDetailList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND) - .add(o.getProcessCode()).add(o.getPartNo()).add(o.getManageProjects()).add(o.getScrewType()).add(o.getTighteningTorque()).toString())); - - List newProcessQManageList = null; - //获取两个存在差异的数据 - for (String key : processQManageDbMap.keySet()) { - if (CollectionUtils.isEmpty(qManageTaskDetailDbMap) || !qManageTaskDetailDbMap.containsKey(key)) { - if (CollectionUtils.isEmpty(newProcessQManageList)) { - newProcessQManageList = new ArrayList<>(); - } - newProcessQManageList.addAll(processQManageDbMap.get(key)); - } - } - - if (!CollectionUtils.isEmpty(newProcessQManageList)) { - String orderNo = insertMesOrderJob(workOrderExt, workCenterExt, orderRuleOp.get().getTaskType(), userInfo, checkErrorLog); - if (StringUtils.isEmpty(orderNo)) { - return; - } - insertMesQManageTaskDetail(orderNo, newProcessQManageList, processCodeMap, userInfo); - } - }*/ - } catch (Exception e) { - checkErrorLogService.insertCheckErrorLog(checkErrorLog, e.getMessage(), userInfo); - log.info(e.getMessage()); - } - - } - - - private String insertMesOrderJob(MesWorkOrderExt workOrderExt, MesWorkCenterExt workCenterExt, Integer taskType, String userInfo, MesCheckErrorLog checkErrorLog){ - List orderNoList = getOrderNoByRuleCode(1, - MesPcnExtConstWords.ORDER_NO_RULE, new GenSerialNoModel(), userInfo, workOrderExt.getOrganizeCode()); - if (CollectionUtils.isEmpty(orderNoList)) { - String msg = String.format("Q管理生成单据:工单[%s]单据编号未生成成功", workOrderExt.getOrderNo()); - log.info(msg); - checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); - return null; - } - MesOrderJob orderJob = new MesOrderJob(); - orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); - orderJob.setTaskType(taskType); - orderJob.setOrderNo(orderNoList.get(0)); - orderJob.setWorkCenterCode(workOrderExt.getWorkCenterCode()); - orderJob.setShiftCode(workCenterExt.getShiftCode()); - orderJob.setWorkOrderNo(workOrderExt.getOrderNo()); - orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); - orderJob.setWorkTime(workCenterExt.getWorkTime()); - orderJob.setOrderDate(TimeTool.getToday()); - orderJob.setGenerateTime(TimeTool.getNowTime(true)); - orderJob.setOrganizeCode(workOrderExt.getOrganizeCode()); - ConvertBean.serviceModelInitialize(orderJob, userInfo); - orderJobRepository.insert(orderJob); - return orderJob.getOrderNo(); - } - - private void insertMesQManageTaskDetail(String orderNo, List processQManageList, Map> processCodeMap, String userInfo){ - for(MesProcessQManage processQManage : processQManageList){ - if (null == processQManage) { - continue; - } - MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); - BeanUtils.copyProperties(processQManage, qManageTaskDetail, MesPcnExtConstWords.ID); - qManageTaskDetail.setOrderNo(orderNo); - - List processCellList = processCodeMap.get(processQManage.getProcessCode()); - if (!CollectionUtils.isEmpty(processCellList)) { - qManageTaskDetail.setWorkCellCode(processCellList.get(0).getWorkCellCode()); - qManageTaskDetail.setWorkCellName(processCellList.get(0).getWorkCellName()); - qManageTaskDetail.setProcessName(processCellList.get(0).getProcessName()); - } - qManageTaskDetail.setIsTeamConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - qManageTaskDetail.setIsQualityConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - qManageTaskDetail.setCheckType(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.ORDER_CHECK.getValue()); - ConvertBean.serviceModelInitialize(qManageTaskDetail, userInfo); - qManageTaskDetailRepository.insert(qManageTaskDetail); - } - } - - public 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; - } - } - -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; +// +//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.model.GenSerialNoModel; +//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 java.util.*; +//import java.util.stream.Collectors; +// +///** +// * @author wangjie +// * @version 1.0 +// * @date 2021/1/13 9:28 +// **/ +//@Slf4j +//@Service("qManageOrderService") +//public class QManageOrderService implements IWorkOrderStartService { +// +// @Autowired +// private MesWorkCenterExtRepository workCenterExtRepository; +// +// @Autowired +// private MesOrderRuleRepository orderRuleRepository; +// +// @Autowired +// private MesProcessCellRepository processCellRepository; +// +// @Autowired +// private MesProcessQManageRepository processQManageRepository; +// +// @Autowired +// private MesOrderJobRepository orderJobRepository; +// +// @Autowired +// private MesQManageTaskDetailRepository qManageTaskDetailRepository; +// +// @Autowired +// private ISyncFuncService syncFuncService; +// +// @Autowired +// private ICheckErrorLogService checkErrorLogService; +// +// @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.Q_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("Q管理生成单据:工单[%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("Q管理生成单据:工单[%s]生产线[%s]未启动班次", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); +// 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.Q_MANAGE.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("Q管理生成单据:工单[%s]未配置生产线代码[%s][工单创建][Q管理]班次为[%s]或班次为空的单据规则信息,请检查", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode(), workCenterExt.getShiftCode()); +// log.info(msg); +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); +// return; +// } +// +// List processCellList = processCellRepository.findByProperty( +// 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()}); +// Map> processCodeMap = CollectionUtils.isEmpty(processCellList) ? null : +// processCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(MesProcessCell::getProcessCode)); +// if (CollectionUtils.isEmpty(processCodeMap)) { +// msg = String.format("Q管理生成单据:工单[%s]生产线代码[%s]未维护工序工位信息", workOrderExt.getOrderNo(), workOrderExt.getWorkCenterCode()); +// log.info(msg); +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); +// return; +// } +// List processCodeList = new ArrayList<>(processCodeMap.keySet()); +// +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); +// DdlPreparedPack.getStringEqualPack(workOrderExt.getPartNo(), MesPcnExtConstWords.PART_NO, packBean); +// DdlPreparedPack.getInPackList(processCodeList, MesPcnExtConstWords.PROCESS_CODE, packBean); +// List processQManageList = processQManageRepository.findByHqlWhere(packBean); +// processQManageList = CollectionUtils.isEmpty(processQManageList) ? null :processQManageList.stream().filter(o-> StringUtils.isEmpty(o.getCheckType()) || o.getCheckType().equals(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.ORDER_CHECK.getValue())).collect(Collectors.toList()); +// if (CollectionUtils.isEmpty(processQManageList)) { +// msg = String.format("Q管理生成单据:工单[%s]物料编码[%s]与工序代码%s未配置Q管理项目信息,请检查", workOrderExt.getOrderNo(), workOrderExt.getPartNo(), processCodeList.toString()); +// log.info(msg); +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); +// return; +// } +// +// //根据单据类型【Q管理】、产线代码和产线信息中的班次代码、生产日期获取Q管理单信息 +// packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.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)) { +// String orderNo = insertMesOrderJob(workOrderExt, workCenterExt, orderRuleOp.get().getTaskType(), userInfo, checkErrorLog); +// if (StringUtils.isEmpty(orderNo)) { +// return; +// } +// insertMesQManageTaskDetail(orderNo, processQManageList, processCodeMap, userInfo); +// }else { +// msg = String.format("Q管理点检生成单据:工单[%s]已经生成过Q管理作业点检单", workOrderExt.getOrderNo()); +// log.info(msg); +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); +// return; +// } +// /*else { +// //根据作业单号查询明细数据 +// List qManageTaskDetailList = new ArrayList<>(); +// List orderNoList = orderJobList.stream().filter(o -> null != o).map(MesOrderJob::getOrderNo).collect(Collectors.toList()); +// for (String orderNo : orderNoList) { +// if (StringUtils.isEmpty(orderNo)) { +// continue; +// } +// packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); +// DdlPreparedPack.getStringEqualPack(orderNo, MesPcnExtConstWords.ORDER_NO, packBean); +// qManageTaskDetailList.addAll(qManageTaskDetailRepository.findByHqlWhere(packBean)); +// } +// +// Map> processQManageDbMap = CollectionUtils.isEmpty(processQManageList) ? null : +// processQManageList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND) +// .add(o.getProcessCode()).add(o.getPartNo()).add(o.getManageProjects()).add(o.getScrewType()).add(o.getTighteningTorque()).toString())); +// +// Map> qManageTaskDetailDbMap = CollectionUtils.isEmpty(qManageTaskDetailList) ? null : +// qManageTaskDetailList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND) +// .add(o.getProcessCode()).add(o.getPartNo()).add(o.getManageProjects()).add(o.getScrewType()).add(o.getTighteningTorque()).toString())); +// +// List newProcessQManageList = null; +// //获取两个存在差异的数据 +// for (String key : processQManageDbMap.keySet()) { +// if (CollectionUtils.isEmpty(qManageTaskDetailDbMap) || !qManageTaskDetailDbMap.containsKey(key)) { +// if (CollectionUtils.isEmpty(newProcessQManageList)) { +// newProcessQManageList = new ArrayList<>(); +// } +// newProcessQManageList.addAll(processQManageDbMap.get(key)); +// } +// } +// +// if (!CollectionUtils.isEmpty(newProcessQManageList)) { +// String orderNo = insertMesOrderJob(workOrderExt, workCenterExt, orderRuleOp.get().getTaskType(), userInfo, checkErrorLog); +// if (StringUtils.isEmpty(orderNo)) { +// return; +// } +// insertMesQManageTaskDetail(orderNo, newProcessQManageList, processCodeMap, userInfo); +// } +// }*/ +// } catch (Exception e) { +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, e.getMessage(), userInfo); +// log.info(e.getMessage()); +// } +// +// } +// +// +// private String insertMesOrderJob(MesWorkOrderExt workOrderExt, MesWorkCenterExt workCenterExt, Integer taskType, String userInfo, MesCheckErrorLog checkErrorLog){ +// List orderNoList = getOrderNoByRuleCode(1, +// MesPcnExtConstWords.ORDER_NO_RULE, new GenSerialNoModel(), userInfo, workOrderExt.getOrganizeCode()); +// if (CollectionUtils.isEmpty(orderNoList)) { +// String msg = String.format("Q管理生成单据:工单[%s]单据编号未生成成功", workOrderExt.getOrderNo()); +// log.info(msg); +// checkErrorLogService.insertCheckErrorLog(checkErrorLog, msg, userInfo); +// return null; +// } +// MesOrderJob orderJob = new MesOrderJob(); +// orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); +// orderJob.setTaskType(taskType); +// orderJob.setOrderNo(orderNoList.get(0)); +// orderJob.setWorkCenterCode(workOrderExt.getWorkCenterCode()); +// orderJob.setShiftCode(workCenterExt.getShiftCode()); +// orderJob.setWorkOrderNo(workOrderExt.getOrderNo()); +// orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); +// orderJob.setWorkTime(workCenterExt.getWorkTime()); +// orderJob.setOrderDate(TimeTool.getToday()); +// orderJob.setGenerateTime(TimeTool.getNowTime(true)); +// orderJob.setOrganizeCode(workOrderExt.getOrganizeCode()); +// ConvertBean.serviceModelInitialize(orderJob, userInfo); +// orderJobRepository.insert(orderJob); +// return orderJob.getOrderNo(); +// } +// +// private void insertMesQManageTaskDetail(String orderNo, List processQManageList, Map> processCodeMap, String userInfo){ +// for(MesProcessQManage processQManage : processQManageList){ +// if (null == processQManage) { +// continue; +// } +// MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); +// BeanUtils.copyProperties(processQManage, qManageTaskDetail, MesPcnExtConstWords.ID); +// qManageTaskDetail.setOrderNo(orderNo); +// +// List processCellList = processCodeMap.get(processQManage.getProcessCode()); +// if (!CollectionUtils.isEmpty(processCellList)) { +// qManageTaskDetail.setWorkCellCode(processCellList.get(0).getWorkCellCode()); +// qManageTaskDetail.setWorkCellName(processCellList.get(0).getWorkCellName()); +// qManageTaskDetail.setProcessName(processCellList.get(0).getProcessName()); +// } +// qManageTaskDetail.setIsTeamConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// qManageTaskDetail.setIsQualityConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// qManageTaskDetail.setCheckType(MesPcnExtEnumUtil.MES_Q_MANAGER_CHECK_TYPE.ORDER_CHECK.getValue()); +// ConvertBean.serviceModelInitialize(qManageTaskDetail, userInfo); +// qManageTaskDetailRepository.insert(qManageTaskDetail); +// } +// } +// +// public 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-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpEquipmentCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpEquipmentCheckOrderService.java index d31e3c1..688e748 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpEquipmentCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpEquipmentCheckOrderService.java @@ -1,297 +1,297 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job.ep; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.IWorkCenterExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.job.ep.IEpEquipmentCheckOrderService; -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.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; -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 java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @PROJECT_NAME: i3plus-mes-panasonic-dev - * @DESCRIPTION: - * @USER: xinwang.yi - * @DATE: 2021-12-13 13:41 - */ -@Slf4j -@Service -public class EpEquipmentCheckOrderService implements IEpEquipmentCheckOrderService { - @Autowired - private MesEpEquipmentCheckRepository equipmentCheckRepository; - - @Autowired - private MesOrderRuleRepository orderRuleRepository; - - @Autowired - private MesOrderJobRepository orderJobRepository; - - @Autowired - private MesWorkOrderExtRepository workOrderExtRepository; - - @Autowired - private MesEpEquipmentCheckDetailRepository equipmentCheckDetailRepository; - - @Autowired - private IWorkCenterExtService workCenterExtService; - - @Autowired - private ISyncFuncService syncFuncService; - - @Override - public void doHandleEquipmentCheckOrder(String organizeCode) { - List checkTypeList = getCheckTypelist(); - - for (String checkType : checkTypeList) { - if (StringUtils.isEmpty(checkType)) { - continue; - } - Boolean isSuccess = false; - List equipmentCheckList = getEquipmentCheckList(organizeCode, checkType); - if (CollectionUtils.isEmpty(equipmentCheckList)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,未配置[{}]类型的设备点检项目", - MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType)); - continue; - } - List workCenterCodeList = (equipmentCheckList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()))) - .map(MesEpEquipmentCheck::getWorkCenterCode).collect(Collectors.toList())) - .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成包含以下生产线{}", - MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), workCenterCodeList.toString()); - for (String workCenterCode : workCenterCodeList) { - if (StringUtils.isEmpty(workCenterCode)) { - continue; - } - List orderRuleList = getOrderRuleList(organizeCode, workCenterCode, checkType); - if (CollectionUtils.isEmpty(orderRuleList)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成,生产线[{}]未配置单据规则", - MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), workCenterCode); - continue; - } - - List workOrderExtList = null; - if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { - workOrderExtList = findWorkOrderList(organizeCode, workCenterCode); - } - - for (MesOrderRule orderRule : orderRuleList) { - if (null == orderRule || StringUtils.isEmpty(orderRule.getProduceTime())) { - continue; - } - Boolean flag = false; - String produceTime = orderRule.getProduceTime() + MesPcnExtConstWords.APPEND_SECONDS; - String shiftCode = getCurShiftCode(organizeCode, workCenterCode, TimeTool.getToday()); - if (StringUtils.isEmpty(orderRule.getShiftCode()) || StringUtils.isEmpty(shiftCode)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]设备点检单据存在生成时间[{}]的单据未配置班次或生产线未启动班次", workCenterCode, produceTime); - continue; - } - if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { - if (TimeTool.stringParseToDate(TimeTool.getNowTime(MesPcnExtConstWords.TIME_FORMAT)).compareTo(TimeTool.stringParseToDate(produceTime)) >= 0) { - List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, checkType, produceTime); - if (CollectionUtils.isEmpty(orderJobList)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", - workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); - if (CollectionUtils.isEmpty(workOrderExtList)) { - log.info("Pcn处理设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据,但未查询到启动或下达的工单", - workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); - continue; - } - flag = true; - } - } - } else { - List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, checkType, produceTime); - if (CollectionUtils.isEmpty(orderJobList)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", - workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); - flag = true; - } - } - - if (flag) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]正在生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", - workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); - List equipmentCheckListTemp = equipmentCheckList.stream().filter(o -> (null != o && o.getWorkCenterCode().equals(workCenterCode))).collect(Collectors.toList()); - Map> resultMap = equipmentCheckListTemp.stream().filter(mesEquipmentCheck -> mesEquipmentCheck != null && !StringUtils.isEmpty(mesEquipmentCheck.getEquNo())).collect(Collectors.groupingBy(MesEpEquipmentCheck::getEquNo)); - - List orderNoList= getOrderNo(organizeCode,resultMap.size()); - if (CollectionUtils.isEmpty(orderNoList)) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]生成类型[{}]生成时间[{}]班次[{}]的设备点检单据时生成单据号失败", - workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); - continue; - } - insertEquipmentCheckOrder(organizeCode, workCenterCode, shiftCode, checkType, produceTime, orderNoList, resultMap); - isSuccess = true; - } - } - } - - if (isSuccess) { - log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成成功", - MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType)); - break; - } - } - } - - private String getCurShiftCode(String organizeCode, String workCenterCode, String workTime) { - MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterAndTime(organizeCode, workCenterCode, workTime); - if (null != workCenterExt) { - return workCenterExt.getShiftCode(); - } - return null; - } - - private void insertEquipmentCheckOrder(String organizeCode, String workCenterCode, String shiftCode, String checkType, String produceTime, List orderNoList, Map> resultMap) { - int orderNoIndex = 0; - for (String equNo : resultMap.keySet()) { - List itemList = resultMap.get(equNo); - - MesOrderJob orderJob = new MesOrderJob(); - - orderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); - orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue()); - orderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue()); - orderJob.setOrderNo(orderNoList.get(orderNoIndex)); - orderJob.setWorkCenterCode(workCenterCode); - orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); - orderJob.setOrderDate(TimeTool.getToday()); - orderJob.setWorkTime(orderJob.getOrderDate()); - orderJob.setGenerateTime(orderJob.getOrderDate() + MesPcnExtConstWords.ONE_SPACE + produceTime); - orderJob.setCheckType(checkType); - orderJob.setShiftCode(shiftCode); - List collect = (itemList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCellCode()))) - .map(MesEpEquipmentCheck::getWorkCellCode).collect(Collectors.toList())) - .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - String cellCollect = org.apache.commons.lang.StringUtils.join(collect, MesPcnExtConstWords.COMMA); - orderJob.setCellCollect(cellCollect); - orderJob.setOrganizeCode(organizeCode); - ConvertBean.serviceModelInitialize(orderJob, MesPcnExtConstWords.JOB); - orderJobRepository.insert(orderJob); - for (MesEpEquipmentCheck mesEquipmentCheck : itemList) { - MesEpEquipmentCheckDetail equipmentCheckDetail = new MesEpEquipmentCheckDetail(); - BeanUtils.copyProperties(mesEquipmentCheck, equipmentCheckDetail, MesPcnExtConstWords.ID); - equipmentCheckDetail.setOrderJobNo(orderNoList.get(orderNoIndex)); - equipmentCheckDetail.setCheckType(checkType); - equipmentCheckDetail.setEquNo(mesEquipmentCheck.getEquNo()); - equipmentCheckDetail.setEquName(mesEquipmentCheck.getEquName()); - equipmentCheckDetail.setShiftCode(shiftCode); - equipmentCheckDetail.setIsTeamConfirm(MesPcnExtEnumUtil.SHIFT_GROUP_CHECK.NO.getValue()); - equipmentCheckDetail.setIsQualityConfirm(MesPcnExtEnumUtil.QUALITY_CHECK.NO.getValue()); - equipmentCheckDetail.setOrganizeCode(organizeCode); - equipmentCheckDetail.setStandardValue(mesEquipmentCheck.getStandardValue()); - equipmentCheckDetail.setDownLimit(mesEquipmentCheck.getDownLimit()); - equipmentCheckDetail.setUpLimit(mesEquipmentCheck.getUpLimit()); - equipmentCheckDetail.setResultType(mesEquipmentCheck.getResultType()); - ConvertBean.serviceModelInitialize(equipmentCheckDetail, MesPcnExtConstWords.JOB); - equipmentCheckDetailRepository.insert(equipmentCheckDetail); - } - orderNoIndex++; - } - } - - private List getOrderNo(String organizeCode,int num) { - try { - BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, num); - log.info("获取生成单号的数量:{}",oneCodeResult.getResultList().size()); - if (oneCodeResult != null && oneCodeResult.isSuccess()) { - return oneCodeResult.getResultList(); - } - } catch (Exception e) { - } - return null; - } - - private List findWorkOrderList(String organizeCode, String workCenterCode) { - List workOrderExtList = null; - List openList = getWorkOrderList(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue()); - List landedList = getWorkOrderList(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.LANDED.getValue()); - if (!CollectionUtils.isEmpty(openList) || !CollectionUtils.isEmpty(landedList)) { - workOrderExtList = new ArrayList<>(); - if (!CollectionUtils.isEmpty(openList)) { - workOrderExtList.addAll(openList); - } - if (!CollectionUtils.isEmpty(landedList)) { - workOrderExtList.addAll(landedList); - } - } - return workOrderExtList; - } - - private List getWorkOrderList(String organizeCode, String workCenterCode, Integer workOrderStatus) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(workOrderStatus, MesPcnExtConstWords.WORK_ORDER_STATUS, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - return workOrderExtRepository.findByHqlWhere(packBean); - } - - private List getOrderJobList(String organizeCode, String workCenterCode, String shiftCode, String checkType, String produceTime) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue(), MesPcnExtConstWords.HANDLER_METHOD, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getStringEqualPack(shiftCode, MesPcnExtConstWords.SHIFT_CODE, packBean); - DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); - String nowProduceTime = TimeTool.getToday() + MesPcnExtConstWords.ONE_SPACE + produceTime; - String lastProduceTime; - if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { - DdlPreparedPack.getStringEqualPack(nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean); - } else if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue())) { - lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.DAY_OF_YEAR, -7, MesPcnExtConstWords.DATETIME_FORMAT); - DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); - } else if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue())) { - lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.DAY_OF_YEAR, -30, MesPcnExtConstWords.DATETIME_FORMAT); - DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); - } else { - lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.YEAR, -1, MesPcnExtConstWords.DATETIME_FORMAT); - DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); - } - return orderJobRepository.findByHqlWhere(packBean); - } - - private List getOrderRuleList(String organizeCode, String workCenterCode, String checkType) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_CREATE_RULE.TIME_TO_CREATE.getValue(), MesPcnExtConstWords.CREATE_RULE, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); - return orderRuleRepository.findByHqlWhere(packBean); - } - - private List getCheckTypelist() { - List checkTypeList = new ArrayList<>(); - String dayCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue(); - String weekCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue(); - String monthCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue(); - checkTypeList.add(weekCheck); - checkTypeList.add(dayCheck); - checkTypeList.add(monthCheck); - return checkTypeList; - } - - private List getEquipmentCheckList(String organizeCode, String checkType) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); - return equipmentCheckRepository.findByHqlWhere(packBean); - } -} +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job.ep; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.IWorkCenterExtService; +//import cn.estsh.i3plus.ext.mes.pcn.api.job.ep.IEpEquipmentCheckOrderService; +//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.tool.DdlPreparedPack; +//import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +//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 java.util.ArrayList; +//import java.util.Calendar; +//import java.util.List; +//import java.util.Map; +//import java.util.stream.Collectors; +// +///** +// * @PROJECT_NAME: i3plus-mes-panasonic-dev +// * @DESCRIPTION: +// * @USER: xinwang.yi +// * @DATE: 2021-12-13 13:41 +// */ +//@Slf4j +//@Service +//public class EpEquipmentCheckOrderService implements IEpEquipmentCheckOrderService { +// @Autowired +// private MesEpEquipmentCheckRepository equipmentCheckRepository; +// +// @Autowired +// private MesOrderRuleRepository orderRuleRepository; +// +// @Autowired +// private MesOrderJobRepository orderJobRepository; +// +// @Autowired +// private MesWorkOrderExtRepository workOrderExtRepository; +// +// @Autowired +// private MesEpEquipmentCheckDetailRepository equipmentCheckDetailRepository; +// +// @Autowired +// private IWorkCenterExtService workCenterExtService; +// +// @Autowired +// private ISyncFuncService syncFuncService; +// +// @Override +// public void doHandleEquipmentCheckOrder(String organizeCode) { +// List checkTypeList = getCheckTypelist(); +// +// for (String checkType : checkTypeList) { +// if (StringUtils.isEmpty(checkType)) { +// continue; +// } +// Boolean isSuccess = false; +// List equipmentCheckList = getEquipmentCheckList(organizeCode, checkType); +// if (CollectionUtils.isEmpty(equipmentCheckList)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,未配置[{}]类型的设备点检项目", +// MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType)); +// continue; +// } +// List workCenterCodeList = (equipmentCheckList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()))) +// .map(MesEpEquipmentCheck::getWorkCenterCode).collect(Collectors.toList())) +// .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); +// log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成包含以下生产线{}", +// MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), workCenterCodeList.toString()); +// for (String workCenterCode : workCenterCodeList) { +// if (StringUtils.isEmpty(workCenterCode)) { +// continue; +// } +// List orderRuleList = getOrderRuleList(organizeCode, workCenterCode, checkType); +// if (CollectionUtils.isEmpty(orderRuleList)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成,生产线[{}]未配置单据规则", +// MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), workCenterCode); +// continue; +// } +// +// List workOrderExtList = null; +// if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { +// workOrderExtList = findWorkOrderList(organizeCode, workCenterCode); +// } +// +// for (MesOrderRule orderRule : orderRuleList) { +// if (null == orderRule || StringUtils.isEmpty(orderRule.getProduceTime())) { +// continue; +// } +// Boolean flag = false; +// String produceTime = orderRule.getProduceTime() + MesPcnExtConstWords.APPEND_SECONDS; +// String shiftCode = getCurShiftCode(organizeCode, workCenterCode, TimeTool.getToday()); +// if (StringUtils.isEmpty(orderRule.getShiftCode()) || StringUtils.isEmpty(shiftCode)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]设备点检单据存在生成时间[{}]的单据未配置班次或生产线未启动班次", workCenterCode, produceTime); +// continue; +// } +// if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { +// if (TimeTool.stringParseToDate(TimeTool.getNowTime(MesPcnExtConstWords.TIME_FORMAT)).compareTo(TimeTool.stringParseToDate(produceTime)) >= 0) { +// List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, checkType, produceTime); +// if (CollectionUtils.isEmpty(orderJobList)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", +// workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); +// if (CollectionUtils.isEmpty(workOrderExtList)) { +// log.info("Pcn处理设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据,但未查询到启动或下达的工单", +// workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); +// continue; +// } +// flag = true; +// } +// } +// } else { +// List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, checkType, produceTime); +// if (CollectionUtils.isEmpty(orderJobList)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]还未生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", +// workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); +// flag = true; +// } +// } +// +// if (flag) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]正在生成类型[{}]生成时间[{}]班次[{}]的设备点检单据", +// workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); +// List equipmentCheckListTemp = equipmentCheckList.stream().filter(o -> (null != o && o.getWorkCenterCode().equals(workCenterCode))).collect(Collectors.toList()); +// Map> resultMap = equipmentCheckListTemp.stream().filter(mesEquipmentCheck -> mesEquipmentCheck != null && !StringUtils.isEmpty(mesEquipmentCheck.getEquNo())).collect(Collectors.groupingBy(MesEpEquipmentCheck::getEquNo)); +// +// List orderNoList= getOrderNo(organizeCode,resultMap.size()); +// if (CollectionUtils.isEmpty(orderNoList)) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,生产线[{}]生成类型[{}]生成时间[{}]班次[{}]的设备点检单据时生成单据号失败", +// workCenterCode, MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType), produceTime, shiftCode); +// continue; +// } +// insertEquipmentCheckOrder(organizeCode, workCenterCode, shiftCode, checkType, produceTime, orderNoList, resultMap); +// isSuccess = true; +// } +// } +// } +// +// if (isSuccess) { +// log.info("Pcn处理EP工厂设备点检单据生成JOB,[{}]类型的设备点检单据生成成功", +// MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.valueOfDescription(checkType)); +// break; +// } +// } +// } +// +// private String getCurShiftCode(String organizeCode, String workCenterCode, String workTime) { +// MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterAndTime(organizeCode, workCenterCode, workTime); +// if (null != workCenterExt) { +// return workCenterExt.getShiftCode(); +// } +// return null; +// } +// +// private void insertEquipmentCheckOrder(String organizeCode, String workCenterCode, String shiftCode, String checkType, String produceTime, List orderNoList, Map> resultMap) { +// int orderNoIndex = 0; +// for (String equNo : resultMap.keySet()) { +// List itemList = resultMap.get(equNo); +// +// MesOrderJob orderJob = new MesOrderJob(); +// +// orderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); +// orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue()); +// orderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue()); +// orderJob.setOrderNo(orderNoList.get(orderNoIndex)); +// orderJob.setWorkCenterCode(workCenterCode); +// orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); +// orderJob.setOrderDate(TimeTool.getToday()); +// orderJob.setWorkTime(orderJob.getOrderDate()); +// orderJob.setGenerateTime(orderJob.getOrderDate() + MesPcnExtConstWords.ONE_SPACE + produceTime); +// orderJob.setCheckType(checkType); +// orderJob.setShiftCode(shiftCode); +// List collect = (itemList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCellCode()))) +// .map(MesEpEquipmentCheck::getWorkCellCode).collect(Collectors.toList())) +// .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); +// String cellCollect = org.apache.commons.lang.StringUtils.join(collect, MesPcnExtConstWords.COMMA); +// orderJob.setCellCollect(cellCollect); +// orderJob.setOrganizeCode(organizeCode); +// ConvertBean.serviceModelInitialize(orderJob, MesPcnExtConstWords.JOB); +// orderJobRepository.insert(orderJob); +// for (MesEpEquipmentCheck mesEquipmentCheck : itemList) { +// MesEpEquipmentCheckDetail equipmentCheckDetail = new MesEpEquipmentCheckDetail(); +// BeanUtils.copyProperties(mesEquipmentCheck, equipmentCheckDetail, MesPcnExtConstWords.ID); +// equipmentCheckDetail.setOrderJobNo(orderNoList.get(orderNoIndex)); +// equipmentCheckDetail.setCheckType(checkType); +// equipmentCheckDetail.setEquNo(mesEquipmentCheck.getEquNo()); +// equipmentCheckDetail.setEquName(mesEquipmentCheck.getEquName()); +// equipmentCheckDetail.setShiftCode(shiftCode); +// equipmentCheckDetail.setIsTeamConfirm(MesPcnExtEnumUtil.SHIFT_GROUP_CHECK.NO.getValue()); +// equipmentCheckDetail.setIsQualityConfirm(MesPcnExtEnumUtil.QUALITY_CHECK.NO.getValue()); +// equipmentCheckDetail.setOrganizeCode(organizeCode); +// equipmentCheckDetail.setStandardValue(mesEquipmentCheck.getStandardValue()); +// equipmentCheckDetail.setDownLimit(mesEquipmentCheck.getDownLimit()); +// equipmentCheckDetail.setUpLimit(mesEquipmentCheck.getUpLimit()); +// equipmentCheckDetail.setResultType(mesEquipmentCheck.getResultType()); +// ConvertBean.serviceModelInitialize(equipmentCheckDetail, MesPcnExtConstWords.JOB); +// equipmentCheckDetailRepository.insert(equipmentCheckDetail); +// } +// orderNoIndex++; +// } +// } +// +// private List getOrderNo(String organizeCode,int num) { +// try { +// BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, num); +// log.info("获取生成单号的数量:{}",oneCodeResult.getResultList().size()); +// if (oneCodeResult != null && oneCodeResult.isSuccess()) { +// return oneCodeResult.getResultList(); +// } +// } catch (Exception e) { +// } +// return null; +// } +// +// private List findWorkOrderList(String organizeCode, String workCenterCode) { +// List workOrderExtList = null; +// List openList = getWorkOrderList(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue()); +// List landedList = getWorkOrderList(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.LANDED.getValue()); +// if (!CollectionUtils.isEmpty(openList) || !CollectionUtils.isEmpty(landedList)) { +// workOrderExtList = new ArrayList<>(); +// if (!CollectionUtils.isEmpty(openList)) { +// workOrderExtList.addAll(openList); +// } +// if (!CollectionUtils.isEmpty(landedList)) { +// workOrderExtList.addAll(landedList); +// } +// } +// return workOrderExtList; +// } +// +// private List getWorkOrderList(String organizeCode, String workCenterCode, Integer workOrderStatus) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(workOrderStatus, MesPcnExtConstWords.WORK_ORDER_STATUS, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// return workOrderExtRepository.findByHqlWhere(packBean); +// } +// +// private List getOrderJobList(String organizeCode, String workCenterCode, String shiftCode, String checkType, String produceTime) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue(), MesPcnExtConstWords.HANDLER_METHOD, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// DdlPreparedPack.getStringEqualPack(shiftCode, MesPcnExtConstWords.SHIFT_CODE, packBean); +// DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); +// String nowProduceTime = TimeTool.getToday() + MesPcnExtConstWords.ONE_SPACE + produceTime; +// String lastProduceTime; +// if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue())) { +// DdlPreparedPack.getStringEqualPack(nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean); +// } else if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue())) { +// lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.DAY_OF_YEAR, -7, MesPcnExtConstWords.DATETIME_FORMAT); +// DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); +// } else if (checkType.equals(MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue())) { +// lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.DAY_OF_YEAR, -30, MesPcnExtConstWords.DATETIME_FORMAT); +// DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); +// } else { +// lastProduceTime = TimeTool.timeCalc(TimeTool.stringParseToDate(nowProduceTime), Calendar.YEAR, -1, MesPcnExtConstWords.DATETIME_FORMAT); +// DdlPreparedPack.timeBuilder(lastProduceTime, nowProduceTime, MesPcnExtConstWords.GENERATE_TIME, packBean, true); +// } +// return orderJobRepository.findByHqlWhere(packBean); +// } +// +// private List getOrderRuleList(String organizeCode, String workCenterCode, String checkType) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.EP_EQU_CHECK.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_CREATE_RULE.TIME_TO_CREATE.getValue(), MesPcnExtConstWords.CREATE_RULE, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); +// return orderRuleRepository.findByHqlWhere(packBean); +// } +// +// private List getCheckTypelist() { +// List checkTypeList = new ArrayList<>(); +// String dayCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.DAY_CHECK.getValue(); +// String weekCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.WEEK_CHECK.getValue(); +// String monthCheck = MesPcnExtEnumUtil.MES_EQUIPMENT_CHECK_TYPE.MONTH_CHECK.getValue(); +// checkTypeList.add(weekCheck); +// checkTypeList.add(dayCheck); +// checkTypeList.add(monthCheck); +// return checkTypeList; +// } +// +// private List getEquipmentCheckList(String organizeCode, String checkType) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getStringEqualPack(checkType, MesPcnExtConstWords.CHECK_TYPE, packBean); +// return equipmentCheckRepository.findByHqlWhere(packBean); +// } +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpQManageCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpQManageCheckOrderService.java index 036aee4..3b5473e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpQManageCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/ep/EpQManageCheckOrderService.java @@ -1,247 +1,247 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job.ep; - -import cn.estsh.i3plus.ext.mes.pcn.api.base.IWorkCenterExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.job.ep.IEpQManageCheckOrderService; -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.model.GenSerialNoModel; -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 java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @Author: wangjie - * @CreateDate: 2019/8/23 1:16 PM - * @Description: EP-Q管理单据定时任务 - **/ -@Slf4j -@Service -public class EpQManageCheckOrderService implements IEpQManageCheckOrderService { - - @Autowired - private MesProcessCellRepository processCellRepository; - - @Autowired - private MesProcessQManageRepository processQManageRepository; - - @Autowired - private MesQManageTaskDetailRepository qManageTaskDetailRepository; - - @Autowired - private MesOrderRuleRepository orderRuleRepository; - - @Autowired - private MesOrderJobRepository orderJobRepository; - - @Autowired - private IWorkCenterExtService workCenterExtService; - - @Autowired - private MesWorkOrderExtRepository workOrderExtRepository; - - @Autowired - private ISyncFuncService syncFuncService; - - @Override - public void doQManageCheckOrder(String organizeCode) { - List orderRuleDbList = getOrderRuleList(organizeCode); - if (CollectionUtils.isEmpty(orderRuleDbList)) { - log.info("Pcn处理Q管理点检单生成JOB,未配置单据规则"); - return; - } - - Map> workCenterCodeMap = orderRuleDbList.stream() - .filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()) && !StringUtils.isEmpty(o.getProduceTime()))) - .collect(Collectors.groupingBy(MesOrderRule::getWorkCenterCode)); - log.info("Pcn处理Q管理点检单生成JOB,生成包含以下生产线{}", CollectionUtils.isEmpty(workCenterCodeMap) ? null : workCenterCodeMap.keySet().toString()); - - for (String workCenterCode : workCenterCodeMap.keySet()) { - if (StringUtils.isEmpty(workCenterCode)) continue; - - List orderRuleList = workCenterCodeMap.get(workCenterCode); - if (CollectionUtils.isEmpty(orderRuleList)) continue; - - MesWorkOrderExt workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode); - - Map> processCodeMap = getProcessCodeMapByCenter(organizeCode, workCenterCode); - List processCodeList = getProcessCodeList(processCodeMap); - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]配置的数据量processCodeMap[{}],processCodeList[{}]", - workCenterCode, CollectionUtils.isEmpty(processCodeMap) ? 0 : processCodeMap.size(), CollectionUtils.isEmpty(processCodeList) ? 0 : processCodeList.size()); - - List processQManageList = getProcessQManageList(workOrderExt, processCodeList); - - for (MesOrderRule orderRule : orderRuleList) { - if (null == orderRule) continue; - - String produceTime = orderRule.getProduceTime() + MesPcnExtConstWords.APPEND_SECONDS; - - if (TimeTool.stringParseToDate(TimeTool.getNowTime(MesPcnExtConstWords.TIME_FORMAT)).compareTo(TimeTool.stringParseToDate(produceTime)) >= 0) { - - String shiftCode = getCurShiftCode(orderRule.getShiftCode(), organizeCode, workCenterCode); - if (StringUtils.isEmpty(shiftCode)) { - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]Q管理单据存在生成时间[{}]的单据规则,但未配置班次或生产线未启动班次", workCenterCode, produceTime); - continue; - } - - List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, produceTime); - if (!CollectionUtils.isEmpty(orderJobList)) continue; - - if (null == workOrderExt) { - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但未查询到启动或下达的工单", workCenterCode, produceTime, shiftCode); - continue; - } - - if (CollectionUtils.isEmpty(processCodeList)) { - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但未配置工位工序关系", workCenterCode, produceTime, shiftCode); - continue; - } - - if (CollectionUtils.isEmpty(processQManageList)) { - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但根据生产线查询到顺序最小的一个[{}]状态的工单[{}]关联的物料编码[{}]与工序代码{}未配置Q管理项目信息", - workCenterCode, produceTime, shiftCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus()), workOrderExt.getOrderNo(), workOrderExt.getPartNo(), processCodeList.toString()); - continue; - } - - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]正在生成时间[{}]班次[{}]的Q管理单据", workCenterCode, produceTime, shiftCode); - String orderNo = getOrderNo(organizeCode); - if (StringUtils.isEmpty(orderNo)) { - log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]生成时间[{}]班次[{}]的Q管理单据时生成单据号失败", workCenterCode, produceTime, shiftCode); - continue; - } - insertQManageCheckOrder(organizeCode, workCenterCode, shiftCode, produceTime, orderNo, processQManageList, processCodeMap); - } - } - } - - } - - private List getProcessCodeList(Map> processCodeMap) { - return CollectionUtils.isEmpty(processCodeMap) ? null : new ArrayList<>(processCodeMap.keySet()).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - } - - private Map> getProcessCodeMapByCenter(String organizeCode, String workCenterCode) { - List processCellList = processCellRepository.findByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.WORK_CENTER_CODE}, - new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), workCenterCode}); - return CollectionUtils.isEmpty(processCellList) ? null : - processCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(MesProcessCell::getProcessCode)); - } - - private List getProcessQManageList(MesWorkOrderExt workOrderExt, List processCodeList) { - if (null == workOrderExt) return null; - if (CollectionUtils.isEmpty(processCodeList)) return null; - DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(workOrderExt.getPartNo(), MesPcnExtConstWords.PART_NO, packBean); - DdlPreparedPack.getInPackList(processCodeList, MesPcnExtConstWords.PROCESS_CODE, packBean); - return processQManageRepository.findByHqlWhere(packBean); - } - - private List getOrderRuleList(String organizeCode) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_CREATE_RULE.TIME_TO_CREATE.getValue(), MesPcnExtConstWords.CREATE_RULE, packBean); - return orderRuleRepository.findByHqlWhere(packBean); - } - - private List getOrderJobList(String organizeCode, String workCenterCode, String shiftCode, String produceTime) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); - DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue(), MesPcnExtConstWords.HANDLER_METHOD, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getStringEqualPack(shiftCode, MesPcnExtConstWords.SHIFT_CODE, packBean); - DdlPreparedPack.getStringEqualPack(TimeTool.getToday() + MesPcnExtConstWords.ONE_SPACE + produceTime, MesPcnExtConstWords.GENERATE_TIME, packBean); - return orderJobRepository.findByHqlWhere(packBean); - } - - private String getCurShiftCode(String shiftCode, String organizeCode, String workCenterCode) { - if (StringUtils.isEmpty(shiftCode)) { - MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterCode(organizeCode, workCenterCode); - if (null != workCenterExt) { - shiftCode = workCenterExt.getShiftCode(); - } - } - return shiftCode; - } - - private MesWorkOrderExt getWorkOrderByStatus(String organizeCode, String workCenterCode) { - MesWorkOrderExt workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue()); - if (null == workOrderExt) { - workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.LANDED.getValue()); - } - return workOrderExt; - } - - private MesWorkOrderExt getWorkOrderByStatus(String organizeCode, String workCenterCode, Integer workOrderStatus) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(workOrderStatus, MesPcnExtConstWords.WORK_ORDER_STATUS, packBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.SEQ}, packBean); - return workOrderExtRepository.getByProperty(packBean); - } - - private String getOrderNo(String organizeCode) { - String orderNo = null; - try { - BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); - if (oneCodeResult != null && oneCodeResult.isSuccess()) { - orderNo = oneCodeResult.getResultList().get(0).toString(); - } - } catch (Exception e) { - } - return orderNo; - } - - private void insertQManageCheckOrder(String organizeCode, String workCenterCode, String shiftCode, String produceTime, String orderNo, List processQManageList, Map> processCodeMap) { - MesOrderJob orderJob = new MesOrderJob(); - orderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); - orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); - orderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue()); - orderJob.setOrderNo(orderNo); - orderJob.setWorkCenterCode(workCenterCode); - orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); - orderJob.setOrderDate(TimeTool.getToday()); - orderJob.setWorkTime(orderJob.getOrderDate()); - orderJob.setGenerateTime(orderJob.getOrderDate() + MesPcnExtConstWords.ONE_SPACE + produceTime); - orderJob.setShiftCode(shiftCode); - orderJob.setOrganizeCode(organizeCode); - ConvertBean.serviceModelInitialize(orderJob, MesPcnExtConstWords.JOB); - orderJobRepository.insert(orderJob); - - for (MesProcessQManage processQManage : processQManageList) { - MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); - BeanUtils.copyProperties(processQManage, qManageTaskDetail, MesPcnExtConstWords.ID); - qManageTaskDetail.setOrderNo(orderNo); - - List processCellList = processCodeMap.get(processQManage.getProcessCode()); - if (!CollectionUtils.isEmpty(processCellList)) { - qManageTaskDetail.setWorkCellCode(processCellList.get(0).getWorkCellCode()); - qManageTaskDetail.setWorkCellName(processCellList.get(0).getWorkCellName()); - qManageTaskDetail.setProcessName(processCellList.get(0).getProcessName()); - } - - qManageTaskDetail.setIsTeamConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - qManageTaskDetail.setIsQualityConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - ConvertBean.serviceModelInitialize(qManageTaskDetail, MesPcnExtConstWords.JOB); - qManageTaskDetailRepository.insert(qManageTaskDetail); - } - } -} \ No newline at end of file +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job.ep; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.base.IWorkCenterExtService; +//import cn.estsh.i3plus.ext.mes.pcn.api.job.ep.IEpQManageCheckOrderService; +//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.model.GenSerialNoModel; +//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 java.util.ArrayList; +//import java.util.List; +//import java.util.Map; +//import java.util.stream.Collectors; +// +///** +// * @Author: wangjie +// * @CreateDate: 2019/8/23 1:16 PM +// * @Description: EP-Q管理单据定时任务 +// **/ +//@Slf4j +//@Service +//public class EpQManageCheckOrderService implements IEpQManageCheckOrderService { +// +// @Autowired +// private MesProcessCellRepository processCellRepository; +// +// @Autowired +// private MesProcessQManageRepository processQManageRepository; +// +// @Autowired +// private MesQManageTaskDetailRepository qManageTaskDetailRepository; +// +// @Autowired +// private MesOrderRuleRepository orderRuleRepository; +// +// @Autowired +// private MesOrderJobRepository orderJobRepository; +// +// @Autowired +// private IWorkCenterExtService workCenterExtService; +// +// @Autowired +// private MesWorkOrderExtRepository workOrderExtRepository; +// +// @Autowired +// private ISyncFuncService syncFuncService; +// +// @Override +// public void doQManageCheckOrder(String organizeCode) { +// List orderRuleDbList = getOrderRuleList(organizeCode); +// if (CollectionUtils.isEmpty(orderRuleDbList)) { +// log.info("Pcn处理Q管理点检单生成JOB,未配置单据规则"); +// return; +// } +// +// Map> workCenterCodeMap = orderRuleDbList.stream() +// .filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()) && !StringUtils.isEmpty(o.getProduceTime()))) +// .collect(Collectors.groupingBy(MesOrderRule::getWorkCenterCode)); +// log.info("Pcn处理Q管理点检单生成JOB,生成包含以下生产线{}", CollectionUtils.isEmpty(workCenterCodeMap) ? null : workCenterCodeMap.keySet().toString()); +// +// for (String workCenterCode : workCenterCodeMap.keySet()) { +// if (StringUtils.isEmpty(workCenterCode)) continue; +// +// List orderRuleList = workCenterCodeMap.get(workCenterCode); +// if (CollectionUtils.isEmpty(orderRuleList)) continue; +// +// MesWorkOrderExt workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode); +// +// Map> processCodeMap = getProcessCodeMapByCenter(organizeCode, workCenterCode); +// List processCodeList = getProcessCodeList(processCodeMap); +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]配置的数据量processCodeMap[{}],processCodeList[{}]", +// workCenterCode, CollectionUtils.isEmpty(processCodeMap) ? 0 : processCodeMap.size(), CollectionUtils.isEmpty(processCodeList) ? 0 : processCodeList.size()); +// +// List processQManageList = getProcessQManageList(workOrderExt, processCodeList); +// +// for (MesOrderRule orderRule : orderRuleList) { +// if (null == orderRule) continue; +// +// String produceTime = orderRule.getProduceTime() + MesPcnExtConstWords.APPEND_SECONDS; +// +// if (TimeTool.stringParseToDate(TimeTool.getNowTime(MesPcnExtConstWords.TIME_FORMAT)).compareTo(TimeTool.stringParseToDate(produceTime)) >= 0) { +// +// String shiftCode = getCurShiftCode(orderRule.getShiftCode(), organizeCode, workCenterCode); +// if (StringUtils.isEmpty(shiftCode)) { +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]Q管理单据存在生成时间[{}]的单据规则,但未配置班次或生产线未启动班次", workCenterCode, produceTime); +// continue; +// } +// +// List orderJobList = getOrderJobList(organizeCode, workCenterCode, shiftCode, produceTime); +// if (!CollectionUtils.isEmpty(orderJobList)) continue; +// +// if (null == workOrderExt) { +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但未查询到启动或下达的工单", workCenterCode, produceTime, shiftCode); +// continue; +// } +// +// if (CollectionUtils.isEmpty(processCodeList)) { +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但未配置工位工序关系", workCenterCode, produceTime, shiftCode); +// continue; +// } +// +// if (CollectionUtils.isEmpty(processQManageList)) { +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]还未生成时间[{}]班次[{}]的Q管理点检单据,但根据生产线查询到顺序最小的一个[{}]状态的工单[{}]关联的物料编码[{}]与工序代码{}未配置Q管理项目信息", +// workCenterCode, produceTime, shiftCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus()), workOrderExt.getOrderNo(), workOrderExt.getPartNo(), processCodeList.toString()); +// continue; +// } +// +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]正在生成时间[{}]班次[{}]的Q管理单据", workCenterCode, produceTime, shiftCode); +// String orderNo = getOrderNo(organizeCode); +// if (StringUtils.isEmpty(orderNo)) { +// log.info("Pcn处理Q管理点检单生成JOB,生产线[{}]生成时间[{}]班次[{}]的Q管理单据时生成单据号失败", workCenterCode, produceTime, shiftCode); +// continue; +// } +// insertQManageCheckOrder(organizeCode, workCenterCode, shiftCode, produceTime, orderNo, processQManageList, processCodeMap); +// } +// } +// } +// +// } +// +// private List getProcessCodeList(Map> processCodeMap) { +// return CollectionUtils.isEmpty(processCodeMap) ? null : new ArrayList<>(processCodeMap.keySet()).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); +// } +// +// private Map> getProcessCodeMapByCenter(String organizeCode, String workCenterCode) { +// List processCellList = processCellRepository.findByProperty( +// new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.WORK_CENTER_CODE}, +// new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), workCenterCode}); +// return CollectionUtils.isEmpty(processCellList) ? null : +// processCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(MesProcessCell::getProcessCode)); +// } +// +// private List getProcessQManageList(MesWorkOrderExt workOrderExt, List processCodeList) { +// if (null == workOrderExt) return null; +// if (CollectionUtils.isEmpty(processCodeList)) return null; +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderExt.getOrganizeCode()); +// DdlPreparedPack.getStringEqualPack(workOrderExt.getPartNo(), MesPcnExtConstWords.PART_NO, packBean); +// DdlPreparedPack.getInPackList(processCodeList, MesPcnExtConstWords.PROCESS_CODE, packBean); +// return processQManageRepository.findByHqlWhere(packBean); +// } +// +// private List getOrderRuleList(String organizeCode) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_CREATE_RULE.TIME_TO_CREATE.getValue(), MesPcnExtConstWords.CREATE_RULE, packBean); +// return orderRuleRepository.findByHqlWhere(packBean); +// } +// +// private List getOrderJobList(String organizeCode, String workCenterCode, String shiftCode, String produceTime) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue(), MesPcnExtConstWords.TASK_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue(), MesPcnExtConstWords.ORDER_TYPE, packBean); +// DdlPreparedPack.getNumEqualPack(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue(), MesPcnExtConstWords.HANDLER_METHOD, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// DdlPreparedPack.getStringEqualPack(shiftCode, MesPcnExtConstWords.SHIFT_CODE, packBean); +// DdlPreparedPack.getStringEqualPack(TimeTool.getToday() + MesPcnExtConstWords.ONE_SPACE + produceTime, MesPcnExtConstWords.GENERATE_TIME, packBean); +// return orderJobRepository.findByHqlWhere(packBean); +// } +// +// private String getCurShiftCode(String shiftCode, String organizeCode, String workCenterCode) { +// if (StringUtils.isEmpty(shiftCode)) { +// MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterCode(organizeCode, workCenterCode); +// if (null != workCenterExt) { +// shiftCode = workCenterExt.getShiftCode(); +// } +// } +// return shiftCode; +// } +// +// private MesWorkOrderExt getWorkOrderByStatus(String organizeCode, String workCenterCode) { +// MesWorkOrderExt workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue()); +// if (null == workOrderExt) { +// workOrderExt = getWorkOrderByStatus(organizeCode, workCenterCode, MesPcnExtEnumUtil.WORK_ORDER_STATUS.LANDED.getValue()); +// } +// return workOrderExt; +// } +// +// private MesWorkOrderExt getWorkOrderByStatus(String organizeCode, String workCenterCode, Integer workOrderStatus) { +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(workOrderStatus, MesPcnExtConstWords.WORK_ORDER_STATUS, packBean); +// DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); +// DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.SEQ}, packBean); +// return workOrderExtRepository.getByProperty(packBean); +// } +// +// private String getOrderNo(String organizeCode) { +// String orderNo = null; +// try { +// BaseResultBean oneCodeResult = syncFuncService.syncSerialNo(new GenSerialNoModel(MesPcnExtConstWords.ORDER_NO_RULE), null, organizeCode, 1); +// if (oneCodeResult != null && oneCodeResult.isSuccess()) { +// orderNo = oneCodeResult.getResultList().get(0).toString(); +// } +// } catch (Exception e) { +// } +// return orderNo; +// } +// +// private void insertQManageCheckOrder(String organizeCode, String workCenterCode, String shiftCode, String produceTime, String orderNo, List processQManageList, Map> processCodeMap) { +// MesOrderJob orderJob = new MesOrderJob(); +// orderJob.setTaskType(MesPcnExtEnumUtil.MES_OR_TASK_TYPE.PREPARE_TASK.getValue()); +// orderJob.setOrderType(MesPcnExtEnumUtil.MES_OR_ORDER_TYPE.Q_MANAGE.getValue()); +// orderJob.setHandlerMethod(MesPcnExtEnumUtil.HANDLER_METHOD.AUTOMATICALLY_CREATED.getValue()); +// orderJob.setOrderNo(orderNo); +// orderJob.setWorkCenterCode(workCenterCode); +// orderJob.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CREATE.getValue()); +// orderJob.setOrderDate(TimeTool.getToday()); +// orderJob.setWorkTime(orderJob.getOrderDate()); +// orderJob.setGenerateTime(orderJob.getOrderDate() + MesPcnExtConstWords.ONE_SPACE + produceTime); +// orderJob.setShiftCode(shiftCode); +// orderJob.setOrganizeCode(organizeCode); +// ConvertBean.serviceModelInitialize(orderJob, MesPcnExtConstWords.JOB); +// orderJobRepository.insert(orderJob); +// +// for (MesProcessQManage processQManage : processQManageList) { +// MesQManageTaskDetail qManageTaskDetail = new MesQManageTaskDetail(); +// BeanUtils.copyProperties(processQManage, qManageTaskDetail, MesPcnExtConstWords.ID); +// qManageTaskDetail.setOrderNo(orderNo); +// +// List processCellList = processCodeMap.get(processQManage.getProcessCode()); +// if (!CollectionUtils.isEmpty(processCellList)) { +// qManageTaskDetail.setWorkCellCode(processCellList.get(0).getWorkCellCode()); +// qManageTaskDetail.setWorkCellName(processCellList.get(0).getWorkCellName()); +// qManageTaskDetail.setProcessName(processCellList.get(0).getProcessName()); +// } +// +// qManageTaskDetail.setIsTeamConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// qManageTaskDetail.setIsQualityConfirm(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); +// ConvertBean.serviceModelInitialize(qManageTaskDetail, MesPcnExtConstWords.JOB); +// qManageTaskDetailRepository.insert(qManageTaskDetail); +// } +// } +//} \ 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/MesFirstOrderDetail.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesFirstOrderDetail.java index 4cd109c..31648ce 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesFirstOrderDetail.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesFirstOrderDetail.java @@ -1,5 +1,7 @@ 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; @@ -26,7 +28,7 @@ import java.io.Serializable; @Table(name = "MES_FIRST_ORDER_DETAIL", indexes = { @Index(columnList = "ORDER_NO") }) -@Api("MES_首检单明细") +@Api("MES_首检单明细(改为Q管理)") public class MesFirstOrderDetail extends BaseBean implements Serializable { private static final long serialVersionUID = -111793151238704774L; @@ -116,6 +118,27 @@ public class MesFirstOrderDetail extends BaseBean implements Serializable { @ApiParam("结果值") private String resultValue; + @Column(name = "MANAGE_TYPE") + @ApiParam("管理类型:10-比值类型;20-结果类型") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.Q_MANAGE_MANAGE_TYPE.class, refForeignKey = "value", value = "description") + private String manageType; + + @Column(name = "IMPORTANCE_SAFE_PART_NO") + @ApiParam("重要安全部品编码") + private String importanceSafePartNo; + + @Column(name = "CHECK_FREQUENCY") + @ApiParam("检查频度") + private String checkFrequency; + + @Column(name = "SAMPLE_QTY") + @ApiParam("样品数量") + private String sampleQty; + + @Column(name = "CONFIRM_METHOD") + @ApiParam("确认方法") + private String confirmMethod; + @Transient @ApiParam("生产工单号") private String workOrderNo; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessFirstItem.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessFirstItem.java index fc5de7b..30169c8 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessFirstItem.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/bean/MesProcessFirstItem.java @@ -1,5 +1,7 @@ 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; @@ -64,4 +66,25 @@ public class MesProcessFirstItem extends BaseBean implements Serializable { @ApiParam("下限值") private String downLimit; + @Column(name = "MANAGE_TYPE") + @ApiParam("管理类型:10-比值类型;20-结果类型") + @AnnoOutputColumn(refClass = MesPcnExtEnumUtil.Q_MANAGE_MANAGE_TYPE.class, refForeignKey = "value", value = "description") + private String manageType; + + @Column(name = "IMPORTANCE_SAFE_PART_NO") + @ApiParam("重要安全部品编码") + private String importanceSafePartNo; + + @Column(name = "CHECK_FREQUENCY") + @ApiParam("检查频度") + private String checkFrequency; + + @Column(name = "SAMPLE_QTY") + @ApiParam("样品数量") + private String sampleQty; + + @Column(name = "CONFIRM_METHOD") + @ApiParam("确认方法") + private String confirmMethod; + } 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 d7a651c..f37073f 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 @@ -3206,4 +3206,49 @@ public class MesPcnExtEnumUtil { return tmp; } } + + /** + * Q管理管理类型 + */ + public static enum Q_MANAGE_MANAGE_TYPE { + COMPARE_TYPE("10", "比值类型"), + RESULT_TYPE("20", "结果类型") + ; + + private String value; + private String description; + + Q_MANAGE_MANAGE_TYPE(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; + } + } }