Merge branch 'dev-temp-wj-2412160000-00001' into dev

tags/yfai-mes-ext-v2.5
王杰 5 months ago
commit ab386358a3

@ -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<MesProductionRecordReportExtModel> queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager);
}

@ -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.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.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.COMPLETE_DATE_TIME_START, model.getCompleteDateTimeStart())
.notNull(MesExtConstWords.COMPLETE_DATE_TIME_END, model.getCompleteDateTimeEnd());
// model.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
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);
}
}
}

@ -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 IMesProductionRecordReportExtDao {
ListPager<MesProductionRecordReportExtModel> queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List<Integer> reportStatusList);
}

@ -0,0 +1,256 @@
package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report;
import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesProductionRecordReportExtDao;
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.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
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.ArrayList;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : wangjie
* @CreateDate : 2024/9/29 10:21
* @Modify:
**/
@Service
public class MesProductionRecordReportExtDao implements IMesProductionRecordReportExtDao {
@Autowired
private EntityManager entityManager;
@Override
public ListPager<MesProductionRecordReportExtModel> queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List<Integer> reportStatusList) {
List<MesProductionRecordReportExtModel> resultList = new ArrayList<>();
StringBuilder queryHql = new StringBuilder();
StringBuilder countHql = new StringBuilder();
StringBuilder unionQueryHql = new StringBuilder();
StringBuilder countQueryHql = new StringBuilder();
StringBuilder prQueryHql = new StringBuilder();
StringBuilder prCommonQueryHql = new StringBuilder();
StringBuilder woQueryHql = new StringBuilder();
StringBuilder woCommonQueryHql = new StringBuilder();
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
unionQueryHql.append("SELECT\n" +
"\to.workCenterCode,\n" +
"\to.workCellCode,\n" +
"\to.partNo,\n" +
"\to.partName,\n" +
"\to.shiftCode,\n" +
"\to.equipmentCode,\n" +
"\to.equipmentName,\n" +
"\to.reportStatus,\n" +
"\to.dataSource,\n" +
"\to.statisticsQty \n" +
"FROM\n" +
"\t(\n" +
"\t\t(\n");
countQueryHql.append("SELECT count(1)\n" +
"FROM\n" +
"\t(\n" +
"\t\t(\n");
} else {
countQueryHql.append("SELECT count(1) FROM\n");
}
if (!CollectionUtils.isEmpty(reportStatusList)) {
prQueryHql.append("\t\tSELECT\n" +
"\t\t\ta.work_center_code AS workCenterCode,\n" +
"\t\t\ta.work_cell_code AS workCellCode,\n" +
"\t\t\ta.part_no AS partNo,\n" +
"\t\t\ta.part_name AS partName,\n" +
"\t\t\ta.shift_code AS shiftCode,\n" +
"\t\t\ta.equipment_code AS equipmentCode,\n" +
"\t\t\ta.equipment_name AS equipmentName,\n" +
"\t\t\ta.report_status AS reportStatus,\n" +
"\t\t\t1 AS dataSource,\n" +
"\t\t\tSUM( qty ) AS statisticsQty \n" +
"\t\tFROM\n");
prCommonQueryHql.append("\t\t\tmes_production_record a \n" +
"\t\tWHERE\n" +
"\t\t\ta.organize_code = :organizeCode \n" +
"\t\t\tAND a.is_deleted = :isDeleted \n" +
"\t\t\tAND a.is_valid = :isValid \n" +
"\t\t\tAND a.complete_date_time >= :completeDateTimeStart \n" +
"\t\t\tAND a.complete_date_time <= :completeDateTimeEnd \n");
if (reportStatusList.size() == 1) {
prCommonQueryHql.append("\t\t\tAND a.report_status = :reportStatus \n");
} else {
prCommonQueryHql.append("\t\t\tAND a.report_status in (:reportStatus) \n");
}
if (!StringUtils.isEmpty(model.getPartNo())) {
prCommonQueryHql.append("\t\t\tAND a.part_no = :partNo \n");
}
if (!StringUtils.isEmpty(model.getWorkCenterCode())) {
prCommonQueryHql.append("\t\t\tAND a.work_center_code = :workCenterCode \n");
}
if (!StringUtils.isEmpty(model.getWorkCellCode())) {
prCommonQueryHql.append("\t\t\tAND a.work_cell_code = :workCellCode \n");
}
if (!StringUtils.isEmpty(model.getShiftCode())) {
prCommonQueryHql.append("\t\t\tAND a.shift_code = :shiftCode \n");
}
if (!StringUtils.isEmpty(model.getEquipmentCode())) {
prCommonQueryHql.append("\t\t\tAND a.equipment_code = :equipmentCode \n");
}
prCommonQueryHql.append("\t\tGROUP BY\n" +
"\t\t\ta.work_center_code,\n" +
"\t\t\ta.work_cell_code,\n" +
"\t\t\ta.part_no,\n" +
"\t\t\ta.shift_code,\n" +
"\t\t\ta.report_status \n" +
"\t\tORDER BY\n" +
"\t\t\ta.complete_date_time DESC \n");
}
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
prCommonQueryHql.append("\t\t) UNION ALL\n" +
"\t\t(");
}
if (model.getIsQueryWo()) {
woQueryHql.append("\t\tSELECT\n" +
"\t\t\tb.work_center_code AS workCenterCode,\n" +
"\t\t\tNULL AS workCellCode,\n" +
"\t\t\tb.part_no AS partNo,\n" +
"\t\t\tb.part_name AS partName,\n" +
"\t\t\tb.shift_code AS shiftCode,\n" +
"\t\t\tNULL AS equipmentCode,\n" +
"\t\t\tNULL AS equipmentName,\n" +
"\t\t\t30 AS reportStatus,\n" +
"\t\t\t2 AS dataSource,\n" +
"\t\t\tSUM( modify_qty ) AS statisticsQty \n" +
"\t\tFROM\n");
woCommonQueryHql.append("\t\t\tmes_work_order_log b \n" +
"\t\tWHERE\n" +
"\t\t\tb.organize_code = :organizeCode \n" +
"\t\t\tAND b.is_deleted = :isDeleted \n" +
"\t\t\tAND b.is_valid = :isValid \n" +
"\t\t\tAND b.modify_date_time >= :completeDateTimeStart \n" +
"\t\t\tAND b.modify_date_time <= :completeDateTimeEnd \n" +
"\t\t\tAND b.type = :messageType \n");
if (!StringUtils.isEmpty(model.getPartNo())) {
woCommonQueryHql.append("\t\t\tAND b.part_no = :partNo \n");
}
if (!StringUtils.isEmpty(model.getWorkCenterCode())) {
woCommonQueryHql.append("\t\t\tAND b.work_center_code = :workCenterCode \n");
}
if (!StringUtils.isEmpty(model.getShiftCode())) {
woCommonQueryHql.append("\t\t\tAND b.shift_code = :shiftCode \n");
}
woCommonQueryHql.append("\t\tGROUP BY\n" +
"\t\t\tb.work_center_code,\n" +
"\t\t\tb.part_no,\n" +
"\t\t\tb.shift_code \n" +
"\t\tORDER BY\n" +
"\t\t\tb.modify_date_time DESC \n");
}
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
woCommonQueryHql.append("\t) \n" +
"\t) AS o \n");
}
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
queryHql.append(unionQueryHql).append(prQueryHql).append(prCommonQueryHql).append(woQueryHql).append(woCommonQueryHql);
countHql.append(countQueryHql).append(prQueryHql).append(prCommonQueryHql).append(woQueryHql).append(woCommonQueryHql);
} else {
if (!CollectionUtils.isEmpty(reportStatusList)) {
queryHql.append(prQueryHql).append(prCommonQueryHql);
countHql.append(countQueryHql).append(prCommonQueryHql);
} else {
queryHql.append(woQueryHql).append(woCommonQueryHql);
countHql.append(countQueryHql).append(woCommonQueryHql);
}
}
Query dataQuery = entityManager.createNativeQuery(queryHql.toString());
setQueryParams(dataQuery, model, reportStatusList);
Query countQuery = entityManager.createNativeQuery(countHql.toString());
setQueryParams(countQuery, model, reportStatusList);
pager = PagerHelper.getPager(pager, Integer.parseInt(countQuery.getSingleResult().toString()));
dataQuery.setMaxResults(pager.getPageSize());
if (pager.getCurrentPage() == 0) {
pager.setCurrentPage(1);
}
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
List list = dataQuery.getResultList();
for (Object object : list) {
if (null == object) continue;
Object[] objectArr = (Object[]) object;
if (null == objectArr || objectArr.length != 10) continue;
MesProductionRecordReportExtModel result = new MesProductionRecordReportExtModel(
objectArr[0], objectArr[1], objectArr[2], objectArr[3], objectArr[4], objectArr[5], objectArr[6], objectArr[7], objectArr[8], objectArr[9]);
if (!StringUtils.isEmpty(result.getDataSource()) && !StringUtils.isEmpty(result.getReportStatus())) {
if (result.getDataSource().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) {
if (result.getReportStatus().compareTo(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()) == 0) result.setReportStatusName(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getDescription());
else result.setReportStatusName(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getDescription());
} else result.setReportStatusName(MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT.getDescription());
}
resultList.add(result);
}
return new ListPager(resultList, pager);
}
private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List<Integer> reportStatusList) {
query.setParameter(MesExtConstWords.ORGANIZE_CODE, model.getOrganizeCode());
query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter(MesExtConstWords.IS_VALID, CommonEnumUtil.IS_VAILD.VAILD.getValue());
query.setParameter(MesExtConstWords.COMPLETE_DATE_TIME_START, model.getCompleteDateTimeStart());
query.setParameter(MesExtConstWords.COMPLETE_DATE_TIME_END, model.getCompleteDateTimeEnd());
if (!CollectionUtils.isEmpty(reportStatusList)) {
if (reportStatusList.size() == 1) {
query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList.get(0));
} else {
query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList);
}
}
if (model.getIsQueryWo()) query.setParameter(MesExtConstWords.MESSAGE_TYPE, MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT.getValue());
if (!StringUtils.isEmpty(model.getPartNo())) {
query.setParameter(MesExtConstWords.PART_NO, model.getPartNo());
}
if (!StringUtils.isEmpty(model.getWorkCenterCode())) {
query.setParameter(MesExtConstWords.WORK_CENTER_CODE, model.getWorkCenterCode());
}
if (!StringUtils.isEmpty(model.getWorkCellCode())) {
query.setParameter(MesExtConstWords.WORK_CELL_CODE, model.getWorkCellCode());
}
if (!StringUtils.isEmpty(model.getShiftCode())) {
query.setParameter(MesExtConstWords.SHIFT_CODE, model.getShiftCode());
}
if (!StringUtils.isEmpty(model.getEquipmentCode())) {
query.setParameter(MesExtConstWords.EQUIPMENT_CODE, model.getEquipmentCode());
}
}
}

