diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEnumExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEnumExtService.java new file mode 100644 index 0000000..ffd4f29 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEnumExtService.java @@ -0,0 +1,12 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.base; + +import io.swagger.annotations.ApiOperation; + +import java.util.Map; + +public interface IMesEnumExtService { + + @ApiOperation("根据枚举名获取枚举") + Map doGetMesEnumByEnumName(String organizeCode, String enumName); + +} diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/report/IMesYfReportService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/report/IMesYfReportService.java new file mode 100644 index 0000000..16afd99 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/report/IMesYfReportService.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.report; + + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import io.swagger.annotations.ApiOperation; + +/** + * @Description : 报表-业务方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:30 + * @Modify: + **/ +public interface IMesYfReportService { + + @ApiOperation("零件条码状态查询") + ListPager queryMesProduceSn(MesProduceSn mesProduceSn, Pager pager); + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesEnumExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesEnumExtService.java new file mode 100644 index 0000000..39812a6 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesEnumExtService.java @@ -0,0 +1,45 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base; + + +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService; +import cn.estsh.i3plus.mes.pcn.util.EnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; +import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceEnumUtil; +import cn.estsh.i3plus.pojo.mes.repository.MesEnumDetailRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesEnumRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Map; + +/** + * @Author: Wynne.Lu + * @CreateDate: 2019/8/30 1:39 PM + * @Description: + **/ +@Slf4j +@Service +@ApiOperation(value = "获取MesEnumUtil") +public class MesEnumExtService implements IMesEnumExtService { + + @Override + public Map doGetMesEnumByEnumName(String organizeCode, String enumName) { + Map enumMap; + enumMap = getEnumByClazzEnum(enumName, MesExtEnumUtil.class); + if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesEnumUtil.class); + if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesInterfaceEnumUtil.class); + return enumMap; + } + + public Map getEnumByClazzEnum(String enumName, Class clz) { + return EnumUtil.getEnumByName(clz, enumName); + } + + + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java index 6e3c44e..e534457 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEnumDetailService; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEnumDetail; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -13,9 +15,11 @@ import org.apache.commons.lang.StringUtils; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * @Description : 枚举明细配置 @@ -27,8 +31,8 @@ import java.util.List; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEnumDetail") public class MesEnumDetailController { -// @Autowired -// private IMesEnumExtService enumService; + @Autowired + private IMesEnumExtService enumService; @Autowired private IMesEnumDetailService mesEnumDetailService; @@ -48,19 +52,19 @@ public class MesEnumDetailController { } } -// @GetMapping(value = "/enumlist") -// @ApiOperation(value = "获取MES系统枚举") -// public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) { -// try { -// organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode; -// Map map = enumService.doGetMesEnumByEnumName(organizeCode, enumName); -// return ResultBean.success("查询成功") -// .setResultObject(map) -// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); -// } catch (ImppBusiException busExcep) { -// return ResultBean.fail(busExcep); -// } catch (Exception e) { -// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); -// } -// } + @GetMapping(value = "/enumlist") + @ApiOperation(value = "获取MES系统枚举") + public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) { + try { + organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode; + Map map = enumService.doGetMesEnumByEnumName(organizeCode, enumName); + return ResultBean.success("查询成功") + .setResultObject(map) + .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-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/report/MesBusiReportController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/report/MesBusiReportController.java new file mode 100644 index 0000000..00b2f7c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/report/MesBusiReportController.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.report; + + +import cn.estsh.i3plus.ext.mes.pcn.api.report.IMesYfReportService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.impp.framework.base.controller.MesBaseController; +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.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : Mes业务报表 + * @Reference : + * @Author : junsheng.li --copy by castle 2024-12-30 + * @CreateDate 2024/6/28 14:17 + * @Modify: + **/ +@Api("Mes业务报表") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/report") +public class MesBusiReportController { + + @Autowired + private IMesYfReportService mesYfReportService; + + + + @ApiOperation(value = "零件条码状态查询", notes = "零件条码状态查询") + @GetMapping("/mesProduceSn/query") + public ResultBean queryMesProduceSn(MesProduceSn mesProduceSn, Pager pager) { + try { + return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesProduceSn(mesProduceSn,pager)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + + + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/report/MesYfReportServiceImpl.java new file mode 100644 index 0000000..e6ec3e7 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -0,0 +1,76 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.report; + + +import cn.estsh.i3plus.ext.mes.pcn.api.report.IMesYfReportService; +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.*; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; +import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; +import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; +import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import jodd.util.StringUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description : 报表-业务方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:31 + * @Modify: + **/ +@Service +@Slf4j +public class MesYfReportServiceImpl implements IMesYfReportService { + + + @Autowired + private MesProduceSnRepository mesProduceSnRDao; + + + @Override + public ListPager queryMesProduceSn(MesProduceSn mesProduceSn, Pager pager) { + DdlPackBean packBean = getMesProduceSnPackBean(mesProduceSn); + if (Objects.isNull(pager)) { + DdlPreparedPack.getOrderBy(mesProduceSn.getOrderByParam(), mesProduceSn.getAscOrDesc(), packBean); + return new ListPager<>(mesProduceSnRDao.findByHqlWhere(packBean), pager); + } + pager = PagerHelper.getPager(pager, mesProduceSnRDao.findByHqlWhereCount(packBean)); + DdlPreparedPack.getOrderBy(mesProduceSn.getOrderByParam(), mesProduceSn.getAscOrDesc(), packBean); + return new ListPager<>(mesProduceSnRDao.findByHqlWherePage(packBean, pager), pager); + } + + private DdlPackBean getMesProduceSnPackBean(MesProduceSn mesProduceSn) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProduceSn.getOrganizeCode()); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getProductSn(), "productSn", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getCustSn(), "custSn", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getWorkOrderNo(), "workOrderNo", packBean); + DdlPreparedPack.getStringBiggerPack(mesProduceSn.getCreateDateTimeStart(), "createDatetime", packBean); + DdlPreparedPack.getStringSmallerPack(mesProduceSn.getCreateDateTimeEnd(), "createDatetime", packBean); + DdlPreparedPack.getNumEqualPack(mesProduceSn.getSnStatus(), "snStatus", packBean); + DdlPreparedPack.getNumEqualPack(mesProduceSn.getQcStatus(), "qcStatus", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getPartNo(), "partNo", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getPartName(), "partName", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getWorkCenterCode(), "workCenterCode", packBean); + DdlPreparedPack.getNumEqualPack(mesProduceSn.getPrintCount(), "printCount", packBean); + DdlPreparedPack.getNumEqualPack(mesProduceSn.getPrintStatus(), "printStatus", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getWorkCellCode(), "workCellCode", packBean); + DdlPreparedPack.getStringLikerPack(mesProduceSn.getCreateUser(), "createUser", packBean); + return packBean; + } + +}