diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java index 74c49d61..1a6a44a1 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java @@ -20,6 +20,6 @@ public interface ErrorCodeConstants { ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批"); ErrorCode MTRL_CODE_NOT_EXISTS = new ErrorCode(1_008_000_150, "中铜物料不存在"); ErrorCode WAREHOUSE_CODE_OR_FACTORY_CODE_NOT_EXISTS = new ErrorCode(1_008_000_151, "{}"); - + ErrorCode ERP_ORDER_UPDATE_FAILED = new ErrorCode(1_008_000_160, "erp订单更新失败"); ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_000_060, "订单明细不能为空"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java index 81f4e090..184edd0d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java @@ -19,6 +19,23 @@ public class EntrustOrderDetailRespVO { @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") private Long orderId; + + @Schema(description = "发货工厂名称", example = "张三") + @ExcelProperty("发货工厂名称") + private String sendFactoryName; + + @Schema(description = "发货工厂编码") + @ExcelProperty("发货工厂编码") + private String sendFactoryNumber; + + @Schema(description = "发货库位名称", example = "李四") + @ExcelProperty("发货库位名称") + private String sendWarehouseName; + + @Schema(description = "发货库位编码") + @ExcelProperty("发货库位编码") + private String sendWarehouseNumber; + @Schema(description = "收货工厂名称", example = "赵六") @ExcelProperty("收货工厂名称") private String receiveFactoryName; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java index 2d3be565..c0b70665 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java @@ -19,6 +19,15 @@ public class EntrustOrderDetailSaveReqVO { @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") private Long orderId; + @Schema(description = "发货工厂名称", example = "张三") + private String sendFactoryName; + @Schema(description = "发货工厂编码") + private String sendFactoryNumber; + @Schema(description = "发货库位名称", example = "李四") + private String sendWarehouseName; + @Schema(description = "发货库位编码") + private String sendWarehouseNumber; + @Schema(description = "收货工厂名称", example = "赵六") private String receiveFactoryName; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java index fa6b0cf1..5821ad76 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java @@ -21,10 +21,12 @@ public class EntrustOrderOrderSaveReqVO { // @NotEmpty(message = "订单号不能为空") private String systemOrderNumber; - @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) - //@NotEmpty(message = "公司编码;推送ERP(必须)不能为空") + @Schema(description = "公司名称;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) private String cpName; + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + private String cpNum; + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) //@NotEmpty(message = "客商编码;推送ERP(必须)不能为空") private String supplierNumber; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PrchOrdDtlController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PrchOrdDtlController.java index 24400f30..c447f699 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PrchOrdDtlController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PrchOrdDtlController.java @@ -71,7 +71,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除采购订单明细") - @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:delete','purchase:order:list:OrderList:delete')") + @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:delete','purchase:order:list:OrderList:delete','purchase:order:list:OrderList:delete')") public CommonResult deletePrchOrdDtlList(@RequestBody BatchDeleteReqVO req) { prchOrdDtlService.deletePrchOrdDtlListByIds(req.getIds()); return success(true); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java index 562a81b5..440d095e 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java @@ -28,6 +28,7 @@ import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.customize; import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; @@ -148,7 +149,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { public CommonResult submitErp061(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List idsStr) { List ids = idsStr.stream().map(Long::valueOf).toList(); // todo 推送ERP订单 - return success(purchaseOrderService.submitErp061(ids)); + return customize(purchaseOrderService.submitErp061(ids),200,"推送成功"); } @PostMapping("/submit-erp062") @@ -156,7 +157,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')") public CommonResult submitErp062(@RequestParam @Validated @NotNull(message = "采购订单id不能为空") String id) { // todo 推送ERP订单 - return success(purchaseOrderService.submitErp062(Long.valueOf(id))); + return success(purchaseOrderService.submitErp062ByUpdate(Long.valueOf(id))); } //通过订单号查询订单信息 diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java index ea7c07f2..61c642ea 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java @@ -153,6 +153,7 @@ public class PurchaseOrderSaveReqVO { @Schema(description = "订单明细") @ExcelProperty("订单明细") + @NotNull(message = "订单明细不能为空") private List details; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java index 49a97fcd..d02ae8bc 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java @@ -40,6 +40,26 @@ public class EntrustOrderDetailDO extends BusinessBaseDO { */ @TableField("ORD_ID") private Long orderId; + /** + * 发货工厂名称 + */ + @TableField("SND_FACT_NAME") + private String sendFactoryName; + /** + * 发货工厂编码 + */ + @TableField("SND_FACT_NUM") + private String sendFactoryNumber; + /** + * 发货库位名称 + */ + @TableField("SND_WRH_NAME") + private String sendWarehouseName; + /** + * 发货库位编码 + */ + @TableField("SND_WRH_NUM") + private String sendWarehouseNumber; /** * 收货工厂名称 */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PrchOrdDtlMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PrchOrdDtlMapper.java index d0d5e42c..858b3aa2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PrchOrdDtlMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PrchOrdDtlMapper.java @@ -71,4 +71,8 @@ public interface PrchOrdDtlMapper extends BaseMapperX { .orderByDesc(PrchOrdDtlDO::getId)); } + PrchOrdDtlDO findOrdDtlById(Long id); + + PrchOrdDtlDO selectByLineNumAndOrdId(Long lineNum, Long ordId); + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java index bfbf7582..5cc33c55 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java @@ -74,4 +74,8 @@ public interface PurchaseOrderMapper extends BaseMapperX { PurchaseOrderDO selectByOrderId(@Param("orderId") Long orderId); List queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO); + + List selectOrderByAndAllIds(@Param("ids") List ids); + + PurchaseOrderDO findOrderById(@Param("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 0c24843e..ee614c12 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 @@ -1818,7 +1818,9 @@ public class ContractServiceImpl implements ContractService { // TODO 暂时返回成功 // erpResult.putOnce("success", true); // erpResult.putOnce("data", "success"); + log.info("ERP请求参数:{}", erpContractVO); Map result = erpContractService.submitErp(erpContractVO); + if ("E".equals(result.get("flag"))) { erpResult.putOnce("success", false); erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP")); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlService.java index 4aecd7b7..9d0a01c2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlService.java @@ -84,4 +84,6 @@ public interface PrchOrdDtlService { void deletePrchOrdDtlListByOrdIds(List ordIds); List getDetailsByOrderId(Long ordId); + + void submitErp062ByDelete(List ids); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java index 0be45246..04d43202 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.spring.SpringUtils; import com.zt.plat.module.base.api.materialclasses.MaterialClassesApi; import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi; import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO; @@ -15,7 +16,11 @@ import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOr import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; +import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper; +import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper; +import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO; +import com.zt.plat.module.erp.service.erp.ErpOrderService; import com.zt.plat.module.receivedeliver.api.bill.BillMainApi; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -33,7 +38,9 @@ import com.zt.plat.framework.common.util.object.BeanUtils; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; -import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PRCH_ORD_DTL_NOT_EXISTS; +import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*; +import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.MTRL_CODE_NOT_EXISTS; +import static com.zt.plat.module.receivedeliver.enums.ErrorCodeConstants.PURCHASE_ORDER_DETAIL_NOT_EXISTS; /** @@ -53,6 +60,7 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { @Resource private ElementService elementService; + @Override public PrchOrdDtlRespVO createPrchOrdDtl(PrchOrdDtlSaveReqVO createReqVO) { // 插入 @@ -67,14 +75,14 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { } private void setElemInfo(PrchOrdDtlDO prchOrdDtl) { - if (prchOrdDtl.getElemAbbr() == null){ + if (prchOrdDtl.getElemAbbr() == null) { return; } ElementDO elementBySymbol = elementService.getElementBySymbol(prchOrdDtl.getElemAbbr()); - if (elementBySymbol != null){ + if (elementBySymbol != null) { prchOrdDtl.setElemName(elementBySymbol.getName()); prchOrdDtl.setElemCdg(elementBySymbol.getCoding()); - }else { + } else { log.warn("元素【{}】不存在,订单ID【{}】", prchOrdDtl.getElemAbbr(), prchOrdDtl.getOrdId()); } @@ -102,6 +110,8 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { public void deletePrchOrdDtlListByIds(List ids) { //校验是否可以删除 validateBillMainCanDelete(ids); + //提交erp062 + submitErp062ByDelete(ids); // 校验存在 validatePrchOrdDtlExists(ids); // 删除 @@ -152,11 +162,26 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { @Override public List batchUpdatePrchOrdDtl(List createReqVOS) { List prchOrdDtlDOS = BeanUtils.toBean(createReqVOS, PrchOrdDtlDO.class); + //判断行项目号是否已存在 + prchOrdDtlDOS.forEach(p -> { + if (p.getLineNum() == null) { + exitsLineNumber(p); + } + }); prchOrdDtlMapper.insertOrUpdate(prchOrdDtlDOS); log.info("批量更新采购订单明细成功,更新【{}】条数据", prchOrdDtlDOS.size()); return BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class); } + private void exitsLineNumber(PrchOrdDtlDO prchOrdDtlDO) { + PrchOrdDtlDO prchOrd = prchOrdDtlMapper.selectByLineNumAndOrdId(prchOrdDtlDO.getLineNum(), prchOrdDtlDO.getOrdId()); + if (prchOrd != null) { + throw exception(new ErrorCode(1_008_00_666, "该行项目号【" + prchOrdDtlDO.getLineNum() + "】已存在")); + } + } + + ; + @Override public void deletePrchOrdDtlListByOrdIds(List ordIds) { //通过订单组件查询订单明细 @@ -171,4 +196,68 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { return prchOrdDtlMapper.selectList(new LambdaQueryWrapper<>(PrchOrdDtlDO.class).eq(PrchOrdDtlDO::getOrdId, ordId)); } + //操作步骤 1、更新erp->更新数据库 + @Override + public void submitErp062ByDelete(List ids) { + log.info("开始执行提交ERP 062 By Delete 操作,ID:{}", ids); + //查询采购单信息 + //根据订单信息查询采购单详情信息 + List purchaseOrderDetailsDOS = prchOrdDtlMapper.selectByIds(ids); + if (purchaseOrderDetailsDOS == null || purchaseOrderDetailsDOS.isEmpty()) { + throw exception(PURCHASE_ORDER_DETAIL_NOT_EXISTS); + } + PurchaseOrderDO purchaseOrderDO = SpringUtils.getBean(PurchaseOrderMapper.class).selectById(purchaseOrderDetailsDOS.get(0).getOrdId()); + if (purchaseOrderDO == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + + ErpOrderUpdateReqVO erpOrderUpdateReqVO = new ErpOrderUpdateReqVO(); + setHeadAndExte(erpOrderUpdateReqVO, purchaseOrderDO); + setDeleteItems(erpOrderUpdateReqVO, purchaseOrderDetailsDOS); + String str = SpringUtils.getBean(ErpOrderService.class).submitOrderToErp062(erpOrderUpdateReqVO); + log.info("提交ERP 062 By Delete 结果:{}", str); + } + + + private void setHeadAndExte(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderDO purchaseOrderDO) { + erpOrderUpdateReqVO.setPoNumber(purchaseOrderDO.getOrderSAPNumber()).setCurrency(purchaseOrderDO.getCurrencyNumber()).setExchRate(purchaseOrderDO.getExchangeRate()); + erpOrderUpdateReqVO.setZzhth(purchaseOrderDO.getPaperContractNumber()).setZxxyh(purchaseOrderDO.getAgreementNumber()).setZnote(purchaseOrderDO.getRemark()).setZlifnr(purchaseOrderDO.getAgreementNumber()); + } + + private void setDeleteItems(ErpOrderUpdateReqVO erpOrderUpdateReqVO, List purchaseOrderDetailsDOS) { + List items = new ArrayList<>(); + purchaseOrderDetailsDOS.forEach(prchOrdDtlDO -> { + MaterialInfomationPageReqDTO infomationPageReqDTO = new MaterialInfomationPageReqDTO(); + infomationPageReqDTO.setPageSize(10000); + infomationPageReqDTO.setCode(prchOrdDtlDO.getMtrlNum()); + CommonResult> materialInfomationPage = SpringUtils.getBean(MaterialInfomationApi.class).getMaterialInfomationPage(infomationPageReqDTO); + if (materialInfomationPage.getData() == null || materialInfomationPage.getData().getList().isEmpty()) { + throw exception(MTRL_CODE_NOT_EXISTS); + + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + //获取中铜物料编码 + String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString(); + if (mtrlZhongtongCode.isEmpty()) { + throw exception(MTRL_CODE_NOT_EXISTS); + } + ErpOrderUpdateReqVO.item item = new ErpOrderUpdateReqVO.item(); // item + item.setPo_item(prchOrdDtlDO.getLineNum());//行号 + item.setMaterial(mtrlZhongtongCode);//物料号 + item.setPlant(prchOrdDtlDO.getRcvFactNum());//工厂 + item.setStge_loc(prchOrdDtlDO.getRcvWrhNum());//库位 + item.setQuantity(String.valueOf(prchOrdDtlDO.getQty()));// 数量 + item.setPo_unit(prchOrdDtlDO.getUnt());// 计量单位 + item.setNet_price(prchOrdDtlDO.getInTaxUprc());// 含税单价 + item.setTax_code(prchOrdDtlDO.getTaxNum());//税码 + item.setAcctasscat(prchOrdDtlDO.getActsCtgr());//科目分配类别 + item.setMatl_group(prchOrdDtlDO.getMtrlCpntNum());//物料组 + item.setShort_text(prchOrdDtlDO.getShrtTxt());//短文本 + item.setDelete_ind("1");//行项目删除标识 + items.add(item); + }); + erpOrderUpdateReqVO.setItems(items); + } + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java index c019833c..997d849a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java @@ -68,7 +68,9 @@ public interface PurchaseOrderService { String submitErp061(List ids); - boolean submitErp062(Long id); + boolean submitErp062ByUpdate(Long id); + + boolean submitErp062ByDelete(Long id); /** * 通过订单id更新订单状态 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 96595620..5de0497e 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 @@ -60,6 +60,7 @@ import java.util.*; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*; +import static com.zt.plat.module.receivedeliver.enums.ErrorCodeConstants.PURCHASE_ORDER_DETAIL_NOT_EXISTS; /** @@ -143,6 +144,15 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { }); prchOrdDtlService.batchUpdatePrchOrdDtl(updateReqVO.getDetails()); log.info("更新订单明细成功"); + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(updateReqVO.getId()); + //如果erp订单号有值就需要调用erp接口更新 + if (!StringUtils.isBlank(purchaseOrderDO.getOrderSAPNumber())) { + boolean b = submitErp062ByUpdate(updateReqVO.getId()); + if (!b){ + log.error("ERP订单更新失败,订单ID:【{}】", updateReqVO.getId()); + throw exception(ERP_ORDER_UPDATE_FAILED); + } + } } @Override @@ -409,16 +419,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (StringUtils.isNotBlank(erpId)) { // ERP返回有效订单号,更新为成功状态 upVo.setOrderSAPNumber(erpId); + upVo.setCause("ERP提交成功,erpID为:"+erpId); upVo.setErpStatus(OrderStatusEnum.FIND.getCode()); // 推送成功状态 log.info("订单推送ERP成功,本地订单ID【{}】,ERP订单号【{}】,已更新本地状态", localOrderId, erpId); } else { upVo.setOrderSAPNumber(null); upVo.setErpStatus(OrderStatusEnum.RLBK.getCode()); - String failCause = StringUtils.isBlank(result) ? "ERP接口返回结果为空/纯空白" - : StringUtils.isBlank(JSONObject.parseObject(result).getString("E_RESP")) ? "ERP返回E_RESP字段为空/纯空白" - : "ERP返回E_RESP中未包含有效PO_NUMBER订单号"; - upVo.setCause(failCause); - log.warn("订单推送ERP失败,本地订单ID【{}】,失败原因【{}】", localOrderId, failCause); + upVo.setCause(result); + log.warn("订单推送ERP失败,本地订单ID【{}】,失败原因【{}】", localOrderId, result); } purchaseOrderMapper.updateById(upVo); @@ -439,8 +447,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - public boolean submitErp062(Long id) { - List purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByIds(List.of(id)); + public boolean submitErp062ByUpdate(Long id) { + List purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByAndAllIds(List.of(id)); if (purchaseOrderWithDetailsVOS.isEmpty()) { throw exception(PURCHASE_ORDER_NOT_EXISTS); } @@ -547,8 +555,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { SystemRelativityDO saveDO = new SystemRelativityDO(); saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); - saveDO.setUpId(LinkOrderReqVO.getUpOrderId().toString()); - saveDO.setDownId(LinkOrderReqVO.getDownOrderId().toString()); + saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); + saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); //判断订单有没有关联过 if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { throw exception(CONTRACT_ORDER_EXISTS); @@ -560,8 +568,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) { //head - PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId()); - erpOrderUpdateReqVO.setPoNumber(purchaseOrderWithDetailsVO.getPurchaseOrder().getOrderSAPNumber()).setDeleteInd(purchaseOrderDO.getDeleted() ? 1 : 0).setCurrency(purchaseOrderWithDetailsVO.getPurchaseOrder().getCurrencyNumber()).setExchRate(purchaseOrderWithDetailsVO.getPurchaseOrder().getExchangeRate()); + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.findOrderById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());//需要自定义sql,防止框架拼接删除条件后查询不到 + erpOrderUpdateReqVO.setPoNumber(purchaseOrderWithDetailsVO.getPurchaseOrder().getOrderSAPNumber()).setDeleteInd(purchaseOrderDO.getDeleted() ? "1" : null).setCurrency(purchaseOrderWithDetailsVO.getPurchaseOrder().getCurrencyNumber()).setExchRate(purchaseOrderWithDetailsVO.getPurchaseOrder().getExchangeRate()); //exte erpOrderUpdateReqVO.setZzhth(purchaseOrderWithDetailsVO.getPurchaseOrder().getPaperContractNumber()).setZxxyh(purchaseOrderWithDetailsVO.getPurchaseOrder().getAgreementNumber()).setZnote(purchaseOrderWithDetailsVO.getPurchaseOrder().getRemark()).setZlifnr(purchaseOrderWithDetailsVO.getPurchaseOrder().getAgreementNumber()); //item @@ -581,10 +589,25 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { private void setItems(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) { List items = new ArrayList<>(); purchaseOrderWithDetailsVO.getOrderDetails().forEach(orderDetail -> { - PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(orderDetail.getId()); + MaterialInfomationPageReqDTO infomationPageReqDTO=new MaterialInfomationPageReqDTO(); + infomationPageReqDTO.setPageSize(10000); + infomationPageReqDTO.setCode(orderDetail.getMtrlNum()); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(infomationPageReqDTO); + if (materialInfomationPage.getData()==null || materialInfomationPage.getData().getList().isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + //获取中铜物料编码 + String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString(); + if (mtrlZhongtongCode.isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + } + PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.findOrdDtlById(orderDetail.getId()); ErpOrderUpdateReqVO.item item = new ErpOrderUpdateReqVO.item(); // item item.setPo_item(prchOrdDtlDO.getLineNum());//行号 - item.setMaterial(prchOrdDtlDO.getRcvFactNum());//物料号 + item.setMaterial(mtrlZhongtongCode);//物料号 item.setPlant(prchOrdDtlDO.getRcvFactNum());//工厂 item.setStge_loc(prchOrdDtlDO.getRcvWrhNum());//库位 item.setQuantity(String.valueOf(prchOrdDtlDO.getQty()));// 数量 @@ -594,7 +617,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { item.setAcctasscat(prchOrdDtlDO.getActsCtgr());//科目分配类别 item.setMatl_group(prchOrdDtlDO.getMtrlCpntNum());//物料组 item.setShort_text(prchOrdDtlDO.getShrtTxt());//短文本 - item.setDelete_ind(prchOrdDtlDO.getDeleted() ? 1 : 0);//行项目删除标识 + item.setDelete_ind(prchOrdDtlDO.getDeleted() ? "1" : null);//行项目删除标识 items.add(item); }); erpOrderUpdateReqVO.setItems(items); @@ -603,12 +626,13 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { private void setItex(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) { List itexs = new ArrayList<>(); purchaseOrderWithDetailsVO.getOrderDetails().forEach(orderDetail -> { - ErpOrderUpdateReqVO.itex itex = new ErpOrderUpdateReqVO.itex(); // itex - itex.setPo_item(orderDetail.getLineNum()); //行号 - itex.setZpurty(orderDetail.getPrchCtgr());//采购类别 - itex.setZmatnr(orderDetail.getOrigWet()); // 原料湿重 - itexs.add(itex); - }); + if (orderDetail.getActsCtgrDtl()!=null) { + ErpOrderUpdateReqVO.itex itex = new ErpOrderUpdateReqVO.itex(); // itex + itex.setPo_item(orderDetail.getLineNum()); //行号 + itex.setZpurty(orderDetail.getPrchCtgr());//采购类别 + itex.setZmatnr(orderDetail.getOrigWet()); // 原料湿重 + itexs.add(itex); + }}); erpOrderUpdateReqVO.setItexs(itexs); } @@ -888,4 +912,67 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { .orElseThrow(() -> exception(WAREHOUSE_CODE_OR_FACTORY_CODE_NOT_EXISTS, "工厂编码:" + factoryCode + ",仓库编码:" + warehouseCode + " 无符合操作条件的库位")); } + + //操作步骤 1、更新erp->更新数据库 + @Override + public boolean submitErp062ByDelete(Long id) { + log.info("开始执行提交ERP 062 By Delete 操作,ID:{}", id); + //查询采购单信息 + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(id); + if (purchaseOrderDO==null){ + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + //根据订单信息查询采购单详情信息 + List purchaseOrderDetailsDOS = prchOrdDtlService.getDetailsByOrderId(id); + if (purchaseOrderDetailsDOS==null || purchaseOrderDetailsDOS.isEmpty()){ + throw exception(PURCHASE_ORDER_DETAIL_NOT_EXISTS); + } + ErpOrderUpdateReqVO erpOrderUpdateReqVO = new ErpOrderUpdateReqVO(); + setHeadAndExte(erpOrderUpdateReqVO, purchaseOrderDO); + setDeleteItems(erpOrderUpdateReqVO, purchaseOrderDetailsDOS); + String str = erpOrderService.submitOrderToErp062(erpOrderUpdateReqVO); + log.info("提交ERP 062 By Delete 结果:{}", str); + //如果删除erp提交成功 + this.deletePurchaseOrderListByIds(List.of(id)); + return true; + }; + private void setHeadAndExte(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderDO purchaseOrderDO) { + erpOrderUpdateReqVO.setPoNumber(purchaseOrderDO.getOrderSAPNumber()).setDeleteInd("1").setCurrency(purchaseOrderDO.getCurrencyNumber()).setExchRate(purchaseOrderDO.getExchangeRate()); + erpOrderUpdateReqVO.setZzhth(purchaseOrderDO.getPaperContractNumber()).setZxxyh(purchaseOrderDO.getAgreementNumber()).setZnote(purchaseOrderDO.getRemark()).setZlifnr(purchaseOrderDO.getAgreementNumber()); + } + private void setDeleteItems(ErpOrderUpdateReqVO erpOrderUpdateReqVO, List purchaseOrderDetailsDOS) { + List items = new ArrayList<>(); + purchaseOrderDetailsDOS.forEach(prchOrdDtlDO -> { + MaterialInfomationPageReqDTO infomationPageReqDTO=new MaterialInfomationPageReqDTO(); + infomationPageReqDTO.setPageSize(10000); + infomationPageReqDTO.setCode(prchOrdDtlDO.getMtrlNum()); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(infomationPageReqDTO); + if (materialInfomationPage.getData()==null || materialInfomationPage.getData().getList().isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + //获取中铜物料编码 + String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString(); + if (mtrlZhongtongCode.isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + } + ErpOrderUpdateReqVO.item item = new ErpOrderUpdateReqVO.item(); // item + item.setPo_item(prchOrdDtlDO.getLineNum());//行号 + item.setMaterial(mtrlZhongtongCode);//物料号 + item.setPlant(prchOrdDtlDO.getRcvFactNum());//工厂 + item.setStge_loc(prchOrdDtlDO.getRcvWrhNum());//库位 + item.setQuantity(String.valueOf(prchOrdDtlDO.getQty()));// 数量 + item.setPo_unit(prchOrdDtlDO.getUnt());// 计量单位 + item.setNet_price(prchOrdDtlDO.getInTaxUprc());// 含税单价 + item.setTax_code(prchOrdDtlDO.getTaxNum());//税码 + item.setAcctasscat(prchOrdDtlDO.getActsCtgr());//科目分配类别 + item.setMatl_group(prchOrdDtlDO.getMtrlCpntNum());//物料组 + item.setShort_text(prchOrdDtlDO.getShrtTxt());//短文本 + item.setDelete_ind("1");//行项目删除标识 + items.add(item); + }); + erpOrderUpdateReqVO.setItems(items); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PrchOrdDtlMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PrchOrdDtlMapper.xml index 983e1413..5470fb89 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PrchOrdDtlMapper.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PrchOrdDtlMapper.xml @@ -9,4 +9,119 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml index 67916f0d..764c7826 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml @@ -122,6 +122,117 @@ ORDER BY po.SYS_ORD_NUM, pod.LINE_NUM + + + SELECT * + FROM BSE_PRCH_ORD + WHERE id = #{id} + + + diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderUpdateReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderUpdateReqVO.java index 444acde0..b3b2b8f3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderUpdateReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderUpdateReqVO.java @@ -27,7 +27,7 @@ public class ErpOrderUpdateReqVO { @Schema(description = "删除标识(ELOEK)", example = " ") @ExcelProperty("删除标识") - private Integer deleteInd; + private String deleteInd; @Schema(description = "货币码(WAERS)", requiredMode = Schema.RequiredMode.REQUIRED, example = "CNY") @NotEmpty(message = "货币码不能为空") @@ -163,7 +163,7 @@ public class ErpOrderUpdateReqVO { @Schema(description = "行项目删除标识(ELOEK)", example = "N") @ExcelProperty("行项目删除标识") - private Integer delete_ind; + private String delete_ind; } @Data diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java index 58697609..01694a70 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.xxl.job.core.handler.annotation.XxlJob; +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.security.core.util.SecurityFrameworkUtils; @@ -17,6 +18,8 @@ import com.zt.plat.module.erp.dal.mysql.erp.ErpContractMapper; import com.zt.plat.module.erp.enums.OftenEnum; import com.zt.plat.module.erp.utils.ErpConfig; import com.zt.plat.module.erp.utils.MyRedisConfig; +import com.zt.plat.module.system.api.user.AdminUserApi; +import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +54,8 @@ public class ErpContractServiceImpl implements ErpContractService { @Resource public ErpExternalApi erpExternalApi; + @Resource + private AdminUserApi adminUserApi; @Override public ErpContractRespVO createErpContract(ErpContractSaveReqVO createReqVO) { // 插入 @@ -242,13 +247,13 @@ public class ErpContractServiceImpl implements ErpContractService { erpContract.setId(erpContractDO.getId()); erpContractMapper.updateById(erpContract); } - + AdminUserRespDTO work = getWorkId(); // 构建ERP接口的参数 ErpSubmitReqDTO erpSubmitReqDTO = new ErpSubmitReqDTO(); erpSubmitReqDTO.setFuncnr("060"); erpSubmitReqDTO.setBskey(erpContract.getContractPaperNumber()); - erpSubmitReqDTO.setUsrid(SecurityFrameworkUtils.getLoginUserId().toString()); - erpSubmitReqDTO.setUsrnm(SecurityFrameworkUtils.getLoginUserNickname()); + erpSubmitReqDTO.setUsrid(work.getWorkcode()); + erpSubmitReqDTO.setUsrnm(work.getUsername()); Map head = new HashMap<>(); // CZBS 操作标识 枚举值0:新增 1:修改 @@ -403,4 +408,8 @@ public class ErpContractServiceImpl implements ErpContractService { this.allnumbers = allnumbers; } } + private AdminUserRespDTO getWorkId(){ + CommonResult user = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()); + return user.getData(); + } } \ 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/ErpOrderServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java index bd5984e8..1af2053b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java @@ -3,6 +3,7 @@ package com.zt.plat.module.erp.service.erp; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.erp.api.ErpExternalApi; import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; @@ -10,6 +11,8 @@ import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpSalesOrderSaveReqVO; +import com.zt.plat.module.system.api.user.AdminUserApi; +import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -22,6 +25,8 @@ import java.util.Map; public class ErpOrderServiceImpl implements ErpOrderService { @Resource public ErpExternalApi erpExternalApi; + @Resource + private AdminUserApi adminUserApi; @Override public String submitOrderToErp061(ErpOrderSaveReqVO createVo) { @@ -44,10 +49,11 @@ public class ErpOrderServiceImpl implements ErpOrderService { // reqDTO.setBskey(vo.getOrderNo()); // reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); // reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); + AdminUserRespDTO userRespDTO = getWorkId(); reqDTO.setFuncnr(funcnr); reqDTO.setBskey(vo.getOrderNo()); - reqDTO.setUsrid("100048799"); - reqDTO.setUsrnm("夏丽丽"); + reqDTO.setUsrid(userRespDTO.getWorkcode()); + reqDTO.setUsrnm(userRespDTO.getUsername()); return reqDTO; } @@ -80,7 +86,7 @@ public class ErpOrderServiceImpl implements ErpOrderService { req.put("comp", updateVo.getComps()); reqDTO.setReq(req); - + String reqJson = com.alibaba.fastjson2.JSON.toJSONString(reqDTO); return submitToErp(reqDTO); } @@ -102,22 +108,33 @@ public class ErpOrderServiceImpl implements ErpOrderService { private ErpSubmitReqDTO buildBaseReqDTO062(ErpOrderUpdateReqVO vo, String funcnr) { ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); +// reqDTO.setFuncnr(funcnr); +// reqDTO.setBskey(vo.getPoNumber()); +// reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); +// reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); + AdminUserRespDTO userRespDTO = getWorkId(); reqDTO.setFuncnr(funcnr); reqDTO.setBskey(vo.getPoNumber()); - reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); + reqDTO.setUsrid(userRespDTO.getWorkcode()); + reqDTO.setUsrnm(userRespDTO.getUsername()); return reqDTO; } ErpSubmitReqDTO buildBaseReqDTO091(ErpSalesOrderSaveReqVO vo, String funcnr){ + AdminUserRespDTO userRespDTO = getWorkId(); ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); reqDTO.setFuncnr(funcnr); reqDTO.setBskey(vo.getOrderNo()); - reqDTO.setUsrid("100048799"); - reqDTO.setUsrnm("夏丽丽"); + reqDTO.setUsrid(userRespDTO.getWorkcode()); + reqDTO.setUsrnm(userRespDTO.getUsername()); // reqDTO.setBskey(vo.getOrderNo()); // reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); // reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); return reqDTO; } + + private AdminUserRespDTO getWorkId(){ + CommonResult user = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()); + return user.getData(); + } }