From 2f388460ccf607f63b55a85e95c2a87febd160ca Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 17 Dec 2024 12:40:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E8=AE=B0=E5=BD=95=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/IMesProductionRecordReportExtService.java | 13 ++ .../MesProductionRecordReportExtController.java | 47 ++++ .../dao/report/IProductionRecordReportExtDao.java | 20 ++ .../report/ProductionRecordReportExtDao.java | 232 ++++++++++++++++++++ .../base/MesProductionRecordReportExtService.java | 77 +++++++ .../src/main/resources/application-6.properties | 242 +++++++++++++++++++++ .../report/MesProductionRecordReportExtModel.java | 66 ++++++ .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 + 8 files changed, 699 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordReportExtService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProductionRecordReportExtController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IProductionRecordReportExtDao.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ProductionRecordReportExtDao.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/resources/application-6.properties create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordReportExtService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordReportExtService.java new file mode 100644 index 0000000..7599d7d --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordReportExtService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProductionRecordReportExtModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import io.swagger.annotations.ApiOperation; + +public interface IMesProductionRecordReportExtService { + + @ApiOperation(value = "加工记录合并批量汇报查询报表") + ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProductionRecordReportExtController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProductionRecordReportExtController.java new file mode 100644 index 0000000..d89171d --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProductionRecordReportExtController.java @@ -0,0 +1,47 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordReportExtService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProductionRecordReportExtModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.BaseController; +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; + +@Api("加工记录合并批量汇报查询报表") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN) +public class MesProductionRecordReportExtController extends BaseController { + + @Autowired + private IMesProductionRecordReportExtService productionRecordReportExtService; + + @GetMapping(value = "/production-record/union/work-order-log/report/query") + @ApiOperation(value = "加工记录合并批量汇报查询报表") + public ResultBean queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager) { + try { + ValidatorBean.beginValid(model) + .notNull(MesExtConstWords.ORGANIZE_CODE, model.getOrganizeCode()) + .notNull(MesExtConstWords.COMPLETE_DATE_TIME_START, model.getCompleteDateTimeStart()) + .notNull(MesExtConstWords.COMPLETE_DATE_TIME_END, model.getCompleteDateTimeEnd()); + + return ResultBean.success("查询成功").setListPager(productionRecordReportExtService.queryProductionRecordUnionWorkOrderLogReport(model, 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/dao/report/IProductionRecordReportExtDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IProductionRecordReportExtDao.java new file mode 100644 index 0000000..909e3ec --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IProductionRecordReportExtDao.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao.report; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProductionRecordReportExtModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; + +import java.util.List; + +/** + * @Description : 加工记录合并批量汇报查询报表 + * @Reference : + * @Author : wangjie + * @CreateDate : 2024/9/29 10:21 + * @Modify: + **/ +public interface IProductionRecordReportExtDao { + + ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List reportStatusList); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ProductionRecordReportExtDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ProductionRecordReportExtDao.java new file mode 100644 index 0000000..d3df87b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ProductionRecordReportExtDao.java @@ -0,0 +1,232 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IProductionRecordReportExtDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProductionRecordReportExtModel; +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.mes.model.report.AssemblyPartReportModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : 加工记录合并批量汇报查询报表 + * @Reference : + * @Author : wangjie + * @CreateDate : 2024/9/29 10:21 + * @Modify: + **/ +@Service +public class ProductionRecordReportExtDao implements IProductionRecordReportExtDao { + + @Autowired + private EntityManager entityManager; + + @Override + public ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List reportStatusList) { + + StringBuilder dataQueryHql = new StringBuilder(); + StringBuilder countQueryHql= new StringBuilder(); + + if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { +// dataQueryHql.append("SELECT o.* FROM ( ") + } + + + + + + + + + + + + + + return null; + } + + public ListPager queryReport(AssemblyPartReportModel model, Pager pager) { + StringBuilder dataQueryHql = new StringBuilder(); + dataQueryHql.append("SELECT new ").append(AssemblyPartReportModel.class.getName()).append("("); + dataQueryHql.append("mes_production_assembly.serialNumber AS serialNumber,"); + dataQueryHql.append("mes_production_assembly.workCenterCode AS workCenterCode,"); + dataQueryHql.append("mes_production_assembly.workCellCode AS workCellCode,"); + dataQueryHql.append("mes_production_assembly.partNo AS partNo,"); + dataQueryHql.append("mes_production_assembly.partName AS partName,"); + dataQueryHql.append("mes_production_assembly.matchType AS matchType,"); + dataQueryHql.append("mes_production_assembly.matchRule AS matchRule,"); + dataQueryHql.append("mes_production_assembly.assemblyPartNo AS assemblyPartNo,"); + dataQueryHql.append("mes_production_assembly.assemblyPartName AS assemblyPartName,"); + dataQueryHql.append("mes_production_assembly.assemblySn AS assemblySn,"); + dataQueryHql.append("mes_production_assembly.productSn AS productSn,"); + dataQueryHql.append("mes_production_assembly.isSkip AS isSkip,"); + dataQueryHql.append("mes_production_assembly.createDatetime AS createDatetime,"); + dataQueryHql.append("mes_production_assembly.createUser AS createUser,"); + dataQueryHql.append("mes_production_record.workOrderNo AS workOrderNo,"); + dataQueryHql.append("mes_production_record.lotNo AS lotNo,"); + dataQueryHql.append("mes_equipment.equipmentName AS equipmentName,"); + dataQueryHql.append("mes_equipment.equipId AS equipId "); + dataQueryHql.append(") "); + + StringBuilder countQueryHql= new StringBuilder(); + countQueryHql.append("select count(1)"); + + StringBuilder commonQueryHql = new StringBuilder(); + commonQueryHql.append("FROM MesProductionAssembly mes_production_assembly "); + commonQueryHql.append("JOIN MesProductionRecord mes_production_record ON mes_production_assembly.productionRecordId = mes_production_record.id "); + commonQueryHql.append("JOIN MesEquipment mes_equipment ON mes_production_record.equipmentCode = mes_equipment.equipmentCode "); + commonQueryHql.append("WHERE 1=1 "); + commonQueryHql.append("AND mes_production_assembly.organizeCode = :organizeCode "); + commonQueryHql.append("AND mes_production_record.organizeCode = :organizeCode "); + commonQueryHql.append("AND mes_equipment.organizeCode = :organizeCode "); + commonQueryHql.append("AND mes_production_assembly.isDeleted = :isDeleted "); + commonQueryHql.append("AND mes_production_record.isDeleted = :isDeleted "); + commonQueryHql.append("AND mes_equipment.isDeleted = :isDeleted "); + commonQueryHql.append("AND mes_production_assembly.isValid = :isValid "); + commonQueryHql.append("AND mes_production_record.isValid = :isValid "); + commonQueryHql.append("AND mes_equipment.isValid = :isValid "); + // like 条码 + if(!StringUtils.isEmpty(model.getSerialNumber())){ + commonQueryHql.append("AND mes_production_assembly.serialNumber like :serialNumber "); + } + // = 装配件条码确认规则 + if (!StringUtils.isEmpty(model.getMatchRule())){ + commonQueryHql.append("AND mes_production_assembly.matchRule = :matchRule "); + } + // like 零件号 + if(!StringUtils.isEmpty(model.getPartNo())){ + commonQueryHql.append("AND mes_production_assembly.partNo like :partNo "); + } + //like 主零件号 + if(!StringUtils.isEmpty(model.getPartName())){ + commonQueryHql.append("AND mes_production_assembly.partName like :partName "); + } + //like 装配零件号 + if(!StringUtils.isEmpty(model.getAssemblyPartNo())){ + commonQueryHql.append("AND mes_production_assembly.assemblyPartNo like :assemblyPartNo "); + } + //like 装配件零件名称 + if(!StringUtils.isEmpty(model.getAssemblyPartName())){ + commonQueryHql.append("AND mes_production_assembly.assemblyPartName like :assemblyPartName "); + } + //like 装配条码 + if(!StringUtils.isEmpty(model.getAssemblySn())){ + commonQueryHql.append("AND mes_production_assembly.assemblySn like :assemblySn "); + } + // = 是否跳过 + if(model.getIsSkip() != null){ + commonQueryHql.append("AND mes_production_assembly.isSkip = :isSkip "); + } + //like 创建人 + if(!StringUtils.isEmpty(model.getCreateUser())){ + commonQueryHql.append("AND mes_production_assembly.createUser like :createUser "); + } + //范围时间 创建时间 + if (!StringUtils.isEmpty(model.getCreateDateTimeStart()) && !StringUtils.isEmpty(model.getCreateDateTimeEnd())){ + commonQueryHql.append("AND mes_production_assembly.createDatetime between :createDateTimeStart and :createDateTimeEnd "); + } + //like 产线 + if(!StringUtils.isEmpty(model.getWorkCenterCode())){ + commonQueryHql.append("AND mes_production_assembly.workCenterCode like :workCenterCode "); + } + //like 工位编号 + if(!StringUtils.isEmpty(model.getWorkCellCode())){ + commonQueryHql.append("AND mes_production_assembly.workCellCode like :workCellCode "); + } + if (model.getMatchType()!=null){ + commonQueryHql.append("AND mes_production_assembly.matchRule = :matchRule "); + } + //like 加工单号 + if(!StringUtils.isEmpty(model.getWorkOrderNo())){ + commonQueryHql.append("AND mes_production_record.workOrderNo like :workOrderNo "); + } + //like 设备名称 + if(!StringUtils.isEmpty(model.getEquipmentName())){ + commonQueryHql.append("AND mes_equipment.equipmentName like :equipmentName "); + } + if (model.getEquipId()!=null){ + commonQueryHql.append("AND mes_equipment.equipId = :equipId "); + } + commonQueryHql.append("ORDER BY mes_production_assembly.createDatetime DESC "); + + Query dataQuery = entityManager.createQuery(dataQueryHql.append(commonQueryHql).toString(), AssemblyPartReportModel.class); + setQueryParams(dataQuery, model); + Query countQuery = entityManager.createQuery(countQueryHql.append(commonQueryHql).toString()); + setQueryParams(countQuery, model); + + //本次查询满足条件的总数 + 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); + } + + private void setQueryParams(Query dataQuery, AssemblyPartReportModel model) { + dataQuery.setParameter("organizeCode", model.getOrganizeCode()); + dataQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + dataQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue()); + if(!StringUtils.isEmpty(model.getSerialNumber())){ + dataQuery.setParameter("serialNumber", model.getSerialNumber() + "%"); + } + if (model.getMatchType()!=null){ + dataQuery.setParameter("matchType", model.getMatchType()); + } + if(!StringUtils.isEmpty(model.getPartNo())){ + dataQuery.setParameter("partNo", model.getPartNo() + "%"); + } + if(!StringUtils.isEmpty(model.getPartName())){ + dataQuery.setParameter("partName", model.getPartName() + "%"); + } + if(!StringUtils.isEmpty(model.getAssemblyPartNo())){ + dataQuery.setParameter("assemblyPartNo", model.getAssemblyPartNo() + "%"); + } + if(!StringUtils.isEmpty(model.getAssemblyPartName())){ + dataQuery.setParameter("assemblyPartName", model.getAssemblyPartName() + "%"); + } + if(!StringUtils.isEmpty(model.getAssemblySn())){ + dataQuery.setParameter("assemblySn", model.getAssemblySn() + "%"); + } + if(model.getIsSkip() != null){ + dataQuery.setParameter("isSkip", model.getIsSkip()); + } + if(!StringUtils.isEmpty(model.getCreateUser())){ + dataQuery.setParameter("createUser", model.getCreateUser() + "%"); + } + if (!StringUtils.isEmpty(model.getCreateDateTimeStart()) && !StringUtils.isEmpty(model.getCreateDateTimeEnd())){ + dataQuery.setParameter("createDateTimeStart", model.getCreateDateTimeStart()); + dataQuery.setParameter("createDateTimeEnd", model.getCreateDateTimeEnd()); + } + if(!StringUtils.isEmpty(model.getWorkCenterCode())){ + dataQuery.setParameter("workCenterCode", model.getWorkCenterCode() + "%"); + } + if(!StringUtils.isEmpty(model.getWorkCellCode())){ + dataQuery.setParameter("workCellCode", model.getWorkCellCode() + "%"); + } + if (model.getMatchType()!=null){ + dataQuery.setParameter("matchRule", model.getMatchRule()); + } + if(!StringUtils.isEmpty(model.getWorkOrderNo())){ + dataQuery.setParameter("workOrderNo", model.getWorkOrderNo() + "%"); + } + if(!StringUtils.isEmpty(model.getEquipmentName())){ + dataQuery.setParameter("equipmentName", model.getEquipmentName() + "%"); + } + if (model.getEquipId()!=null){ + dataQuery.setParameter("equipId", model.getEquipId()); + } + } + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java new file mode 100644 index 0000000..ca71f9e --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java @@ -0,0 +1,77 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordReportExtService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IProductionRecordReportExtDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProductionRecordReportExtModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Service +@Slf4j +public class MesProductionRecordReportExtService implements IMesProductionRecordReportExtService { + + @Autowired + private IProductionRecordReportExtDao productionRecordReportExtDao; + + /** + * 加工记录合并批量汇报查询报表 + * @param model 查询条件 + * @param pager 分页条件 + * @return + */ + @Override + public ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager) { + + List reportStatusList = !StringUtils.isEmpty(model.getReportStatusList()) + ? Arrays.asList(model.getReportStatusList().split(MesExtConstWords.COMMA)).stream().map(Integer::parseInt).collect(Collectors.toList()) + : Stream.of(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_10.getValue(), + MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_20.getValue(), MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue()).collect(Collectors.toList()); + + List reportStatusList2Pr = null; + if (reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_10.getValue())) { + reportStatusList2Pr = new ArrayList<>(); + reportStatusList2Pr.add(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue()); + reportStatusList2Pr.add(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()); + } + if (reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_20.getValue())) { + if (CollectionUtils.isEmpty(reportStatusList2Pr)) reportStatusList2Pr = new ArrayList<>(); + reportStatusList2Pr.add(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()); + } + + if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode()) && + reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) model.setIsQueryWo(true); + + Integer startRow = (pager.getCurrentPage() - 1) * pager.getPageSize(); + + ListPager listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr); + + + + + + + + + + + + + + + return null; + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/resources/application-6.properties b/modules/i3plus-ext-mes-apiservice/src/main/resources/application-6.properties new file mode 100644 index 0000000..fac868c --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/resources/application-6.properties @@ -0,0 +1,242 @@ +#\u9879\u76EE\u7AEF\u53E3 +server.port=8300 +#\u672C\u673Aip +impp.server.ip=localhost +#\u94FE\u8DEF\u8FFD\u8E2Azipkin\u63A7\u5236\u53F0ip\u5730\u5740 +impp.console.ip=http://10.193.30.22:8010 +################ \u529F\u80FD\u914D\u7F6E1 ################ +#mes webservice\u5F00\u5173 +mes.webservice.open=true +#\u5DE5\u4F5C\u533AID,\u4E0D\u540C\u670D\u52A1\u5668\u4E0D\u540CID 0 - 31 +impp.snowflake.work.id=19 +#\u6570\u636E\u4ED3\u533AID 0 - 31 \u6709\u9ED8\u8BA4\u56FA\u5B9AID +impp.snowflake.database.id=11 +#\u82E5\u65E0\u6CD5\u8FDE\u63A5\u6CE8\u518C\u4E2D\u5FC3\uFF0C\u662F\u5426\u9700\u8981\u4E00\u76F4\u68C0\u6D4B\u52A0\u5165 +impp.cluster.fetch=false +#\u670D\u52A1\u6CE8\u518C\u4E2D\u5FC3 +impp.cluster.regist.center=http://10.193.30.22:8000/eureka/ +#\u65E5\u5FD7\u9ED8\u8BA4\u4F7F\u7528log4j2 +logging.config=classpath:log4j2-spring.xml +########\u5E73\u53F0\u76F8\u5173\u53C2\u6570########## +#\u662F\u5426\u5F00\u542Fredis\u7F13\u5B58 +impp.config.redis=true +#\u662F\u5426\u5F00\u542Fmongo +impp.config.mongo=true +#\u662F\u5426\u5F00\u542FrabbitMQ +impp.config.rabbitmq=false +#\u662F\u5426\u5F00\u542Fswagger +impp.config.swagger=true +#\u662F\u5426\u5F00\u542Fwebsocket +impp.config.websocket=true +#\u662F\u5426\u5F00\u542F\u6587\u4EF6\u670D\u52A1 +impp.config.fileserver=fastdfs +#\u662F\u5426\u5BF9\u53D1\u5E03\u670D\u52A1\u8FDB\u884C\u8BE6\u7EC6\u65E5\u5FD7\u5206\u6790 +impp.log.detail.controller=false +#\u662F\u5426\u5BF9\u8C03\u7528\u670D\u52A1\u8FDB\u884C\u8BE6\u7EC6\u65E5\u5FD7\u5206\u6790 +impp.log.detail.service=false +################ \u961F\u5217\u5904\u7406 ################ +#\u7AD9\u5185\u4FE1 +impp.mq.queue.letter=true +#\u90AE\u4EF6 +impp.mq.queue.mail=true +#\u5B9A\u65F6\u4EFB\u52A1 +impp.mq.queue.schedule=true +#SWEB\u901A\u77E5\u5904\u7406\u961F\u5217 +impp.mq.queue.sweb.notice=true +################################ \u5176\u4ED6\u529F\u80FD\u8BBE\u7F6E ################################ +#elasticsearch ip \u591A\u4E2A\u7528\u9017\u53F7\u9694\u5F00 +elasticsearch.ip=10.193.30.22:9200 +################ FastDfs \u914D\u7F6E ################ +#tracker\u670D\u52A1\u5668ip +fastdfs.tracker_servers=10.193.30.22:22122 +# tracker\u7684http\u7AEF\u53E3 +fastdfs.http_tracker_http_port=22122 +# \u4F7F\u7528\u81EA\u5B9A\u4E49\u5DE5\u5177\u83B7\u53D6\u6587\u4EF6\u5C55\u793A\u5730\u5740 +fastdfs.http.ui.host=http://dfs.estsh.com +#\u5BC6\u7801 +#fastdfs.http.secret_key= +#\u8FDE\u63A5\u8D85\u65F6 +fastdfs.connect_timeout_in_seconds=500000 +#\u4F20\u8F93\u8D85\u65F6 +fastdfs.network_timeout_in_seconds=60000000 +fastdfs.charset=UTF-8 +# token \u9632\u76D7\u94FE\u529F\u80FD +fastdfs.http_anti_steal_token=no +#redisIP +redis.hostName=10.193.30.9 +#\u7AEF\u53E3\u53F7 +redis.port=6379 +#\u5982\u679C\u6709\u5BC6\u7801 +redis.password=(mfLEu7@9kmfdsTy +##\u5176\u4ED6redis\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904 +################## rabbitMQ\u914D\u7F6E #################### +spring.rabbitmq.vhost=/ +spring.rabbitmq.host=10.193.30.18 +spring.rabbitmq.port=15672 +spring.rabbitmq.username=root +spring.rabbitmq.password=(mfLEu7@9kmfdsTy +##\u5176\u4ED6rabbitMq\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904 +################ \u529F\u80FD\u914D\u7F6E2 ################ +#\u662F\u5426\u5F00\u542Fredis +mes.redis.open=true +#\u662F\u5426\u5141\u8BB8\u524D\u7AEF\u8DE8\u57DF\u63D0\u4EA4 +impp.web.cross=true +################ \u6388\u6743\u8FC7\u6EE4\u914D\u7F6E ################ +#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84 +filter.shiro.user.filteruri=/mes/operate/* +#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84 +filter.shiro.admin.filteruri=/mes/adoperate/* +#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84 +filter.shiro.saadmin.filteruri=/mes/saoperate/* +################ \u4E91\u914D\u7F6E \uFF08\u4EE5projectName\u4F5C\u4E3A\u5E94\u7528\u540D\uFF09 ################ +#\u662F\u5426\u5F00\u542F\u5FAE\u670D +eureka.client.enabled=false +#\uFF08\u53C2\u6570\u914D\u7F6E\uFF09\u6CE8\u518C\u4E2D\u5FC3\u5730\u5740 -\u300B i3plus-ics\uFF0C\u591A\u4E2A\u7528\u9017\u53F7\u5206\u9694 +eureka.client.service-url.defaultZone=${impp.cluster.regist.center} +#\u533A\u57DF\uFF08\u6E90\u7801\u4E2D\u5305\u542BdefaultZone\uFF0C\u6240\u4EE5\u9ED8\u8BA4\u4F7F\u7528defaultZone\uFF09 +#eureka.client.region=estsh +#eureka.client.service-url.estsh:http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/ +################ \u672C\u673A\u5FAE\u670D\u914D\u7F6E ################ +#\u672C\u670D\u52A1\u4E3B\u673Aip\uFF08\u82E5\u591A\u4E2A\u7F51\u5361\uFF0C\u5219\u9700\u8981\u8BBE\u7F6E\u672C\u670D\u52A1ip\uFF09 +eureka.instance.ip-address=${impp.server.ip} +#\u672C\u670D\u52A1\u5B9E\u4F8BID +eureka.instance.instance-id=${impp.server.ip}:${server.port} +#\u672C\u670D\u52A1\u4E3B\u673A\u540D +eureka.instance.hostname=${impp.server.ip} +#\u672C\u670D\u52A1\u72B6\u6001\u9875\u9762 +eureka.instance.status-page-url=http://${impp.server.ip}:${server.port}/swagger-ui.html +#\u5C06\u81EA\u5DF1\u7684IP\u6CE8\u518C\u5230Eureka Server\u3002\u82E5\u4E0D\u914D\u7F6E\u6216\u8BBE\u7F6E\u4E3Afalse\uFF0C\u8868\u793A\u6CE8\u518C\u5FAE\u670D\u52A1\u6240\u5728\u64CD\u4F5C\u7CFB\u7EDF\u7684hostname\u5230Eureka Server +eureka.instance.prefer-ip-address=true +#\u662F\u5426\u8FDB\u884C\u5065\u5EB7\u68C0\u67E5 +eureka.client.healthcheck.enabled=true +################ \u68C0\u6D4B\u673A\u5236 ################ +#\u5FC3\u8DF3\u95F4\u9694\u5468\u671F\uFF0C\u5B95\u673A\u9650\u5236\uFF08\u79D2\uFF09\uFF0C30\u79D2\u6CA1\u53CD\u5E94\u89C6\u4E3A\u5B95\u673A +eureka.instance.lease-expiration-duration-in-seconds=30 +#\u5FC3\u8DF3\u5468\u671F +eureka.instance.lease-renewal-interval-in-seconds=20 +#client\u8FDE\u63A5Eureka\u670D\u52A1\u7AEF\u540E\u7684\u7A7A\u95F2\u7B49\u5F85\u65F6\u95F4\uFF0C\u9ED8\u8BA4\u4E3A30 \u79D2 +eureka.client.eureka-connection-idle-timeout-seconds=1 +#\u6700\u521D\u590D\u5236\u5B9E\u4F8B\u4FE1\u606F\u5230eureka\u670D\u52A1\u5668\u6240\u9700\u7684\u65F6\u95F4\uFF08s\uFF09\uFF0C\u9ED8\u8BA4\u4E3A40\u79D2 +eureka.client.initial-instance-info-replication-interval-seconds=1 +#\u95F4\u9694\u591A\u957F\u65F6\u95F4\u518D\u6B21\u590D\u5236\u5B9E\u4F8B\u4FE1\u606F\u5230eureka\u670D\u52A1\u5668\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2 +eureka.client.instance-info-replication-interval-seconds=1 +#\u4ECEeureka\u670D\u52A1\u5668\u6CE8\u518C\u8868\u4E2D\u83B7\u53D6\u6CE8\u518C\u4FE1\u606F\u7684\u65F6\u95F4\u95F4\u9694\uFF08s\uFF09\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2 +eureka.client.registry-fetch-interval-seconds=1 +################ \u6253\u5F00feign\u7684\u7194\u65AD ################ +feign.hystrix.enabled=true +#\u8BFB\u53D6\u6570\u636E\u65F6\u957F +ribbon.ReadTimeout=100000 +#\u8FDE\u63A5\u65F6\u957F +ribbon.ConnectTimeout=100000 +#\u91CD\u8BD5 +ribbon.maxAutoRetries=2 +#\u54CD\u5E94\u8D85\u8FC7\u65F6\u957F\uFF0C\u8FDB\u884C\u7194\u65AD\uFF08\u7194\u65AD\u8D85\u65F6\u9700\u8981\u5927\u4E8E\u8BFB\u53D6\u65F6\u957F\u53CA\u8FDE\u63A5\u65F6\u957F\uFF09 +hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=150000 +#\u96C6\u7FA4\u540D +eureka.instance.metadata-map.cluster=impp_cluster +################ \u94FE\u8DEF\u8FFD\u8E2A ################ +#\u4F7F\u7528web\u65B9\u5F0F\u4F20\u8F93\u4FE1\u606F +spring.zipkin.sender.type=web +#\u94FE\u8DEF\u8FFD\u8E2A\u670D\u52A1\u7684\u5730\u5740 +spring.zipkin.base-url=${impp.console.ip} +#\u8FFD\u8E2A\u6DF1\u5EA6\uFF0C\u767E\u5206\u6BD4\uFF0C1\u662F\u5168\u90E8 +spring.sleuth.sampler.probability=1.0 +################ \u65E5\u5FD7\u636E\u6E90 ################ +spring.data.mongodb.database=mongoDBSource +spring.data.mongodb.uri=10.193.30.22:27017 +spring.data.mongodb.username=sa +spring.data.mongodb.password=i3plus +spring.data.mongodb.port=27017 +################ \u4E3B\u6570\u636E\u6E90 ################ + +##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316############## +impp.schedule.open=true +impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.schedule.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.schedule.datasource.username=root +impp.schedule.datasource.password=(mfLEu7@9kmfdsTy +impp.schedule.datasource.max-connections=20 +#\u5B9A\u65F6\u4EFB\u52A1\u5728\u670D\u52A1\u542F\u52A8\u540E\u591A\u5C11\u79D2\u6267\u884C +impp.schedule.start.after-second=20 +#\u662F\u5426\u96C6\u7FA4\u90E8\u7F72 +impp.schedule.datasource.is-clustered=true +#\u6267\u884C\u68C0\u6D4B\uFF08\u6BEB\u79D2\uFF09\uFF0C\u82E5\u5B95\u673A\u7531\u5176\u4ED6\u5B9A\u65F6\u5668\u6267\u884C +impp.schedule.datasource.cluster-checkin-interval=30000 +#\u7EBF\u7A0B\u6570 +impp.schedule.thread-count=10 +#\u7EBF\u7A0B\u4F18\u5148\u7EA7\uFF081-10\uFF09\u9ED8\u8BA4\u4E3A5 +impp.schedule.thread-priority=5 +################ \u6570\u636E\u6C60\u8BBE\u7F6E ################ +## \u8FDE\u63A5\u6C60\u6700\u5927\u8FDE\u63A5\u6570\uFF0C\u9ED8\u8BA4\u662F10 +spring.datasource.hikari.maximum-pool-size=100 +## \u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\u6570\u91CF +spring.datasource.hikari.minimum-idle=10 +## \u7A7A\u95F2\u8FDE\u63A5\u5B58\u6D3B\u6700\u5927\u65F6\u95F4\uFF0C\u9ED8\u8BA4600000\uFF0810\u5206\u949F\uFF09 +spring.datasource.hikari.idle-timeout=600000 +## \u6B64\u5C5E\u6027\u63A7\u5236\u6C60\u4E2D\u8FDE\u63A5\u7684\u6700\u957F\u751F\u547D\u5468\u671F\uFF0C\u503C0\u8868\u793A\u65E0\u9650\u751F\u547D\u5468\u671F\uFF0C\u9ED8\u8BA41800000\u537330\u5206\u949F +spring.datasource.hikari.max-lifetime=1800000 +## \u6570\u636E\u5E93\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4,\u9ED8\u8BA430\u79D2\uFF0C\u537330000 +spring.datasource.hikari.connection-timeout=30000 +################ JPA\u8BBE\u7F6E\u8BBE\u7F6E ################ +# mysql +spring.jpa.database=MYSQL +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect +##Sql-server## +#spring.jpa.database=sql_server +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect +##oracle## +#spring.jpa.database=oracle +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect +# mysql +spring.datasource.validationQuery=SELECT 1 +##Sql-server## +# spring.datasource.validationQuery=SELECT 1 +##oracle## +# spring.datasource.validationQuery=SELECT 1 FROM DUAL +#ImprovedNamingStrategy / physical_naming_strategy java\u5C5E\u6027\u6620\u5C04\u5230\u6570\u636E\u5E93\u5B57\u6BB5\u65F6\u547D\u540D\u89C4\u5219 +# spring.jpa.properties.hibernate.physical_naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy/org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl +#\u8868\u5173\u7CFBcreate,create-drop,update,validate +spring.jpa.properties.hibernate.hbm2ddl.auto=none +#\u662F\u5426\u663E\u793Asql +spring.jpa.show-sql=true +################ \u6388\u6743\u914D\u7F6E ################ +slm.api.password=4C9479EBEFA6FA6E232EF25EFA49C4D2 +slm.app.id=20190513 +###################\uFFFD\uFFFD\u013F\uFFFD\uFFFD\uFFFD\u077F\uFFFD\u02B5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD################################################## +project.entity.path=cn.estsh.i3plus.pojo + + +impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.write.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true +impp.write.datasource.username=root +impp.write.datasource.password=(mfLEu7@9kmfdsTy +impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource +impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.read.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true +impp.read.datasource.username=root +impp.read.datasource.password=(mfLEu7@9kmfdsTy + + + +#impp.schedule.scheduleType=xxljob +#xxl.job.admin.addresses=http://10.193.30.22:10010/xxl-job-admin +#### xxl-job, access token +#xxl.job.accessToken= +#### xxl-job executor appname +##xxl.job.executor.appname=${project.name} +#xxl.job.executor.appname=i3mes-castle +#### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null +#xxl.job.executor.address= +#### xxl-job executor server-info +#xxl.job.executor.ip=172.24.96.1 +##xxl.job.executor.ip= +##xxl.job.executor.port=9999 +#xxl.job.executor.port=8888 +#### xxl-job executor log-path +#xxl.job.executor.logpath= +#### xxl-job executor log-retention-days +#xxl.job.executor.logretentiondays=10 +#xxl.job.basePackage=cn.estsh.i3plus.ext.mes.apiservice.schedulejob + + +impp.app.ext.base-packages=cn.estsh.i3plus.ext.mes.apiservice \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java new file mode 100644 index 0000000..091c95e --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java @@ -0,0 +1,66 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.report; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("加工记录合并批量汇报查询报表") +public class MesProductionRecordReportExtModel implements Serializable { + + private static final long serialVersionUID = 7580273561023637832L; + + @ApiParam(value = "组织代码") + private String organizeCode; + + @ApiParam(value = "物料编号") + private String partNo; + + @ApiParam(value = "物料名称") + private String partName; + + @ApiParam("生产线代码") + private String workCenterCode; + + @ApiParam(value = "工位代码") + private String workCellCode; + + @ApiParam(value = "数量") + private Integer qty; + + @ApiParam("班次代码") + private String shiftCode; + + @ApiParam(value = "设备代码") + public String equipmentCode; + + @ApiParam("设备名称") + private String equipmentName; + + @ApiParam(value = "汇报状态") + private String reportStatusList; + + @ApiParam(value = "完成时间开始日期") + private String completeDateTimeStart; + + @ApiParam(value = "完成时间结束日期") + private String completeDateTimeEnd; + + @ApiParam("是否查询工单日志表") + private Boolean isQueryWo = false; + + public MesProductionRecordReportExtModel() {} + + public MesProductionRecordReportExtModel(String partNo, String partName, String workCenterCode, String workCellCode, String shiftCode, String equipmentCode, String equipmentName, Integer statisticsQty) { + this.partNo = partNo; + this.partName = partName; + this.workCenterCode = workCenterCode; + this.workCellCode = workCellCode; + this.shiftCode = shiftCode; + this.equipmentCode = equipmentCode; + this.equipmentName = equipmentName; + this.qty = statisticsQty; + } +} 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 93621e6..916aace 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 @@ -209,6 +209,8 @@ public class MesExtConstWords { public static final String CREATE_DATE_TIME_END = "createDatetimeEnd"; public static final String MODIFY_DATE_TIME_START = "modifyDatetimeStart"; public static final String MODIFY_DATE_TIME_END = "modifyDatetimeEnd"; + public static final String COMPLETE_DATE_TIME_START = "completeDateTimeStart"; + public static final String COMPLETE_DATE_TIME_END = "completeDateTimeEnd"; //0 public static final int ZERO = 0;