From 92a013648229b76f9403fd9c25590be28a05ff1d Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 26 Aug 2024 18:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesWorkOrderLogService.java | 4 + .../controller/base/MesWorkOrderLogController.java | 49 ++++++++++ .../serviceimpl/base/MesQmsSuspiciousService.java | 11 ++- .../serviceimpl/base/MesWorkOrderLogService.java | 103 ++++++++++++++++++++- 4 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderLogController.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java index da31f79..bb3e200 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java @@ -1,5 +1,7 @@ package cn.estsh.i3plus.ext.mes.api.base; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -12,4 +14,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; public interface IMesWorkOrderLogService extends IBaseMesService { void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder, MesExtEnumUtil.WORK_ORDER_LOG_TYPE type,double qty); + + ListPager queryMesWorkOrderLogByPage(MesWorkOrderLog mesWorkOrderLog, Pager pager); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderLogController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderLogController.java new file mode 100644 index 0000000..cb34f04 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderLogController.java @@ -0,0 +1,49 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderLogService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; +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.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 生产工单日志 + * @Reference : + * @Author : gsz + * @CreateDate 2024/8/26 17:50 + * @Modify: + **/ +@Api("生产工单日志") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesWorkOrderLog") +public class MesWorkOrderLogController extends BaseMesController{ + @Autowired + private IMesWorkOrderLogService mesWorkOrderLogService; + + @GetMapping(value = "/group-by-order-no/query") + @ApiOperation(value = "生产工单日志", notes = "生产工单日志") + public ResultBean queryMesWorkOrderLogByPage(MesWorkOrderLog mesWorkOrderLog, Pager pager) { + try { + ValidatorBean.beginValid(mesWorkOrderLog) + .notNull("organizeCode", mesWorkOrderLog.getOrganizeCode()); + + return ResultBean.success("查询成功").setListPager(mesWorkOrderLogService.queryMesWorkOrderLogByPage(mesWorkOrderLog, pager)) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java index 9f07d23..71b03b4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java @@ -56,11 +56,6 @@ public class MesQmsSuspiciousService extends BaseMesService im @Override public void doQmsSuspiciousByPartInspection(List mesPartInspectionList, String organizeCode) { - List idList = mesPartInspectionList.stream().map(MesPartInspection::getId).collect(Collectors.toList()); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "pid", packBean); - List partInspectionDetails = partInspectionDetailRDao.findByHqlWhere(packBean); - Map> idDetailListMap = partInspectionDetails.stream().collect(Collectors.groupingBy(MesPartInspectionDetail::getPid)); Map> workOrderPartMap = mesPartInspectionList.stream().collect(Collectors.groupingBy(MesPartInspection::getPartNo)); //根据物料对可疑品分组 @@ -128,6 +123,12 @@ public class MesQmsSuspiciousService extends BaseMesService im } } } + List idList = mesPartInspectionsListTime.stream().map(MesPartInspection::getId).collect(Collectors.toList()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(idList, "pid", packBean); + List partInspectionDetails = partInspectionDetailRDao.findByHqlWhere(packBean); + Map> idDetailListMap = partInspectionDetails.stream().collect(Collectors.groupingBy(MesPartInspectionDetail::getPid)); + //根据时间分组发送 // 批次的: //A 2024-08-21 08:00 10 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java index 8c9fa57..2a6ce01 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java @@ -1,17 +1,33 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderLogService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanUtil; +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.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; @Service @Slf4j public class MesWorkOrderLogService extends BaseMesService implements IMesWorkOrderLogService { - + @Autowired + private EntityManager entityManager; @Override public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder, MesExtEnumUtil.WORK_ORDER_LOG_TYPE type, double qty) { MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); @@ -20,4 +36,89 @@ public class MesWorkOrderLogService extends BaseMesService impl workOrderLog.setModifyQty(qty); baseRDao.insert(workOrderLog); } + + @Override + public ListPager queryMesWorkOrderLogByPage(MesWorkOrderLog mesWorkOrderLog, Pager pager) { + String org = mesWorkOrderLog.getOrganizeCode(); + String startTime = mesWorkOrderLog.getCreateDateTimeStart(); + String endTime = mesWorkOrderLog.getCreateDateTimeEnd(); + List mesWorkOrderLogList = new ArrayList<>(); + + String commHql = " SELECT " + + " wol.id as id," + + " wol.organize_code as organizeCode," + + " wol.create_date_time AS createDatetime, " + + " wol.create_user AS createUser, " + + " wol.modify_date_time AS modifyDatetime, " + + " wol.modify_user AS modifyUser, " + + " wol.work_order_no as workOrderNo," + + " wol.work_order_type as workOrderType," + + " wol.work_order_seq as workOrderSeq," + + " wol.cust_part_no as custPartNo," + + " wol.qty as qty,"+ + " wol.area_code as areaCode," + + " wol.work_center_code as workCenterCode," + + " wol.product_version as productVersion," + + " wol.erp_work_center as erpWorkCenter," + + " wol.work_order_status as workOrderStatus," + + " wol.shift_code as shiftCode," + + " wol.shift_name as shiftName," + + " wol.order_flag as orderFlag," + + " wol.wo_source as workOrderSource," + + " wol.adjust_qty as adjustQty,"+ + " wol.modify_qty as modifyQty,"+ + " wol.remark as remark "; + + String sql = " from mes_work_order_log wol" + + " where 1=1 " + + " and wol.organize_code =:organizeCode " + + " and wol.work_order_type = '20' " + + " and wol.adjust_qty > 0 " + + " and wol.is_deleted ='2' " + + " and wol.is_valid ='1' "; + if (!StringUtil.isEmpty(startTime)) { + sql += " and wol.modify_date_time >=:startTime "; + } + if (!StringUtil.isEmpty(endTime)) { + sql += " and wol.modify_date_time <:endTime "; + } + + if (!StringUtil.isEmpty(mesWorkOrderLog.getWorkOrderNo())) { + sql += " and wol.work_order_no ='" + mesWorkOrderLog.getWorkOrderNo() + "' "; + } + if (!StringUtil.isEmpty(mesWorkOrderLog.getWorkCenterCode())) { + sql += " and wol.work_center_code ='" + mesWorkOrderLog.getWorkCenterCode() + "' "; + } + sql += " ORDER BY wol.modify_date_time desc,work_order_no "; + + Query queryObject = entityManager.createNativeQuery(commHql + sql); + queryObject.setParameter("organizeCode", org); + if (!StringUtil.isEmpty(startTime)) { + queryObject.setParameter("startTime", startTime); + } + if (!StringUtil.isEmpty(endTime)) { + queryObject.setParameter("endTime", endTime); + } + + queryObject.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); + + List> hashMaps = queryObject.getResultList(); + if (CollectionUtils.isEmpty(hashMaps)) { + return new ListPager(mesWorkOrderLogList, pager); + } + pager = PagerHelper.getPager(pager, hashMaps.size()); + + queryObject.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()); + hashMaps = queryObject.getResultList(); + + for (HashMap hashMap : hashMaps) { + try { + mesWorkOrderLogList.add((MesWorkOrderLog) BeanUtil.populateBean(hashMap, MesWorkOrderLog.class)); + } catch (Exception e) { + e.printStackTrace(); + } + } + return new ListPager(mesWorkOrderLogList, pager); + + } }