@ -0,0 +1,65 @@
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.IMesProductionRecordReportExtDao;
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 IMesProductionRecordReportExtDao productionRecordReportExtDao;
/**
*
* @param model
* @param pager
* @return
*/
@Override
public ListPager<MesProductionRecordReportExtModel> queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager) {
List<Integer> 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<Integer> 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<MesProductionRecordReportExtModel> listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr);
return listPager;
}
}

@ -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

@ -0,0 +1,79 @@
package cn.estsh.i3plus.ext.mes.pojo.model.report;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.util.StringUtils;
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;
//1=加工记录 2=工单日志批量汇报
@ApiParam("数据来源")
private Integer dataSource;
@ApiParam("汇报状态")
private Integer reportStatus;
@ApiParam("汇报状态名称")
private String reportStatusName;
@ApiParam("是否查询工单日志表")
private Boolean isQueryWo = false;
public MesProductionRecordReportExtModel() {}
public MesProductionRecordReportExtModel(Object workCenterCode, Object workCellCode, Object partNo, Object partName, Object shiftCode, Object equipmentCode, Object equipmentName, Object reportStatus, Object dataSource, Object qty) {
if (!StringUtils.isEmpty(workCenterCode)) this.workCenterCode = (String) workCenterCode;
if (!StringUtils.isEmpty(workCellCode)) this.workCellCode = (String) workCellCode;
if (!StringUtils.isEmpty(partNo)) this.partNo = (String) partNo;
if (!StringUtils.isEmpty(partName)) this.partName = (String) partName;
if (!StringUtils.isEmpty(shiftCode)) this.shiftCode = (String) shiftCode;
if (!StringUtils.isEmpty(equipmentCode)) this.equipmentCode = (String) equipmentCode;
if (!StringUtils.isEmpty(equipmentName)) this.equipmentName = (String) equipmentName;
if (!StringUtils.isEmpty(reportStatus)) this.reportStatus = Integer.valueOf(reportStatus.toString());
if (!StringUtils.isEmpty(dataSource)) this.dataSource = Integer.valueOf(dataSource.toString());
if (!StringUtils.isEmpty(qty)) this.qty = Double.valueOf(qty.toString()).intValue();
}
}

@ -215,6 +215,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;

Loading…
Cancel
Save