diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index f317351..a161f1f 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import java.util.List; @@ -16,9 +17,9 @@ public interface IMesWorkOrderService extends IBaseMesService { void doProductReportExt(MesWorkOrder mesWorkOrder); - void deleteUnSortOrder(String userName,String organizeCode); + void deleteUnSortOrder(String userName, String organizeCode, List partNoList); - List sumMesWorkOrderQtyToSap(String organizeCode); + List sumMesWorkOrderQtyToSap(String organizeCode); List queryMesWorkOrderProcessToSap(String organizeCode); diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java index 2f60d89..9b9860a 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import java.util.List; @@ -13,7 +14,7 @@ import java.util.List; * @Modify: **/ public interface IMesWorkOrderToSapService extends IBaseMesService { - MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder); + MesWorkOrderToSap insert(MesWorkOrderModel mesWorkOrder); - void doMesWorkOrder(String organizeCode,List mesWorkOrderList); + void doMesWorkOrder(String organizeCode,List mesWorkOrderList); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java new file mode 100644 index 0000000..85f220e --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.ext.mes.api.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.IBaseMesService; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesFile; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 15:02 + * @Modify: + **/ +public interface IMesModuleExcelService extends IBaseMesService { + + /** + * 按条件分页查询模块EXCEL模板信息 + * + * @param mesModuleExcel 查询条件 + * @param pager 分页条件 + * @return SOP分页数据 + */ + @ApiOperation(value = "按条件分页查询模块EXCEL模板信息", notes = "按条件分页查询模块EXCEL模板信息") + ListPager queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager); + + /** + * 新增模块EXCEL模板信息 + * + * @param file 文件 + * @param mesModuleExcel 模块EXCEL模板信息 + */ + @ApiOperation(value = "新增模块EXCEL模板信息", notes = "新增模块EXCEL模板信息") + void insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel); + + /** + * 更新模块EXCEL模板信息 + * + * @param file 文件 + * @param mesModuleExcel 模块EXCEL模板信息 + */ + @ApiOperation(value = "更新模块EXCEL模板信息", notes = "更新模块EXCEL模板信息") + void updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel); +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java new file mode 100644 index 0000000..1cf7195 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.ext.mes.api.busi.report; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; + +/** + * @Description : 报表-业务方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:30 + * @Modify: + **/ +public interface IMesYfReportService { + + /** + * 设备数据查询报表-查询 + * @param queryReportModel 查询条件封装 + * @param pager 分页信息 + * @return 分页查询结果 + */ + ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 372d013..978458d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -4,10 +4,12 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -18,12 +20,16 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Api(description = "工单主页面") @RestController @@ -41,26 +47,33 @@ public class MesWorkOrderController extends BaseMesController { public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, @RequestParam("status") Integer type) { try { MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); - List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrder.class); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrderModel.class); - // 校验导入数据 - validateImport(beanList); + if(CollectionUtils.isEmpty(beanList)){ + MesException.throwMesBusiException("导入数据不存在"); + } String userName = AuthUtil.getSessionUser().getUserName(); String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); //非排序工单导入前删除 if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == type) { - mesWorkOrderService.deleteUnSortOrder(userName,organizeCode); + List partNoList = beanList.stream().map(MesWorkOrderModel::getPartNo).filter(partNo -> !StringUtils.isEmpty(partNo)).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(partNoList)){ + MesException.throwMesBusiException("导入物料信息数据无效"); + } + mesWorkOrderService.deleteUnSortOrder(userName,organizeCode,partNoList); } + List mesWorkOrderList = new ArrayList<>(); // 导入数据初始化 - for (MesWorkOrder bean : beanList) { - bean.setWorkOrderType(type); - ConvertBean.serviceModelInitialize(bean, userName); - bean.setOrganizeCode(organizeCode); + for (MesWorkOrderModel bean : beanList) { + MesWorkOrder mesWorkOrder = new MesWorkOrder(); + BeanUtils.copyProperties(bean, mesWorkOrder); + mesWorkOrder.setWorkOrderType(type); + ConvertBean.serviceModelInitialize(mesWorkOrder, userName); + mesWorkOrder.setOrganizeCode(organizeCode); + mesWorkOrderList.add(mesWorkOrder); } - baseService.insertBatch(beanList); + baseService.insertBatch(mesWorkOrderList); - // 导入后 - afterImport(beanList); return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException e) { return ResultBean.fail(e); @@ -112,7 +125,7 @@ public class MesWorkOrderController extends BaseMesController { public ResultBean sendToSap(String organizeCode) { try { //查询汇总工单数量 - List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); + List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); if (!CollectionUtils.isEmpty(mesWorkOrderList)){ mesWorkOrderToSapService.doMesWorkOrder(organizeCode,mesWorkOrderList); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java new file mode 100644 index 0000000..5c43938 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java @@ -0,0 +1,99 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.file.IMesModuleExcelService; +import cn.estsh.i3plus.ext.mes.apiservice.controller.base.BaseMesController; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +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 cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:54 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesModuleExcel") +@Api(tags = "模块EXCEL模板管理") +public class MesModuleExcelController extends BaseMesController { + + @Autowired + private IMesModuleExcelService moduleExcelService; + + @GetMapping(value = "/queryExt") + @ApiOperation(value = "按条件分页查询模块EXCEL模板信息") + public ResultBean queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + try { + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setListPager(moduleExcelService.queryModuleExcelByPager(mesModuleExcel, pager)); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/insertExt") + @ApiOperation(value = "新增模块EXCEL模板信息") + public ResultBean insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + try { + if (file == null) { + MesException.throwMesBusiException("上传的文件为null,后台未能接收到"); + } + + ValidatorBean.beginValid(mesModuleExcel) + .notNull(MesExtConstWords.MODULE_CODE, mesModuleExcel.getModuleCode()) + .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); + + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + ConvertBean.serviceModelUpdate(mesModuleExcel, AuthUtil.getSessionUser().getUserName()); + moduleExcelService.insertModuleExcel(file, mesModuleExcel); + + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/updateExt") + @ApiOperation(value = "更新模块EXCEL模板信息") + public ResultBean updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + try { + ValidatorBean.beginValid(mesModuleExcel) + .notNull(MesExtConstWords.ID, mesModuleExcel.getId()) + .notNull(MesExtConstWords.MODULE_CODE, mesModuleExcel.getModuleCode()) + .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); + + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + ConvertBean.serviceModelUpdate(mesModuleExcel, AuthUtil.getSessionUser().getUserName()); + moduleExcelService.updateModuleExcel(file, mesModuleExcel); + return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java new file mode 100644 index 0000000..3feadd5 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java @@ -0,0 +1,70 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.MesBaseController; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +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.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 设备数据查询报表 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:23 + * @Modify: + **/ +@Api("设备数据查询报表") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/device-data-query-report") +public class MesDeviceDataQueryReportController extends MesBaseController { + + @Autowired + private IMesYfReportService mesYfReportService; + + @ApiOperation(value = "查询设备数据", notes = "查询设备数据") + @GetMapping("/query") + public ResultBean queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel conditionModel, Pager pager){ + try { + //查询条件核验 + if (StringUtils.isEmpty(conditionModel.getCreateDateTimeStart()) || StringUtils.isEmpty(conditionModel.getCreateDateTimeEnd())) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【查询时间区间】条件必填!") + .build(); + } + if (StringUtils.isEmpty(conditionModel.getWorkCellCode()) && StringUtils.isEmpty(conditionModel.getEquipmentCode())) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请至少指定【工位】与【设备编号】其中一个查询条件!") + .build(); + } + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + ListPager queryResultListPager = mesYfReportService.queryMesDeviceDataByPager(conditionModel, pager); + return ResultBean.success("查询设备数据成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java new file mode 100644 index 0000000..de2d68a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java @@ -0,0 +1,37 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao; + +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 模块EXCEL管理 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:28 + * @Modify: + **/ +public interface IMesModuleExcelDao { + + /** + * 查询模块EXCEL管理数量 + * + * @param mesModuleExcel 模块EXCEL管理信息 + * @return 数量 + */ + @ApiOperation(value = "查询模块EXCEL管理数量", notes = "查询模块EXCEL管理数量") + int queryModuleExcelCount(MesModuleExcel mesModuleExcel); + + /** + * 查询模块EXCEL管理信息集合 + * + * @param mesModuleExcel 查询条件 + * @param pager 分页条件 + * @return 模块EXCEL管理信息集合 + */ + @ApiOperation(value = "查询模块EXCEL管理信息集合", notes = "查询模块EXCEL管理信息集合") + List queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java index d87cb5d..d80ef90 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java @@ -1,6 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.dao; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import java.util.List; @@ -13,5 +13,5 @@ import java.util.List; **/ public interface IMesWorkOrderDao { - List sumMesWorkOrderQtyToSap(String organizeCode,List statusList); + List sumMesWorkOrderQtyToSap(String organizeCode, List statusList); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java new file mode 100644 index 0000000..cc405ab --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao.report; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; + +/** + * @Description : 报表-数据方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:30 + * @Modify: + **/ +public interface IMesYfReportDao { + + /** + * 设备数据查询报表-查询 + * @param queryReportModel 查询条件封装 + * @param pager 分页信息 + * @return 分页查询结果 + */ + ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java new file mode 100644 index 0000000..bfc1c0b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java @@ -0,0 +1,91 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesModuleExcelDao; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : 模块EXCEL管理 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:30 + * @Modify: + **/ +@Service +public class MesModuleExcelDaoImpl implements IMesModuleExcelDao { + + @Autowired + private EntityManager entityManager; + + @Override + public int queryModuleExcelCount(MesModuleExcel mesModuleExcel) { + StringBuffer hql = new StringBuffer(); + hql.append(" select count(distinct mem.id) "); + + packHqlForQueryModuleExcelManage(hql, mesModuleExcel); + + Query query = entityManager.createQuery(hql.toString(), Long.class); + + packParameterForQueryModuleExcelManage(query, mesModuleExcel); + + return ((Long) query.getSingleResult()).intValue(); + } + + @Override + public List queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + StringBuffer hql = new StringBuffer(); + hql.append(" select new " + MesModuleExcelModel.class.getName() + "(mem.id, mem.moduleCode, mem.moduleName, mem.fileId, f.fileUrl, f.fileOriginName, " + + " mem.organizeCode, mem.createUser, mem.createDatetime, mem.modifyUser, mem.modifyDatetime ) "); + + packHqlForQueryModuleExcelManage(hql, mesModuleExcel); + + hql.append(" order by mem.modifyDatetime desc "); + Query query = entityManager.createQuery(hql.toString(), MesModuleExcelModel.class); + + packParameterForQueryModuleExcelManage(query, mesModuleExcel); + + query.setMaxResults(pager.getPageSize()); + if (pager.getCurrentPage() == 0) { + pager.setCurrentPage(1); + } + query.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + return query.getResultList(); + } + + private void packHqlForQueryModuleExcelManage(StringBuffer hql, MesModuleExcel mesModuleExcel) { + hql.append(" from MesModuleExcel as mem "); + hql.append(" left join MesFile as f on (mem.fileId = f.id and f.organizeCode = :organizeCode and f.isValid = :isValid1 and f.isDeleted = :isDeleted) "); + hql.append(" where mem.organizeCode = :organizeCode "); + hql.append(" and mem.isValid = :isValid "); + hql.append(" and mem.isDeleted = :isDeleted "); + if (!StringUtils.isEmpty(mesModuleExcel.getModuleCode())) { + hql.append(" and mem.moduleCode like :moduleCode "); + } + if (!StringUtils.isEmpty(mesModuleExcel.getModuleName())) { + hql.append(" and mem.moduleName like :moduleName "); + } + } + + private void packParameterForQueryModuleExcelManage(Query query, MesModuleExcel mesModuleExcel) { + query.setParameter(MesExtConstWords.ORGANIZE_CODE, mesModuleExcel.getOrganizeCode()); + query.setParameter(MesExtConstWords.IS_VALID, mesModuleExcel.getIsValid()); + query.setParameter(MesExtConstWords.IS_VALID1, CommonEnumUtil.IS_VAILD.VAILD.getValue()); + query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + if (!StringUtils.isEmpty(mesModuleExcel.getModuleCode())) { + query.setParameter(MesExtConstWords.MODULE_CODE, "%" + mesModuleExcel.getModuleCode() + "%"); + } + if (!StringUtils.isEmpty(mesModuleExcel.getModuleName())) { + query.setParameter(MesExtConstWords.MODULE_NAME, "%" + mesModuleExcel.getModuleName() + "%"); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java index 4b7bd80..2db115a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java @@ -2,7 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,15 +26,15 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao { private EntityManager entityManager; @Override - public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList) { - StringBuffer hql = new StringBuffer("select new MesWorkOrder(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " + + public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList) { + StringBuffer hql = new StringBuffer("select new " + MesWorkOrderModel.class.getName() + "(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " + " from MesWorkOrder where isDeleted=:isDeleted and isValid = :isValid and organizeCode = :organizeCode " + "and workOrderStatus not in(:statusList) group by partNo,planStartTime,productVersion"); - Query query = entityManager.createQuery(hql.toString(), MesWorkOrder.class); - query.setParameter("organizeCode",organizeCode); - query.setParameter("isValid",CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - query.setParameter("isDeleted",CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - query.setParameter("statusList",statusList); + Query query = entityManager.createQuery(hql.toString(), MesWorkOrderModel.class); + query.setParameter("organizeCode", organizeCode); + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("statusList", statusList); return query.getResultList(); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java new file mode 100644 index 0000000..02231ee --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java @@ -0,0 +1,109 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : 报表-数据方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:30 + * @Modify: + **/ +@Service +public class MesYfReportDaoImpl implements IMesYfReportDao { + + @Autowired + private EntityManager entityManager; + + @Override + public ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { + StringBuilder dataQuerySql = new StringBuilder(); + StringBuilder countQuerySql = new StringBuilder(); + StringBuilder commonQuerySql = new StringBuilder(); + dataQuerySql.append("select new ") + .append(MesDeviceDataQueryReportResultModel.class.getName()) + .append("(organizeCode, workCenterCode, workCellCode, workOrderNo, serialNumber, ") + .append("logType, message, errorType, equipmentCode, equipmentName, createDatetime, createUser) "); + countQuerySql.append("select count(1) "); + commonQuerySql.append("from MesWorkCellScanMonitorLog " + + "where isValid = :isValid and isDeleted = :isDeleted and organizeCode = :organizeCode " + + "and createDatetime >= :createDateTimeStart and createDatetime <= :createDateTimeEnd "); + //非空查询条件拼接语句 + if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) { + commonQuerySql.append("and workCenterCode = :workCenterCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) { + commonQuerySql.append("and workCellCode = :workCellCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) { + commonQuerySql.append("and workOrderNo = :workOrderNo "); + } + if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) { + commonQuerySql.append("and serialNumber = :serialNumber "); + } + if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) { + commonQuerySql.append("and equipmentCode = :equipmentCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getLogType())) { + commonQuerySql.append("and logType = :logType "); + } + Query dataQuery = entityManager.createQuery(dataQuerySql.append(commonQuerySql).toString(), MesDeviceDataQueryReportResultModel.class); + dataQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue()); + dataQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + dataQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode()); + dataQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart()); + dataQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd()); + Query countQuery = entityManager.createQuery(countQuerySql.append(commonQuerySql).toString()); + countQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue()); + countQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + countQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode()); + countQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart()); + countQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd()); + if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) { + dataQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode()); + countQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) { + dataQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode()); + countQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) { + dataQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo()); + countQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo()); + } + if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) { + dataQuery.setParameter("serialNumber", queryReportModel.getSerialNumber()); + countQuery.setParameter("serialNumber", queryReportModel.getSerialNumber()); + } + if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) { + dataQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode()); + countQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getLogType())) { + dataQuery.setParameter("logType", queryReportModel.getLogType()); + countQuery.setParameter("logType", queryReportModel.getLogType()); + } + //本次查询满足条件的总数 + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + pager = PagerHelper.getPager(pager, count); + //查询本页数据 + dataQuery.setMaxResults(pager.getPageSize()); + dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + List resultList = dataQuery.getResultList(); + return new ListPager<>(resultList, pager); + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java index c0143cf..65312f4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * @Description : 接口数据转换 @@ -208,6 +209,14 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase { return defaultValue; } + //表达式包含 :NotTrans 或 NotTrans + boolean hasNotTrans = false; + if (defaultValue.toString().endsWith(WmsSAPDbExpression.NOT_TRANS)) { + defaultValue = defaultValue.toString().replace(":" + WmsSAPDbExpression.NOT_TRANS, ""); + defaultValue = defaultValue.toString().replace(WmsSAPDbExpression.NOT_TRANS, ""); + hasNotTrans = true; + } + Object objResult; try { @@ -221,6 +230,10 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase { + JSONObject.toJSONString(rowMap)); } + //添加NotTrans + if (!Objects.isNull(objResult) && hasNotTrans) { + objResult = objResult + ":" + WmsSAPDbExpression.NOT_TRANS; + } // 计算后返回 return objResult; } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java index 85a0bf4..3386444 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java @@ -3,7 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.impp.framework.boot.init.ApplicationProperties; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -61,15 +61,15 @@ public class MesWorkOrderToSapJob extends BaseMesScheduleJob { LOGGER.info("汇总工单给SAP开始 -----start"); for (String organizeCode : organizeCodeList) { - List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); - if (!CollectionUtils.isEmpty(mesWorkOrderList)){ - mesWorkOrderToSapService.doMesWorkOrder(organizeCode,mesWorkOrderList); + List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); + if (!CollectionUtils.isEmpty(mesWorkOrderList)) { + mesWorkOrderToSapService.doMesWorkOrder(organizeCode, mesWorkOrderList); } } LOGGER.info("汇总工单给SAP开始结束 ----- end"); } catch (Exception e) { - LOGGER.error("汇总工单给SAP任务结束e:{}",e.toString()); + LOGGER.error("汇总工单给SAP任务结束e:{}", e.toString()); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java index 75b0b82..d737cd9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java @@ -24,6 +24,7 @@ public class MesPackingDefineServiceImpl extends BaseMesService implements DdlPreparedPack.getStringEqualPack(bean.getWorkCellCode(), "workCellCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCellName(), "workCellName", packBean); + DdlPreparedPack.getNumEqualPack(bean.getGrade(), "grade", packBean); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 6381bdf..85cb798 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -7,7 +7,6 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.apiservice.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.MathOperation; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -16,19 +15,20 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.DateUtilExt; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -85,7 +85,7 @@ public class MesWorkOrderService extends BaseMesService implements //获取相同类型 相同标识 生产序号最大值的 DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", orderPackBean); - DdlPreparedPack.getNumEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean); + DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean); MesWorkOrder result = baseRDao.getByProperty(orderPackBean); @@ -107,6 +107,7 @@ public class MesWorkOrderService extends BaseMesService implements copyMesWorkOrder.setProduceSeq((long) (produceSeq + 1)); copyMesWorkOrder.setQty(1D); copyMesWorkOrder.setWorkOrderNo(resultList.get(0)); + copyMesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); @@ -136,7 +137,7 @@ public class MesWorkOrderService extends BaseMesService implements List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); bean.setWorkOrderNo(resultList.get(0)); bean.setQty(bean.getQty()); - + bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); ConvertBean.serviceModelInitialize(bean, bean.getCreateUser()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); @@ -232,7 +233,7 @@ public class MesWorkOrderService extends BaseMesService implements if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) { if (!Objects.equals(bean.getPartNo(), result.getPartNo())) { MesException.throwMesBusiException(String.format("工单状态为【%s】不允许修改物料", - MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus()))); + MesExtEnumUtil.ORDER_STATUS.valueOfDescription(result.getWorkOrderStatus()))); } } @@ -249,22 +250,17 @@ public class MesWorkOrderService extends BaseMesService implements } //更新状态 if (bean.getWorkOrderStatus() > 0) { - if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()) { - if (MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() != result.getWorkOrderStatus()) { - MesException.throwMesBusiException(String.format("工单状态为【%s】不为创建,不允许发布", - MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus()))); - } - } result.setWorkOrderStatus(bean.getWorkOrderStatus()); } - ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + result.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + ConvertBean.serviceModelInitialize(result, AuthUtil.getSessionUser().getUserName()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(result, workOrderLog, "id"); workOrderLogService.insert(workOrderLog); baseRDao.update(result); - return bean; + return result; } @@ -286,6 +282,25 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean); packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq asc,workOrderNo asc "); } + @Override + protected void setBeanModel(List mesWorkOrderList) { + //查询工作中心名称 + if(CollectionUtils.isEmpty(mesWorkOrderList)){ + return; + } + MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); + DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), "workCenterCode", ddlPackBean); + List mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(mesWorkCenterList)) { + return; + } + Map mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName)); + mesWorkOrderList.forEach(t->{ + t.setWorkCenterName(mesWorkCenterMap.get(t.getWorkCenterCode())); + }); + + } @Override protected void onInsertBean(MesWorkOrder item) { @@ -293,6 +308,7 @@ public class MesWorkOrderService extends BaseMesService implements // 数据校验 ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空"); ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空"); + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空"); @@ -308,19 +324,15 @@ public class MesWorkOrderService extends BaseMesService implements if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); //若工单类型为排序 标识为 N E P S - if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()) { - throw ImppExceptionBuilder.newInstance() - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识", - item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getDescription() - , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getDescription())) - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .build(); + if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){ + MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识", + item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() + , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) { packPlanTime(item); @@ -353,15 +365,13 @@ public class MesWorkOrderService extends BaseMesService implements } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空"); - if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()) { - throw ImppExceptionBuilder.newInstance() - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】 标识", - item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription())) - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .build(); + if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){ + MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】 标识", + item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() + , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) { packPlanTime(item); @@ -730,8 +740,9 @@ public class MesWorkOrderService extends BaseMesService implements } @Override - public void deleteUnSortOrder(String userName, String organizeCode) { + public void deleteUnSortOrder(String userName, String organizeCode, List partNoList) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean); DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean); @@ -930,7 +941,7 @@ public class MesWorkOrderService extends BaseMesService implements } @Override - public List sumMesWorkOrderQtyToSap(String organizeCode) { + public List sumMesWorkOrderQtyToSap(String organizeCode) { List statusList = new ArrayList<>(); statusList.add(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); // statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java index 7a4751f..d71be93 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java @@ -5,8 +5,8 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -19,7 +19,7 @@ import java.util.Objects; public class MesWorkOrderToSapServiceImpl extends BaseMesService implements IMesWorkOrderToSapService { @Override - public MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder) { + public MesWorkOrderToSap insert(MesWorkOrderModel mesWorkOrder) { MesWorkOrderToSap mesWorkOrderToSap = new MesWorkOrderToSap(mesWorkOrder.getOrganizeCode(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getProductVersion(), mesWorkOrder.getQty(), mesWorkOrder.getPlanStartTime()); @@ -28,10 +28,10 @@ public class MesWorkOrderToSapServiceImpl extends BaseMesService mesWorkOrderList) { + public void doMesWorkOrder(String organizeCode,List mesWorkOrderList) { Pager pager = new Pager(1,1); DdlPackBean ddlPackBean = null; - for (MesWorkOrder mesWorkOrder : mesWorkOrderList) { + for (MesWorkOrderModel mesWorkOrder : mesWorkOrderList) { mesWorkOrder.setOrganizeCode(organizeCode); mesWorkOrder.setModifyUser("job"); //计划开始时间+物料查询发送Sap的数据 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java new file mode 100644 index 0000000..4ec4d9a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java @@ -0,0 +1,107 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.file.IMesModuleExcelService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesModuleExcelDao; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.ext.mes.apiservice.utils.HuaWeiOBSUtil; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.sqlpack.MesExtHqlPack; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +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.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesFile; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; +import com.obs.services.model.PutObjectResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:52 + * @Modify: + **/ +@Slf4j +@Service +public class MesModuleExcelServiceImpl extends BaseMesService implements IMesModuleExcelService { + + @Autowired + private IMesModuleExcelDao mesModuleExcelDao; + + @Autowired + private MesFileRepository mesFileRDao; + + @Override + public ListPager queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + pager = PagerHelper.getPager(pager, mesModuleExcelDao.queryModuleExcelCount(mesModuleExcel)); + List moduleExcelManageModelList = mesModuleExcelDao.queryModuleExcelByPager(mesModuleExcel, pager); + return new ListPager(moduleExcelManageModelList, pager); + } + + @Override + public void insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + DdlPackBean packBean = MesExtHqlPack.getAllBaseData(mesModuleExcel.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(mesModuleExcel.getModuleCode(), MesExtConstWords.MODULE_CODE, packBean); + MesModuleExcel moduleExcelManageDb = baseRDao.getByProperty(packBean); + if (null != moduleExcelManageDb) { + MesException.throwMesBusiException("模块代码【%s】记录已存在", mesModuleExcel.getModuleCode()); + } + + MesFile f = getMesFile(file, mesModuleExcel); + mesModuleExcel.setFileId(mesFileRDao.insert(f).getId()); + ConvertBean.serviceModelInitialize(mesModuleExcel, mesModuleExcel.getCreateUser()); + baseRDao.insert(mesModuleExcel); + } + + @Override + public void updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + MesModuleExcel moduleExcelManageDb = baseRDao.getById(mesModuleExcel.getId()); + if (moduleExcelManageDb == null) { + MesException.throwMesBusiException("ID【%s】记录不存在", mesModuleExcel.getId()); + } + + //改变文件时清除fileUrl + if (StringUtils.isEmpty(mesModuleExcel.getFileUrl())) { + MesFile mesFile = getMesFile(file, mesModuleExcel); + moduleExcelManageDb.setFileId(mesFileRDao.insert(mesFile).getId()); + } + moduleExcelManageDb.setModuleName(mesModuleExcel.getModuleName()); + ConvertBean.serviceModelUpdate(moduleExcelManageDb, mesModuleExcel.getModifyUser()); + baseRDao.update(moduleExcelManageDb); + } + + private MesFile getMesFile(MultipartFile file, MesModuleExcel mesModuleExcel) { + String fileName = file.getOriginalFilename(); + PutObjectResult putObjectResult = null; + try { + putObjectResult = HuaWeiOBSUtil.putObjectByMultipartFile(MesCommonConstant.OBS_BUCKET_NAME, fileName, file); + } catch (IOException e) { + MesException.throwMesBusiException("文件上传失败"); + } + MesFile mesFile = new MesFile(); + mesFile.setOrganizeCode(mesModuleExcel.getOrganizeCode()); + mesFile.setFileName(fileName); + mesFile.setFileUrl(putObjectResult.getObjectUrl()); + mesFile.setFileSize(String.valueOf(file.getSize())); + mesFile.setGroupName(putObjectResult.getBucketName()); + mesFile.setFileType(fileName != null && fileName.contains(".") ? fileName.substring(fileName.indexOf(".") + 1) : ""); + mesFile.setFileOriginName(fileName); + ConvertBean.serviceModelInitialize(mesFile, mesModuleExcel.getCreateUser()); + return mesFile; + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java new file mode 100644 index 0000000..3f77032 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 报表-业务方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:31 + * @Modify: + **/ +@Service +public class MesYfReportServiceImpl implements IMesYfReportService { + + @Autowired + private IMesYfReportDao mesYfReportDao; + + @Override + public ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { + return mesYfReportDao.queryMesDeviceDataByPager(queryReportModel, pager); + } + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java new file mode 100644 index 0000000..9c5fd18 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java @@ -0,0 +1,48 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.report; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 设备数据查询报表-查询条件封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:38 + * @Modify: + **/ +@Data +@ApiModel("设备数据查询报表-查询条件封装") +public class MesDeviceDataQueryReportConditionModel { + + @ApiParam(value = "组织代码") + private String organizeCode; + + /** + * 查询条件 + */ + @ApiParam(value = "工作中心(产线)") + private String workCenterCode; + + @ApiParam(value = "工作单元代码(工位)") + private String workCellCode; + + @ApiParam(value = "生产工单号(工单)") + private String workOrderNo; + + @ApiParam(value = "过程条码(主条码)") + private String serialNumber; + + @ApiParam(value = "设备代码(设备编号)") + private String equipmentCode; + + @ApiParam(value = "日志类型") + private Integer logType; + + @ApiParam(value = "创建日期查询用,查询起始日期") + private String createDateTimeStart; + + @ApiParam(value = "创建日期查询用,查询结束日期") + private String createDateTimeEnd; + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java new file mode 100644 index 0000000..38f79fa --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.report; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 设备数据查询报表-查询结果封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:23 + * @Modify: + **/ +@Data +@ApiModel("设备数据查询报表-查询结果封装") +public class MesDeviceDataQueryReportResultModel { + + @ApiParam(value = "ERP工厂号(组织代码)") + private String organizeCode; + + @ApiParam(value = "工作中心(产线)") + private String workCenterCode; + + @ApiParam(value = "工作单元代码(工位)") + private String workCellCode; + + @ApiParam(value = "生产工单号(工单)") + private String workOrderNo; + + @ApiParam(value = "过程条码(主条码)") + private String serialNumber; + + @ApiParam(value = "日志类型") + private Integer logType; + + @ApiParam(value = "日志内容") + private String message; + + @ApiParam(value = "错误类型") + private String errorType; + + @ApiParam(value = "设备代码(设备编号)") + private String equipmentCode; + + @ApiParam(value = "设备名称") + private String equipmentName; + + @ApiParam(value = "创建时间") + private String createDatetime; + + @ApiParam(value = "创建人") + private String createUser; + + public MesDeviceDataQueryReportResultModel(String organizeCode, String workCenterCode, String workCellCode, + String workOrderNo, String serialNumber, Integer logType, String message, + String errorType, String equipmentCode, String equipmentName, + String createDatetime, String createUser) { + this.organizeCode = organizeCode; + this.workCenterCode = workCenterCode; + this.workCellCode = workCellCode; + this.workOrderNo = workOrderNo; + this.serialNumber = serialNumber; + this.logType = logType; + this.message = message; + this.errorType = errorType; + this.equipmentCode = equipmentCode; + this.equipmentName = equipmentName; + this.createDatetime = createDatetime; + this.createUser = createUser; + } +}