From 924896b4358e123f4bf0f1ade26f7df6aa940360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Thu, 26 Feb 2026 16:40:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A7=94=E6=89=98=E5=8A=A0=E5=B7=A5=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=8F=90=E4=BA=A4erp=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmpltp/TmplInscBsnRelServiceImpl.java | 16 +------------ .../service/tmpltp/TmplInscDatBsnService.java | 1 + .../tmpltp/TmplInscDatBsnServiceImpl.java | 12 ++++++++++ .../contractorder/api/ContractApiImpl.java | 6 +++++ .../contractorder/api/OrderApiImpl.java | 9 +++++++ .../OriginalMaterialProcessingController.java | 2 +- .../service/contract/ContractServiceImpl.java | 7 +++--- ...inalMaterialProcessingServiceImplImpl.java | 2 +- .../PurchaseOrderServiceImpl.java | 24 ++++++++++++------- 9 files changed, 51 insertions(+), 28 deletions(-) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java index e0029fd0..dddf84ba 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java @@ -141,8 +141,6 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { @Override public void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { tmplInscBsnRelRespVO.setDeptIds(setDeptData(tmplInscBsnRelRespVO));//获取部门使用范围 -// tmplInscBsnRelRespVO.setInstanceItemRespVOS(setInstanceItemRespVOS(tmplInscBsnRelRespVO));//获取条款; -// tmplInscBsnRelRespVO.setTemplateInstanceDataRespVOS(setTemplateInstanceDataRespVOS(tmplInscBsnRelRespVO)); // 实例字段 //业务条款 tmplInscBsnRelRespVO.setTmplInscItmBsnRespVOS(setTmplInscItmBsnRespVOS(tmplInscBsnRelRespVO)); //业务字段 @@ -150,10 +148,6 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { if (!tmplInscBsnRelRespVO.getDeptIds().isEmpty()) { tmplInscBsnRelRespVO.setDeptRespVOS(deptApi.getDeptList(tmplInscBsnRelRespVO.getDeptIds().stream().map(Long::valueOf).toList()).getData()); // 部门详情 } -// TemplateInstanceRespVO templateInstance = SpringUtil.getBean(TemplateInstanceService.class).getTemplateInstance(tmplInscBsnRelRespVO.getInscId()); -// if (templateInstance != null) { -// tmplInscBsnRelRespVO.setInscName(!templateInstance.getName().isEmpty() ? templateInstance.getName() : "分类未命名"); -// } } @Override @@ -188,15 +182,7 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { //业务字段 private List setTmplInscDatBsnRespVOS(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { - List tmplInscDatBsnRespVOS = BeanUtils.toBean(SpringUtil.getBean(TmplInscDatBsnMapper.class).selectList(new LambdaQueryWrapper().eq(TmplInscDatBsnDO::getBsnId, tmplInscBsnRelRespVO.getId())), TmplInscDatBsnRespVO.class); - -// tmplInscDatBsnRespVOS.forEach(tmplInscDatBsnRespVO -> tmplInscBsnRelRespVO.getTemplateInstanceDataRespVOS().forEach(templateInstanceDataRespVO -> { -// if (templateInstanceDataRespVO.getId().toString().equals(tmplInscDatBsnRespVO.getInscFldId())) { -// tmplInscDatBsnRespVO.setFldVal(templateInstanceDataRespVO.getFldKy()); -// tmplInscDatBsnRespVO.setFldKy(templateInstanceDataRespVO.getFldKy()); -// } -// })); - return tmplInscDatBsnRespVOS; + return BeanUtils.toBean(SpringUtil.getBean(TmplInscDatBsnMapper.class).selectList(new LambdaQueryWrapper().eq(TmplInscDatBsnDO::getBsnId, tmplInscBsnRelRespVO.getId())), TmplInscDatBsnRespVO.class); } // 实例数据 diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java index eaddd3a1..82a416d8 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java @@ -30,6 +30,7 @@ public interface TmplInscDatBsnService { * @param updateReqVO 更新信息 */ void updateTmplInscDatBsn(@Valid TmplInscDatBsnSaveReqVO updateReqVO); + void updateTmplInscDatBsnList(@Valid List updateReqVOS); void updateTmplInscDatBsnBatch(@Valid List updateReqVOS); /** diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java index 71efbe5d..070f38a9 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java @@ -66,6 +66,18 @@ public class TmplInscDatBsnServiceImpl implements TmplInscDatBsnService { tmplInscDatBsnMapper.insert(saveObj); } + @Override + public void updateTmplInscDatBsnList(List updateReqVOS) { + // 校验存在 + // validateTmplInscDatBsnExists(updateReqVO.getId()); + // 物理删除旧记录 + tmplInscDatBsnMapper.physicalDeleteByBsnIds(updateReqVOS.stream().map(TmplInscDatBsnSaveReqVO::getBsnId).toList()); + + List beanList = BeanUtils.toBean(updateReqVOS, TmplInscDatBsnDO.class); + beanList.forEach(bean -> bean.setId(null)); + tmplInscDatBsnMapper.insertBatch(beanList); + } + @Override public void updateTmplInscDatBsnBatch(List updateReqVOS) { tmplInscDatBsnMapper.physicalDeleteByBsnIds(updateReqVOS.stream().map(TmplInscDatBsnSaveReqVO::getBsnId).toList()); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 71852a17..72f6ac37 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -6,7 +6,10 @@ import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.tenant.core.aop.TenantIgnore; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.dto.order.PrchOrdDtlDTO; import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; @@ -514,6 +517,9 @@ public class ContractApiImpl implements ContractApi { } @Override + @CompanyDataPermissionIgnore + @DeptDataPermissionIgnore + @TenantIgnore public CommonResult> getOrderByOrderIds(List ids) { if (ids == null || ids.isEmpty()) { throw new RuntimeException("订单id为空"); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java index f875121a..b141d368 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java @@ -5,7 +5,10 @@ import com.zt.plat.framework.common.exception.ErrorCode; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.tenant.core.aop.TenantIgnore; import com.zt.plat.module.contractorder.api.dto.order.*; import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO; import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO; @@ -43,6 +46,9 @@ public class OrderApiImpl implements OrderApi { private PurchaseOrderService purchaseOrderService; @Override + @CompanyDataPermissionIgnore + @DeptDataPermissionIgnore + @TenantIgnore public CommonResult> getOrderByOrderIds(List ids) { if (ids == null || ids.isEmpty()) { throw new RuntimeException("订单id为空"); @@ -94,6 +100,9 @@ public class OrderApiImpl implements OrderApi { } @Override + @CompanyDataPermissionIgnore + @DeptDataPermissionIgnore + @TenantIgnore public CommonResult> getOrderByOrderNos(List orderNoS) { List orderByNos = purchaseOrderService.getOrderByNos(orderNoS); if (orderByNos.isEmpty()) { diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java index 392f378d..3cd9198a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java @@ -163,7 +163,7 @@ public class OriginalMaterialProcessingController { return success(true); } //来料采购提交erp - @PostMapping("/submit-to-erp") + @PostMapping(value = {"/submit-to-erp","/submit-erp061","/submit-erp091"}) @Operation(summary = "来料采购提交erp") @PreAuthorize("@ss.hasAnyPermissions('base:original-material-processing-order:update','entedOrder:edit')") public CommonResult submitToErp(@RequestParam("id") Long id) { diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 6b5cae20..500b689f 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -1098,9 +1098,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同动态字段 if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) { - reqVO.getDynamicsFields().forEach(field -> { - tmplInscDatBsnService.updateTmplInscDatBsn(field); - }); + tmplInscDatBsnService.updateTmplInscDatBsnList(reqVO.getDynamicsFields()); +// reqVO.getDynamicsFields().forEach(field -> { +// tmplInscDatBsnService.updateTmplInscDatBsn(field); +// }); } // 更新合同动态表单 if (reqVO.getDynamicsItems() != null && !reqVO.getDynamicsItems().isEmpty()) { diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java index e9bf7fdc..1a175c8d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java @@ -483,7 +483,7 @@ public class OriginalMaterialProcessingServiceImplImpl implements OriginalMateri throw exception(ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS); } - if (!originalMaterialProcessingDO.getOrderSAPNumber().isEmpty()) { + if (originalMaterialProcessingDO.getOrderSAPNumber()!=null) { throw exception(ORDER_ALREADY_SUBMIT); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index 1af9ab5c..f7c9143d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -247,7 +247,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (ObjectUtils.isEmpty(purchaseOrderDO)) { throw exception(ORDER_ID_NOT_EXISTS); } - if (purchaseOrderDO.getOrderSAPNumber() != null){ + if (purchaseOrderDO.getOrderSAPNumber() != null) { throw exception(ORDER_ALREADY_SUBMIT); } if (purchaseOrderDO.getIsPush() == 0) { @@ -309,12 +309,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void submitErp061(List ids) { // 通过订单号查询订单 List purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByIds(ids); if (!purchaseOrderWithDetailsVOS.isEmpty()) { purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId()); + if (purchaseOrderDO.getOrderSAPNumber() != null && !purchaseOrderDO.getOrderSAPNumber().isEmpty()) { + throw exception(ORDER_ALREADY_SUBMIT); + } ErpOrderSaveReqVO erpOrderSaveReqVO = new ErpOrderSaveReqVO(); PurchaseOrderDO order = purchaseOrderWithDetailsVO.getPurchaseOrder(); erpOrderSaveReqVO.setOrderNo(order.getSystemOrderNumber()); @@ -347,7 +351,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (details != null && !details.isEmpty()) { List items = new ArrayList<>(); List itexes = new ArrayList<>(); - List jsonObjects=new ArrayList<>(); + List jsonObjects = new ArrayList<>(); for (PrchOrdDtlDO detail : details) { ErpOrderSaveReqVO.Item item = new ErpOrderSaveReqVO.Item(); @@ -370,7 +374,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { // WarehouseFactoryRespVO factoryAndWarehouse = getBoundFactoryAndWarehouse(detail.getRcvFactNum(), detail.getRcvWrhNum()); // 3.1 行项目基本信息 item.setPo_item(detail.getLineNum() != null ? detail.getLineNum().intValue() : null); // 行项目 -> 行号 - item.setMaterial(!mtrlZhongtongCode.isEmpty()?mtrlZhongtongCode:null); // 物料编码 -> 物料号 + item.setMaterial(!mtrlZhongtongCode.isEmpty() ? mtrlZhongtongCode : null); // 物料编码 -> 物料号 item.setPlant(detail.getRcvFactNum()); // 收货工厂编码 -> 工厂 item.setStge_loc(detail.getRcvWrhNum()); // 收货库位编码 -> 库存地点 item.setQuantity(detail.getQty()); // 暂估数量 -> 数量 @@ -407,7 +411,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { itex.setZaufnr(detail.getInOrd()); // 统计型内部订单 -> 统计型内部订单 itex.setZpurty(detail.getPrchCtgr()); // 采购类别 -> 采购类别 itex.setZmenge(detail.getOrigWet()); // 原料湿重 -> 原料湿重 - itexes.add(itex); JSONArray objects = JSONArray.parseArray(detail.getActsCtgrDtl()); + itexes.add(itex); + JSONArray objects = JSONArray.parseArray(detail.getActsCtgrDtl()); for (Object object : objects) { if (object instanceof JSONObject jsonObj) { jsonObj.remove("costcenter_name"); @@ -455,7 +460,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { upVo.setCause(result); log.warn("订单推送ERP失败,本地订单ID【{}】,失败原因【{}】", localOrderId, result); purchaseOrderMapper.updateById(upVo); - throw exception(ERP_ERO,result); + throw exception(ERP_ERO, result); } } catch (Exception e) { upVo.setOrderSAPNumber(null); @@ -464,7 +469,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { // 异常时仍需更新数据库,保证订单状态一致性 purchaseOrderMapper.updateById(upVo); log.error("订单推送ERP发生异常,本地订单ID【{}】,异常信息如下", localOrderId, e); - throw exception(ERP_ERO,e); + throw exception(ERP_ERO, e); } }); } @@ -1073,10 +1078,13 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override + @CompanyDataPermissionIgnore + @DeptDataPermissionIgnore + @TenantIgnore public OrderRespVO getOrder(Long id) { PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(id); OrderRespVO bean = BeanUtils.toBean(purchaseOrderDO, OrderRespVO.class); - if (purchaseOrderDO == null){ + if (purchaseOrderDO == null) { throw exception(PURCHASE_ORDER_NOT_EXISTS); } if (OrderTypeEnum.SALE.getCode().equals(bean.getSplyBsnTp())) {