From 6f292e8842caaac7a57f2450f1d61150ad904a20 Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 6 Mar 2025 14:16:39 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/busi/report/IMesCimSeresReportService.java | 31 ++ .../report/MesCimSeresReportController.java | 139 +++++++++ .../report/MesCimSeresReportServiceImpl.java | 324 +++++++++++++++++++++ 3 files changed, 494 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesCimSeresReportService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesCimSeresReportController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesCimSeresReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesCimSeresReportService.java new file mode 100644 index 0000000..9ce8e58 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesCimSeresReportService.java @@ -0,0 +1,31 @@ +package cn.estsh.i3plus.ext.mes.api.busi.report; + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis; +import cn.estsh.i3plus.pojo.mes.model.report.DataTwoDimensionalModel; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueRequest; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryRequest; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryResponse; + +import java.util.List; + +public interface IMesCimSeresReportService { + ListPager querySrmSunSheetJisLogByPager(Integer status, Pager pager); + + void doSrmSunSheetJisNormal(List ids); + + ListPager queryJisQueueLogByPager(Integer checkStatus, Pager pager); + + void doJisQueueNormal(List ids); + + ListPager queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager); + + ListPager queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager); + + ListPager queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager); + + ListPager queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesCimSeresReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesCimSeresReportController.java new file mode 100644 index 0000000..e90c2cb --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesCimSeresReportController.java @@ -0,0 +1,139 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesCimSeresReportService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis; +import cn.estsh.i3plus.pojo.mes.model.report.*; +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.*; + +import java.util.List; + +/** + * @Description :赛力斯报表 + * @Reference : + * @Author : jason.niu + * @CreateDate : 2025/03/04 09:59 + * @Modify: + **/ +@Api(tags = "赛力斯报表") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCimSeresReport") +public class MesCimSeresReportController { + @Autowired + private IMesCimSeresReportService mesCimSeresReportService; + + @ApiOperation(value = "赛力斯JIS单接收日志", notes = "赛力斯JIS单接收日志") + @GetMapping("/query-srm-sun-sheet-jis-log") + public ResultBean querySrmSunSheetJisLogByPager(Integer status, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.querySrmSunSheetJisLogByPager(status, 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); + } + } + + @ApiOperation(value = "赛力斯JIS单转正常", notes = "赛力斯JIS单转正常") + @PostMapping("/srm-sun-sheet-jis-normal") + public ResultBean doSrmSunSheetJisNormal(@RequestBody List ids) { + try { + mesCimSeresReportService.doSrmSunSheetJisNormal(ids); + return ResultBean.success("执行成功"); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "赛力斯JIS队列接收日志", notes = "赛力斯JIS队列接收日志") + @GetMapping("/query-jis-queue-log") + public ResultBean queryJisQueueLogByPager(Integer checkStatus, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.queryJisQueueLogByPager(checkStatus, 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); + } + } + + @ApiOperation(value = "赛力斯JIS队列转正常", notes = "赛力斯JIS队列转正常") + @PostMapping("/jis-queue-normal") + public ResultBean doJisQueueNormal(@RequestBody List ids) { + try { + mesCimSeresReportService.doJisQueueNormal(ids); + return ResultBean.success("执行成功"); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "赛力斯过点信息查询", notes = "赛力斯过点信息查询") + @GetMapping("/query-jis-vin-over-point") + public ResultBean queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.queryJisVinOverPointByPager(request, 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); + } + } + + @ApiOperation(value = "赛力斯排序信息查询", notes = "赛力斯排序信息查询") + @GetMapping("/query-jis-queue") + public ResultBean queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.queryJisQueueByPager(request, 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); + } + } + + @ApiOperation(value = "赛力斯排序信息汇总", notes = "赛力斯排序信息汇总") + @GetMapping("/query-jis-queue-summary") + public ResultBean queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.queryJisQueueSummaryByPager(request, 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); + } + } + + @ApiOperation(value = "数据二维报表", notes = "数据二维报表") + @GetMapping("/query-data-two-dimensional") + public ResultBean queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager){ + try { + ListPager queryResultListPager = mesCimSeresReportService.queryTwoDimensionalByPager(request, 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/serviceimpl/report/MesCimSeresReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java new file mode 100644 index 0000000..11dceee --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java @@ -0,0 +1,324 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesCimSeresReportService; +import cn.estsh.i3plus.ext.mes.pojo.model.MesDefectRecordModel; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis; +import cn.estsh.i3plus.pojo.mes.model.report.*; +import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisQueueRepository; +import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisVinOverPointRepository; +import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +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.ArrayList; +import java.util.List; + +@Service +public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { + @Autowired + private EntityManager entityManager; + @Autowired + private IMesCimSeresSrmRunSheetJisRepository runSheetJisRDao; + @Autowired + private IMesCimSeresJisQueueRepository queueJisRDao; + @Autowired + private IMesCimSeresJisVinOverPointRepository overPointJisRDao; + + @Override + public ListPager querySrmSunSheetJisLogByPager(Integer status, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(status, "status", packBean); + + pager = PagerHelper.getPager(pager, runSheetJisRDao.findByHqlWhereCount(packBean)); + List list = runSheetJisRDao.findByHqlWherePage(packBean, pager); + return new ListPager<>(list, pager); + } + + @Override + public void doSrmSunSheetJisNormal(List ids) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + final String username = AuthUtil.getSessionUser().getUserName(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(ids, "id", packBean); + + runSheetJisRDao.updateByProperties(new String[]{"status","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK, username, TimeTool.getNowTime(true)}, packBean); + } + + @Override + public ListPager queryJisQueueLogByPager(Integer checkStatus, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(checkStatus, "checkStatus", packBean); + + pager = PagerHelper.getPager(pager, runSheetJisRDao.findByHqlWhereCount(packBean)); + List list = queueJisRDao.findByHqlWherePage(packBean, pager); + return new ListPager<>(list, pager); + } + + @Override + public void doJisQueueNormal(List ids) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + final String username = AuthUtil.getSessionUser().getUserName(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(ids, "id", packBean); + + queueJisRDao.updateByProperties(new String[]{"checkStatus","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK, username, TimeTool.getNowTime(true)}, packBean); + } + + @Override + public ListPager queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringBiggerPack(request.getCreateDateTimeStart(), "overPointTime", packBean); + DdlPreparedPack.getStringSmallerPack(request.getCreateDateTimeEnd(), "overPointTime", packBean); + DdlPreparedPack.getStringLikerPack(request.getOverPoint(), "overPoint", packBean); + DdlPreparedPack.getStringLikerPack(request.getVin(), "vin", packBean); + + pager = PagerHelper.getPager(pager, overPointJisRDao.findByHqlWhereCount(packBean)); + List list = overPointJisRDao.findByHqlWherePage(packBean, pager); + return new ListPager<>(list, pager); + } + + @Override + public ListPager queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringBiggerPack(request.getOverPointTimeStart(), "overPointTime", packBean); + DdlPreparedPack.getStringSmallerPack(request.getOverPointTimeEnd(), "overPointTime", packBean); + DdlPreparedPack.getStringLikerPack(request.getVin(), "vin", packBean); + DdlPreparedPack.getNumberBiggerEqualPack(request.getSerialNumberStart(), "serialNumber", packBean); + DdlPreparedPack.getNumberSmallerEqualPack(request.getSerialNumberEnd(), "serialNumber", packBean); + DdlPreparedPack.getStringLikerPack(request.getPartClassCode(), "partClassCode", packBean); + DdlPreparedPack.getNumEqualPack(request.getSortInfoStatus(), "sortInfoStatus", packBean); + DdlPreparedPack.getNumEqualPack(request.getShippingOrderStatus(), "shippingOrderStatus", packBean); + + pager = PagerHelper.getPager(pager, queueJisRDao.findByHqlWhereCount(packBean)); + List list = queueJisRDao.findByHqlWherePage(packBean, pager); + return new ListPager<>(list, pager); + } + + @Override + public ListPager queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + + StringBuilder hql = new StringBuilder(); + hql.append(" from ("); + hql.append(" select b.cust_organize_code, c.shipping_group_name, a.part_no, a.part_name, a.cust_part_no, a.cust_info_seq, a.create_date_time, materiel_code, a.vin, part_class_code, part_class_name from mes_shipping_detail a join mes_shipping b on b.id = a.pid"); + hql.append(" and a.organize_code=:organizeCode and a.is_deleted=:isDeleted and a.is_valid=:isValid and b.organize_code = :organizeCode and b.is_deleted=:isDeleted and b.is_valid=:isValid"); + hql.append(" join mes_part_shipping_group c on b.shipping_group_code = c.shipping_group_code"); + hql.append(" and c.organize_code=:organizeCode and c.is_deleted=:isDeleted and c.is_valid=:isValid"); + hql.append(" join mes_cim_seres_jis_queue d on a.vin=d.vin and a.cust_part_no=d.materiel_code"); + hql.append(" and d.organize_code=:organizeCode and d.is_deleted=:isDeleted and d.is_valid=:isValid"); + hql.append(" join mes_part e on a.part_no=e.part_no"); + hql.append(" and e.organize_code=:organizeCode and e.is_deleted=:isDeleted and e.is_valid=:isValid"); + hql.append(" ) s"); + hql.append(" where 1=1"); + if (!StringUtils.isEmpty(request.getCustOrganizeCode())){ + hql.append(" and custOrganizeCode like :custOrganizeCode"); + } + if (!StringUtils.isEmpty(request.getShippingGroupName())){ + hql.append(" and shippingGroupName like :shippingGroupName"); + } + if (!StringUtils.isEmpty(request.getPartClassCode())){ + hql.append(" and partClassCode like :partClassCode"); + } + if (!StringUtils.isEmpty(request.getPartNo())){ + hql.append(" and partNo like :partNo"); + } + if (!StringUtils.isEmpty(request.getMaterielCode())){ + hql.append(" and materielCode like :materielCode"); + } + if (request.getSerialNumberStart() != null){ + hql.append(" and custInfoSeq >= :serialNumberStart"); + } + if (request.getSerialNumberEnd() != null){ + hql.append(" and custInfoSeq <= :serialNumberEnd"); + } + if (!StringUtils.isEmpty(request.getCreateDateTimeStart())){ + hql.append(" and createDatetime >= :createDateTimeStart"); + } + if (!StringUtils.isEmpty(request.getCreateDateTimeEnd())){ + hql.append(" and createDatetime <= :createDateTimeEnd"); + } + if (!StringUtils.isEmpty(request.getPartNumber())){ + hql.append(" and partNumber like :partNumber"); + } + if (!StringUtils.isEmpty(request.getVin())){ + hql.append(" and vin like :vin"); + } + hql.append(" group by cust_organize_code, shipping_group_name, part_class_code, part_class_name, part_no, part_name, materiel_code"); + + StringBuilder countQueryHql= new StringBuilder(); + countQueryHql.append("select count(1) "); + Query countQuery = entityManager.createNativeQuery(countQueryHql.append(hql).toString()); + packJisQueueSummary(countQuery, request, organizeCode); + //本次查询满足条件的总数 + int count = countQuery.getResultList().size(); + if (count <= 0) { + return new ListPager(new ArrayList(), pager); + } + + StringBuilder dataQueryHql = new StringBuilder(); + dataQueryHql.append(" select cust_organize_code, shipping_group_Name, part_class_code, part_class_name, part_no, part_name, materiel_code, COUNT(1)"); + Query dataQuery = entityManager.createNativeQuery(dataQueryHql.append(hql).toString()); + packJisQueueSummary(dataQuery, request, organizeCode); + + pager = PagerHelper.getPager(pager, count); + //查询本页数据 + dataQuery.setMaxResults(pager.getPageSize()); + dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + List list = dataQuery.getResultList(); + List modelList = new ArrayList<>(); + for (Object result : list) { + Object[] cells = (Object[]) result; + MesCimSeresJisQueueSummaryResponse model = new MesCimSeresJisQueueSummaryResponse(); + String custOrganizeCode = String.valueOf(cells[0]); + String shippingGroupName = String.valueOf(cells[1]); + String partClassCode = String.valueOf(cells[2]); + String partClassName = String.valueOf(cells[3]); + String partNo = String.valueOf(cells[4]); + String partName = String.valueOf(cells[5]); + String materielCode = String.valueOf(cells[6]); + String seqCount = String.valueOf(cells[7]); + model.setCustOrganizeCode(custOrganizeCode); + model.setShippingGroupName(shippingGroupName); + model.setPartClassCode(partClassCode); + model.setPartClassName(partClassName); + model.setPartNo(partNo); + model.setPartName(partName); + model.setMaterielCode(materielCode); + model.setCount(Integer.parseInt(seqCount)); + modelList.add(model); + } + + return new ListPager<>(modelList, pager); + } + + private void packJisQueueSummary(Query query, MesCimSeresJisQueueSummaryRequest request, String organizeCode) { + query.setParameter("organizeCode", organizeCode) + .setParameter("isValid", CommonEnumUtil.VALID) + .setParameter("isDeleted", CommonEnumUtil.FALSE); + if (!StringUtils.isEmpty(request.getCustOrganizeCode())){ + query.setParameter("custOrganizeCode", request.getCustOrganizeCode()); + } + if (!StringUtils.isEmpty(request.getShippingGroupName())){ + query.setParameter("shippingGroupName", request.getShippingGroupName()); + } + if (!StringUtils.isEmpty(request.getPartClassCode())){ + query.setParameter("partClassCode", request.getPartClassCode()); + } + if (!StringUtils.isEmpty(request.getPartNo())){ + query.setParameter("partNo", request.getPartNo()); + } + if (!StringUtils.isEmpty(request.getMaterielCode())){ + query.setParameter("materielCode", request.getMaterielCode()); + } + if (request.getSerialNumberStart() != null){ + query.setParameter("serialNumberStart", request.getSerialNumberStart()); + } + if (request.getSerialNumberEnd() != null){ + query.setParameter("serialNumberEnd", request.getSerialNumberEnd()); + } + if (!StringUtils.isEmpty(request.getCreateDateTimeStart())){ + query.setParameter("createDateTimeStart", request.getCreateDateTimeStart()); + } + if (!StringUtils.isEmpty(request.getCreateDateTimeEnd())){ + query.setParameter("createDateTimeEnd", request.getCreateDateTimeEnd()); + } + if (!StringUtils.isEmpty(request.getPartNumber())){ + query.setParameter("partNumber", request.getPartNumber()); + } + if (!StringUtils.isEmpty(request.getVin())){ + query.setParameter("vin", request.getVin()); + } + } + + @Override + public ListPager queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager) { + final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + + StringBuilder hql = new StringBuilder(); + hql.append(" from mes_cim_seres_jis_rfid AA join ("); + hql.append(" select A.shipping_code, B.cust_info_seq, B.vin as vin, A.create_date_time from mes_shipping as A join mes_shipping_detail as B on A.id = B.pid"); + hql.append(" where A.organize_code = :organizeCode and A.is_deleted=:isDeleted and A.is_valid=:isValid and B.organize_code = :organizeCode and B.is_deleted=:isDeleted and B.is_valid=:isValid"); + hql.append(" and A.shipping_group_code = :shippingGroupCode) BB on AA.vin = BB.vin"); + if (!StringUtils.isEmpty(request.getShippingCode())) { + hql.append(" and BB.shipping_code like :shippingCode"); + } + if (request.getCustInfoSeq() != null){ + hql.append(" and BB.cust_info_seq = :custInfoSeq"); + } + if (!StringUtils.isEmpty(request.getVin())){ + hql.append(" and BB.vin like :vin"); + } + + StringBuilder countQueryHql= new StringBuilder(); + countQueryHql.append("select count(1) "); + Query countQuery = entityManager.createNativeQuery(countQueryHql.append(hql).toString()); + packTwoDimensional(countQuery, request, organizeCode); + //本次查询满足条件的总数 + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + + StringBuilder dataQueryHql = new StringBuilder(); + dataQueryHql.append(" select BB.shipping_code, BB.cust_info_seq, BB.vin, csn, CONCAT(LEFT(rfid,114), UPPER('326312JSG1DJ05')) as rfid, AA.create_date_time"); + Query dataQuery = entityManager.createNativeQuery(dataQueryHql.append(hql).toString()); + packTwoDimensional(dataQuery, request, organizeCode); + + pager = PagerHelper.getPager(pager, count); + //查询本页数据 + dataQuery.setMaxResults(pager.getPageSize()); + dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + List list = dataQuery.getResultList(); + List modelList = new ArrayList<>(); + for (Object result : list) { + Object[] cells = (Object[]) result; + DataTwoDimensionalModel model = new DataTwoDimensionalModel(); + String shippingCode = String.valueOf(cells[0]); + String custInfoSeq = String.valueOf(cells[1]); + String vin = String.valueOf(cells[2]); + String csn = String.valueOf(cells[3]); + String rfid = String.valueOf(cells[4]); + String createDateTime = String.valueOf(cells[5]); + model.setShippingCode(shippingCode); + model.setCustInfoSeq(Long.parseLong(custInfoSeq)); + model.setVin(vin); + model.setCsn(csn); + model.setRfid(rfid); + model.setCreateDatetime(createDateTime); + modelList.add(model); + } + + return new ListPager<>(modelList, pager); + } + + private void packTwoDimensional(Query query, DataTwoDimensionalModel request, String organizeCode) { + query.setParameter("organizeCode", organizeCode) + .setParameter("isValid", CommonEnumUtil.VALID) + .setParameter("isDeleted", CommonEnumUtil.FALSE); + query.setParameter("shippingGroupCode", request.getShippingGroupCode()); + if (!StringUtils.isEmpty(request.getShippingCode())){ + query.setParameter("shippingCode", request.getShippingCode()); + } + if (request.getCustInfoSeq() != null){ + query.setParameter("custInfoSeq", request.getCustInfoSeq()); + } + if (!StringUtils.isEmpty(request.getVin())){ + query.setParameter("vin", request.getVin()); + } + } +} From fe6ba8e8cffe8298fdc11c38bef29928736017be Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 7 Mar 2025 10:14:18 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/MesCimSeresReportServiceImpl.java | 28 +++++++++++++++------- .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 ++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java index 11dceee..e91d410 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesCimSeresReportService; -import cn.estsh.i3plus.ext.mes.pojo.model.MesDefectRecordModel; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -9,10 +11,14 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue; import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint; import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis; -import cn.estsh.i3plus.pojo.mes.model.report.*; +import cn.estsh.i3plus.pojo.mes.model.report.DataTwoDimensionalModel; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueRequest; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryRequest; +import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryResponse; import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisQueueRepository; import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisVinOverPointRepository; import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository; @@ -37,6 +43,8 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { private IMesCimSeresJisQueueRepository queueJisRDao; @Autowired private IMesCimSeresJisVinOverPointRepository overPointJisRDao; + @Autowired + private IMesConfigService mesConfigService; @Override public ListPager querySrmSunSheetJisLogByPager(Integer status, Pager pager) { @@ -56,7 +64,7 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(ids, "id", packBean); - runSheetJisRDao.updateByProperties(new String[]{"status","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK, username, TimeTool.getNowTime(true)}, packBean); + runSheetJisRDao.updateByProperties(new String[]{"status","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK.getValue(), username, TimeTool.getNowTime(true)}, packBean); } @Override @@ -77,7 +85,7 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(ids, "id", packBean); - queueJisRDao.updateByProperties(new String[]{"checkStatus","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK, username, TimeTool.getNowTime(true)}, packBean); + queueJisRDao.updateByProperties(new String[]{"checkStatus","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK.getValue(), username, TimeTool.getNowTime(true)}, packBean); } @Override @@ -251,6 +259,10 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { @Override public ListPager queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager) { final String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + MesConfig shippingGroupConfig = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.TWO_DIMENSIONAL_SHIPPING_GROUP_CODE); + if (shippingGroupConfig == null || StringUtils.isEmpty(shippingGroupConfig.getCfgValue())){ + MesException.throwMesBusiException("未维护赛力斯数据二维表发运组编码【TWO_DIMENSIONAL_SHIPPING_GROUP_CODE】"); + } StringBuilder hql = new StringBuilder(); hql.append(" from mes_cim_seres_jis_rfid AA join ("); @@ -270,14 +282,14 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { StringBuilder countQueryHql= new StringBuilder(); countQueryHql.append("select count(1) "); Query countQuery = entityManager.createNativeQuery(countQueryHql.append(hql).toString()); - packTwoDimensional(countQuery, request, organizeCode); + packTwoDimensional(countQuery, request, shippingGroupConfig.getCfgValue(), organizeCode); //本次查询满足条件的总数 int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); StringBuilder dataQueryHql = new StringBuilder(); dataQueryHql.append(" select BB.shipping_code, BB.cust_info_seq, BB.vin, csn, CONCAT(LEFT(rfid,114), UPPER('326312JSG1DJ05')) as rfid, AA.create_date_time"); Query dataQuery = entityManager.createNativeQuery(dataQueryHql.append(hql).toString()); - packTwoDimensional(dataQuery, request, organizeCode); + packTwoDimensional(dataQuery, request, shippingGroupConfig.getCfgValue(), organizeCode); pager = PagerHelper.getPager(pager, count); //查询本页数据 @@ -306,11 +318,11 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { return new ListPager<>(modelList, pager); } - private void packTwoDimensional(Query query, DataTwoDimensionalModel request, String organizeCode) { + private void packTwoDimensional(Query query, DataTwoDimensionalModel request, String shippingGroupCode, String organizeCode) { query.setParameter("organizeCode", organizeCode) .setParameter("isValid", CommonEnumUtil.VALID) .setParameter("isDeleted", CommonEnumUtil.FALSE); - query.setParameter("shippingGroupCode", request.getShippingGroupCode()); + query.setParameter("shippingGroupCode", shippingGroupCode); if (!StringUtils.isEmpty(request.getShippingCode())){ query.setParameter("shippingCode", request.getShippingCode()); } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 4ef475a..3518aac 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -455,4 +455,6 @@ public class MesExtConstWords { //排序线不能做报工调整ESD属性类型 public static final String NOT_ALLOW_WRITE_OFF = "NOT_ALLOW_WRITE_OFF"; + //赛力斯数据二维表发运组编码 + public static final String TWO_DIMENSIONAL_SHIPPING_GROUP_CODE = "TWO_DIMENSIONAL_SHIPPING_GROUP_CODE"; } From 626f1efd0d0cf011f05ae220b672afbe7ea5933b Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 10 Mar 2025 18:17:44 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=9B=E5=8A=9B?= =?UTF-8?q?=E6=96=AF=E6=8A=A5=E8=A1=A8=E6=9F=A5=E8=AF=A2=E9=97=AE=E8=85=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/MesCimSeresReportServiceImpl.java | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java index e91d410..5210ec4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java @@ -73,7 +73,7 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(checkStatus, "checkStatus", packBean); - pager = PagerHelper.getPager(pager, runSheetJisRDao.findByHqlWhereCount(packBean)); + pager = PagerHelper.getPager(pager, queueJisRDao.findByHqlWhereCount(packBean)); List list = queueJisRDao.findByHqlWherePage(packBean, pager); return new ListPager<>(list, pager); } @@ -137,31 +137,31 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { hql.append(" ) s"); hql.append(" where 1=1"); if (!StringUtils.isEmpty(request.getCustOrganizeCode())){ - hql.append(" and custOrganizeCode like :custOrganizeCode"); + hql.append(" and cust_organize_code like :custOrganizeCode"); } if (!StringUtils.isEmpty(request.getShippingGroupName())){ - hql.append(" and shippingGroupName like :shippingGroupName"); + hql.append(" and shipping_group_name like :shippingGroupName"); } if (!StringUtils.isEmpty(request.getPartClassCode())){ - hql.append(" and partClassCode like :partClassCode"); + hql.append(" and part_class_code like :partClassCode"); } if (!StringUtils.isEmpty(request.getPartNo())){ - hql.append(" and partNo like :partNo"); + hql.append(" and part_no like :partNo"); } if (!StringUtils.isEmpty(request.getMaterielCode())){ - hql.append(" and materielCode like :materielCode"); + hql.append(" and materiel_code like :materielCode"); } if (request.getSerialNumberStart() != null){ - hql.append(" and custInfoSeq >= :serialNumberStart"); + hql.append(" and cust_info_seq >= :serialNumberStart"); } if (request.getSerialNumberEnd() != null){ - hql.append(" and custInfoSeq <= :serialNumberEnd"); + hql.append(" and cust_info_seq <= :serialNumberEnd"); } if (!StringUtils.isEmpty(request.getCreateDateTimeStart())){ - hql.append(" and createDatetime >= :createDateTimeStart"); + hql.append(" and create_date_time >= :createDateTimeStart"); } if (!StringUtils.isEmpty(request.getCreateDateTimeEnd())){ - hql.append(" and createDatetime <= :createDateTimeEnd"); + hql.append(" and create_date_time <= :createDateTimeEnd"); } if (!StringUtils.isEmpty(request.getPartNumber())){ hql.append(" and partNumber like :partNumber"); @@ -324,13 +324,13 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { .setParameter("isDeleted", CommonEnumUtil.FALSE); query.setParameter("shippingGroupCode", shippingGroupCode); if (!StringUtils.isEmpty(request.getShippingCode())){ - query.setParameter("shippingCode", request.getShippingCode()); + query.setParameter("shippingCode", "%" + request.getShippingCode() + "%"); } if (request.getCustInfoSeq() != null){ query.setParameter("custInfoSeq", request.getCustInfoSeq()); } if (!StringUtils.isEmpty(request.getVin())){ - query.setParameter("vin", request.getVin()); + query.setParameter("vin", "%" + request.getVin() + "%"); } } } From acb394bb6b863697dc33c55e8ffeebb7667398d0 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 10 Mar 2025 21:17:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=9B=E5=8A=9B?= =?UTF-8?q?=E6=96=AF=E6=8A=A5=E8=A1=A8=E6=9F=A5=E8=AF=A2=E9=97=AE=E8=85=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java index 5210ec4..4ed4089 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesCimSeresReportServiceImpl.java @@ -126,7 +126,7 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { StringBuilder hql = new StringBuilder(); hql.append(" from ("); - hql.append(" select b.cust_organize_code, c.shipping_group_name, a.part_no, a.part_name, a.cust_part_no, a.cust_info_seq, a.create_date_time, materiel_code, a.vin, part_class_code, part_class_name from mes_shipping_detail a join mes_shipping b on b.id = a.pid"); + hql.append(" select b.cust_organize_code, c.shipping_group_name, a.part_no, a.part_name, a.cust_part_no, a.cust_info_seq, a.create_date_time, materiel_code, a.vin, part_class_code, part_class_name, d.part_number from mes_shipping_detail a join mes_shipping b on b.id = a.pid"); hql.append(" and a.organize_code=:organizeCode and a.is_deleted=:isDeleted and a.is_valid=:isValid and b.organize_code = :organizeCode and b.is_deleted=:isDeleted and b.is_valid=:isValid"); hql.append(" join mes_part_shipping_group c on b.shipping_group_code = c.shipping_group_code"); hql.append(" and c.organize_code=:organizeCode and c.is_deleted=:isDeleted and c.is_valid=:isValid"); @@ -164,7 +164,7 @@ public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService { hql.append(" and create_date_time <= :createDateTimeEnd"); } if (!StringUtils.isEmpty(request.getPartNumber())){ - hql.append(" and partNumber like :partNumber"); + hql.append(" and part_number like :partNumber"); } if (!StringUtils.isEmpty(request.getVin())){ hql.append(" and vin like :vin");