From dd9142a670e19e2877a2f54c487e5533760f4278 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Mon, 17 Nov 2025 18:07:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E5=B1=9E=E5=85=83=E7=B4=A0=E7=BC=A9?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=EF=BC=8C?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95erp=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/base/ElementController.java | 8 + .../base/dal/mysql/base/ElementMapper.java | 1 + .../base/service/base/ElementService.java | 2 + .../base/service/base/ElementServiceImpl.java | 8 + .../admin/erp/ErpCompanyController.java | 8 - .../erp/vo/ErpProductiveOrderPageReqVO.java | 6 +- .../erp/service/erp/ErpCompanyService.java | 2 - .../service/erp/ErpCompanyServiceImpl.java | 7 - .../erp/ErpProductiveOrderServiceImpl.java | 178 ++++++++++-------- 9 files changed, 118 insertions(+), 102 deletions(-) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java index ff591d1..ec41347 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java @@ -88,6 +88,14 @@ public class ElementController { return success(BeanUtils.toBean(pageResult, ElementRespVO.class)); } + @GetMapping("/pageByEnable") + @Operation(summary = "获得启用的金属元素分页") + @PreAuthorize("@ss.hasPermission('base:element:query')") + public CommonResult> getElementPageByEnable(@Valid ElementPageReqVO pageReqVO) { + PageResult pageResult = elementService.getElementPageByEnable(pageReqVO); + return success(BeanUtils.toBean(pageResult, ElementRespVO.class)); + } + @GetMapping("/export-excel") @Operation(summary = "导出金属元素 Excel") @PreAuthorize("@ss.hasPermission('base:element:export')") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java index cb5777d..3906984 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java @@ -23,6 +23,7 @@ public interface ElementMapper extends BaseMapperX { .likeIfPresent(ElementDO::getAbbreviation, reqVO.getAbbreviation()) .likeIfPresent(ElementDO::getName, reqVO.getName()) .eqIfPresent(ElementDO::getDecimalValue, reqVO.getDecimalValue()) + .eqIfPresent(ElementDO::getIsEnable, reqVO.getIsEnable()) .likeIfPresent(ElementDO::getCoding, reqVO.getCoding()) .eqIfPresent(ElementDO::getGradeUnit, reqVO.getGradeUnit()) .betweenIfPresent(ElementDO::getCreateTime, reqVO.getCreateTime()) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java index d93a7d5..6d13099 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java @@ -65,4 +65,6 @@ public interface ElementService { void enableElementList(List saveReqVOS); List getElementNoPage(); + + PageResult getElementPageByEnable(ElementPageReqVO pageReqVO); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java index 49bcd86..19b1bcc 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java @@ -124,4 +124,12 @@ public class ElementServiceImpl implements ElementService { return elementMapper.getElementNoPage(); } + @Override + public PageResult getElementPageByEnable(ElementPageReqVO pageReqVO) { + if (pageReqVO!=null&&pageReqVO.getIsEnable()==null){ + pageReqVO.setIsEnable("1"); + } + return elementMapper.selectPage(pageReqVO); + } + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java index 63629bd..acb5473 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java @@ -125,12 +125,4 @@ public class ErpCompanyController { return success(TEST); } - @PostMapping("/test2") - @Operation(summary = "获取base的金属元素") - @PreAuthorize("@ss.hasPermission('sply:erp-company:get')") - public CommonResult test2() { - String TEST = erpCompanyService.test2(); - return success(TEST); - } - } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveOrderPageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveOrderPageReqVO.java index fa17335..332923d 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveOrderPageReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveOrderPageReqVO.java @@ -19,7 +19,7 @@ public class ErpProductiveOrderPageReqVO extends PageParam { private String companyNumber; @Schema(description = "工厂编码") - @NotEmpty(message = "公司编号不能为空") + @NotEmpty(message = "工厂编码不能为空") private String factoryNumber; @Schema(description = "工厂名称", example = "赵六") @@ -30,12 +30,12 @@ public class ErpProductiveOrderPageReqVO extends PageParam { @Schema(description = "基本开始日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @NotEmpty(message = "公司编号不能为空") + @NotEmpty(message = "基本开始日期不能为空") private LocalDateTime[] startDate; @Schema(description = "基本完成日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @NotEmpty(message = "公司编号不能为空") + @NotEmpty(message = "基本完成日期不能为空") private LocalDateTime[] endDate; @Schema(description = "主产品物料编号") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java index b79382b..c69ba0a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java @@ -74,6 +74,4 @@ public interface ErpCompanyService { void test(); String test1(); - - String test2(); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java index d2fcf07..17dfba6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java @@ -286,11 +286,4 @@ public class ErpCompanyServiceImpl implements ErpCompanyService { return url + requestEntity; } } - - @Override - public String test2() { - ElementDTO respVO = new ElementDTO(); - CommonResult> dtos = baseApi.getElementNoPage(); - return dtos.toString(); - } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java index d488569..db00697 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java @@ -105,94 +105,108 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService return erpProductiveOrderMapper.selectById(id); } - @Override - public PageResult getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) { - return erpProductiveOrderMapper.selectPage(pageReqVO); - } - - //直接从erp查询生产订单 // @Override // public PageResult getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) { -// OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单; -// String funcnr = funcnrEnum.getFuncnr(); -// Map req = new HashMap<>(); -// -// // 构建查询参数 -// req.put("BUKRS", pageReqVO.getCompanyNumber()); -// req.put("WERKS", pageReqVO.getFactoryNumber()); -// -// // 处理日期参数 -// if (pageReqVO.getStartDate() != null) { -// req.put("BEGDA", pageReqVO.getStartDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd"))); -// } -// if (pageReqVO.getEndDate() != null) { -// req.put("ENDDA", pageReqVO.getEndDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd"))); -// } -// -// // 调用ERP接口获取数据 -// HashMap dataFromERP = erpConfig.fetchDataFromERP(funcnr, req); -// JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP"); -// if (dataArray == null || dataArray.isEmpty()) { -// // 返回空结果而不是抛出异常 -// return new PageResult<>(new ArrayList<>(), 0L); -// } -// -// List list = new ArrayList<>(); -// for (int i = 0; i < dataArray.size(); i++) { -// JSONObject dataJson = dataArray.getJSONObject(i); -// if (dataJson != null) { -// ErpProductiveOrderDO orderDO = new ErpProductiveOrderDO(); -// -// // 基本信息 -// orderDO.setCompanyNumber(dataJson.getString("BUKRS")); -// orderDO.setFactoryNumber(dataJson.getString("WERKS").trim()); -// orderDO.setFactoryName(dataJson.getString("NAME1")); -// orderDO.setOrderNumber(dataJson.getString("AUFNR")); -// -// // 日期处理 -// String plannedStartDate = dataJson.getString("GLTRP"); -// String actualStartDate = dataJson.getString("GSTRP"); -// -// if (plannedStartDate != null && !plannedStartDate.equals("0000-00-00")) { -// try { -// orderDO.setStartDate(LocalDateTime.parse(plannedStartDate)); -// } catch (Exception e) { -// // 忽略日期解析错误 -// } -// } -// -// if (actualStartDate != null && !actualStartDate.equals("0000-00-00")) { -// try { -// orderDO.setEndDate(LocalDateTime.parse(actualStartDate)); -// } catch (Exception e) { -// // 忽略日期解析错误 -// } -// } -// -// // 物料和工艺信息 -// orderDO.setMainMaterialNumber(dataJson.getString("STLBEZ")); -// orderDO.setUnit(dataJson.getString("GMEIN")); -// orderDO.setMaterialDescription(dataJson.getString("MAKTX")); -// orderDO.setProcessingList(dataJson.getString("L_AFVC")); -// orderDO.setProcessingNumber(dataJson.getString("VORNR")); -// orderDO.setProcessingDescription(dataJson.getString("LTXA1")); -// orderDO.setObjectNumber(dataJson.getString("OBJID")); -// orderDO.setWorkCenterNumber(dataJson.getString("ARBPL")); -// orderDO.setWorkCenterDescription(dataJson.getString("KTEXT")); -// orderDO.setCostcenterNumber(dataJson.getString("KOSTL")); -// orderDO.setCostcenterName(dataJson.getString("TEXT_C")); -// -// list.add(orderDO); -// } -// } -// -// // 返回分页结果 -// return new PageResult<>(list, (long) list.size()); +// return erpProductiveOrderMapper.selectPage(pageReqVO); // } + // 直接从erp查询生产订单 + @Override + public PageResult getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) { + OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细; + String funcnr = funcnrEnum.getFuncnr(); + Map req = new HashMap<>(); + + // 构建查询参数 + req.put("BUKRS", pageReqVO.getCompanyNumber()); + req.put("WERKS", pageReqVO.getFactoryNumber()); + + // 处理日期参数 + if (pageReqVO.getStartDate() != null) { + req.put("BEGDA", pageReqVO.getStartDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd"))); + } + if (pageReqVO.getEndDate() != null) { + req.put("ENDDA", pageReqVO.getEndDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd"))); + } + + // 调用ERP接口获取数据 + HashMap dataFromERP = erpConfig.fetchDataFromERP(funcnr, req); + JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP"); + if (dataArray == null || dataArray.isEmpty()) { + // 返回空结果而不是抛出异常 + return new PageResult<>(new ArrayList<>(), 0L); + } + + List list = new ArrayList<>(); + for (int i = 0; i < dataArray.size(); i++) { + JSONObject dataJson = dataArray.getJSONObject(i); + if (dataJson != null) { + ErpProductiveOrderDO orderDO = new ErpProductiveOrderDO(); + + // 基本信息 + orderDO.setCompanyNumber(dataJson.getString("BUKRS")); + orderDO.setFactoryNumber(dataJson.getString("WERKS").trim()); + orderDO.setFactoryName(dataJson.getString("NAME1")); + orderDO.setOrderNumber(dataJson.getString("AUFNR")); + + // 日期处理 + String plannedStartDate = dataJson.getString("GLTRP"); + String actualStartDate = dataJson.getString("GSTRP"); + + if (plannedStartDate != null && !plannedStartDate.equals("0000-00-00")) { + try { + orderDO.setStartDate(LocalDateTime.parse(plannedStartDate)); + } catch (Exception e) { + // 忽略日期解析错误 + } + } + + if (actualStartDate != null && !actualStartDate.equals("0000-00-00")) { + try { + orderDO.setEndDate(LocalDateTime.parse(actualStartDate)); + } catch (Exception e) { + // 忽略日期解析错误 + } + } + + // 物料和工艺信息 + orderDO.setMainMaterialNumber(dataJson.getString("STLBEZ")); + orderDO.setUnit(dataJson.getString("GMEIN")); + orderDO.setMaterialDescription(dataJson.getString("MAKTX")); + orderDO.setProcessingList(dataJson.getString("L_AFVC")); + orderDO.setProcessingNumber(dataJson.getString("VORNR")); + orderDO.setProcessingDescription(dataJson.getString("LTXA1")); + orderDO.setObjectNumber(dataJson.getString("OBJID")); + orderDO.setWorkCenterNumber(dataJson.getString("ARBPL")); + orderDO.setWorkCenterDescription(dataJson.getString("KTEXT")); + orderDO.setCostcenterNumber(dataJson.getString("KOSTL")); + orderDO.setCostcenterName(dataJson.getString("TEXT_C")); + + list.add(orderDO); + } + } + + List listLast = list.stream() + .filter(orderDO -> pageReqVO.getFactoryName() == null || pageReqVO.getFactoryName().equals(orderDO.getFactoryName())) + .filter(orderDO -> pageReqVO.getOrderNumber() == null || pageReqVO.getOrderNumber().equals(orderDO.getOrderNumber())) + .filter(orderDO -> pageReqVO.getMainMaterialNumber() == null || pageReqVO.getMainMaterialNumber().equals(orderDO.getMainMaterialNumber())) + .filter(orderDO -> pageReqVO.getProcessingList() == null || pageReqVO.getProcessingList().equals(orderDO.getProcessingList())) + .filter(orderDO -> pageReqVO.getProcessingNumber() == null || pageReqVO.getProcessingNumber().equals(orderDO.getProcessingNumber())) + .filter(orderDO -> pageReqVO.getProcessingDescription() == null || pageReqVO.getProcessingDescription().equals(orderDO.getProcessingDescription())) + .filter(orderDO -> pageReqVO.getObjectNumber() == null || pageReqVO.getObjectNumber().equals(orderDO.getObjectNumber())) + .filter(orderDO -> pageReqVO.getWorkCenterNumber() == null || pageReqVO.getWorkCenterNumber().equals(orderDO.getWorkCenterNumber())) + .filter(orderDO -> pageReqVO.getWorkCenterDescription() == null || pageReqVO.getWorkCenterDescription().equals(orderDO.getWorkCenterDescription())) + .filter(orderDO -> pageReqVO.getCostcenterNumber() == null || pageReqVO.getCostcenterNumber().equals(orderDO.getCostcenterNumber())) + .filter(orderDO -> pageReqVO.getCostcenterName() == null || pageReqVO.getCostcenterName().equals(orderDO.getCostcenterName())) + .toList(); + + // 返回分页结果 + return new PageResult<>(listLast, (long) listLast.size()); + } + @Override @Transactional - @XxlJob("getErpProductiveOrderTask") +// @XxlJob("getErpProductiveOrderTask") public void callErpRfcInterface() { OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细; String funcnr = funcnrEnum.getFuncnr();