From 6ba001a74a14cb183580a4d304d2548fcc0ef6af 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: Tue, 28 Oct 2025 15:18:12 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmpltp/TemplateInstanceServiceImpl.java | 2 +- .../module/contractorder/api/ContractApi.java | 3 +- .../api/dto/{ => order}/PrchOrdDtlDTO.java | 2 +- .../PurchaseOrderWithDetailsDTO.java | 11 +- .../api/dto/order/SalesOrdDtlDTO.java | 137 +++++++++++++++++ .../contractorder/api/ContractApiImpl.java | 144 ++++++++++++++++-- .../vo/PrchOrdDtlDetailsRespVO.java | 2 +- .../salesorder/SalesOrderController.java | 27 ++-- .../purchaseorder/PurchaseOrderService.java | 21 ++- .../PurchaseOrderServiceImpl.java | 10 ++ 10 files changed, 324 insertions(+), 35 deletions(-) rename zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/{ => order}/PrchOrdDtlDTO.java (98%) rename zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/{ => order}/PurchaseOrderWithDetailsDTO.java (93%) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java index 06a929c8..6db2e292 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java @@ -260,7 +260,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { code = TmplStsEnum.STOPPED.getCode(); } else if (reqVO.getType().equals("enable")) { // 启用 - code = TmplStsEnum.START.getCode(); + code = TmplStsEnum.DRAFT.getCode(); } if (code.isEmpty()) { throw exception(ILLEGAL_OPERATION_TYPE); diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index b31f3a19..e437454a 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -2,7 +2,7 @@ package com.zt.plat.module.contractorder.api; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest; @@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java similarity index 98% rename from zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java rename to zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java index 599b0f3e..202e49b0 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.contractorder.api.dto; +package com.zt.plat.module.contractorder.api.dto.order; import lombok.Data; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java similarity index 93% rename from zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java rename to zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java index c3539739..194843d1 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.contractorder.api.dto; +package com.zt.plat.module.contractorder.api.dto.order; import lombok.Data; @@ -189,5 +189,12 @@ public class PurchaseOrderWithDetailsDTO { * 订单类型 */ private String splyBsnTp; - private List orderDetails; + /** + * 采购订单明细 + */ + private List prchOrdDtlDTOS; + /** + * 消费订单明细 + */ + private List salesOrdDtlDTOS; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java new file mode 100644 index 00000000..5a91b03b --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java @@ -0,0 +1,137 @@ +package com.zt.plat.module.contractorder.api.dto.order; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class SalesOrdDtlDTO { + + /** + * 主键 + */ + + private Long id; + /** + * 订单主键 + */ + + private Long orderId; + /** + * 行项目;推送ERP(必须) + */ + + private Long lineNumber; + /** + * 物料名称 + */ + + private String materialName; + /** + * 物料编码;推送ERP(必须) + */ + + private String materialNumber; + /** + * 工厂名称 + */ + + private String factoryName; + /** + * 工厂编码;推送ERP(必须) + */ + + private String factoryNumber; + /** + * 库位名称 + */ + + private String warehouseName; + /** + * 库位编码;推送ERP(必须) + */ + + private String warehouseNumber; + /** + * 计量单位;推送ERP(必须) + */ + + private String unit; + /** + * 开票类型;推送ERP(必须) + */ + + private String invoiceType; + /** + * 暂估数量;推送ERP(必须) + */ + + private BigDecimal quantity; + /** + * 稅分类(字典:SALE_TAX);推送ERP(必须) + */ + + private String taxAcctasscat; + /** + * 项目类别;推送ERP + */ + + private String projectCategory; + /** + * 装运地点;推送ERP + */ + + private String shippingPlace; + /** + * 物料科目分配组;推送ERP(必须) + */ + + private String metalAcctasscatGroup; + /** + * 小协议号 + */ + + private String agreementNumber; + /** + * 总价 + */ + + private BigDecimal gross; + /** + * 金属元素缩写 + */ + + private String elementAbbreviation; + /** + * 金属元素名称 + */ + private String elementName; + /** + * 金属元素编码 + */ + private String elementNumber; + /** + * 是否启用;处理明细中多个相同物料,只能允许一种物料启用 + */ + + private String isEnable; + /** + * 价格条件详情;推送ERP(必须):JSON + */ + + private String priceConditionDetail; + /** + * 来料加工原料详情;推送ERP:订单类型(JSON) + */ + + private String originDetail; + + /** + * 税率 + */ + + private BigDecimal taxRte; + +} 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 bac292b9..c349894b 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 @@ -1,11 +1,13 @@ package com.zt.plat.module.contractorder.api; +import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.contractorder.api.dto.PrchOrdDtlDTO; -import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; +import com.zt.plat.module.contractorder.api.dto.order.PrchOrdDtlDTO; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; +import com.zt.plat.module.contractorder.api.dto.order.SalesOrdDtlDTO; import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; import com.zt.plat.module.contractorder.api.vo.contract.international.*; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderDetailsRespVO; @@ -13,10 +15,15 @@ import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFieldDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFormDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFieldMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFormMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper; import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.contractorder.service.contract.ContractService; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; @@ -55,6 +62,7 @@ public class ContractApiImpl implements ContractApi { @Resource private SystemRelativityMapper systemRelativityMapper; + @Override public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) { return contractService.getFormulasByPaperNumber(contractPaperNumber); @@ -67,21 +75,74 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult> getOrderByOrderNo(List orderNoS) { + List orderByNos = purchaseOrderService.getOrderByNos(orderNoS); + if (orderByNos.isEmpty()) { + return success(new ArrayList<>()); + } + List order = new ArrayList<>(); + List purchaseOrderNoS = new ArrayList<>(); + List salesOrdNoS = new ArrayList<>(); + orderByNos.forEach(f -> { + if ("SALE".equals(f.getSplyBsnTp())) { + // 销售订单 + salesOrdNoS.add(f.getSystemOrderNumber()); + } else { + // 非销售订单(采购订单) + purchaseOrderNoS.add(f.getSystemOrderNumber()); + } + }); + + // 处理采购订单详情 + List purchaseOrderDetails = getPurchaseOrderDetails(purchaseOrderNoS); + if (!purchaseOrderDetails.isEmpty()) { + order.addAll(purchaseOrderDetails); + } + + // 处理销售订单详情 + List salesOrdDetails = getSalesOrdDetails(salesOrdNoS); + if (!salesOrdDetails.isEmpty()) { + order.addAll(salesOrdDetails); + } + return success(order); + } + + private List getSalesOrdDetails(List orderNoS) { + if (orderNoS.isEmpty()) { + return new ArrayList<>(); + } + SalesOrderMapper salesOrderMapper = SpringUtil.getBean(SalesOrderMapper.class); + SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class); + List salesOrderDOS = salesOrderMapper.selectList(SalesOrderDO::getSystemOrderNumber, orderNoS); + if (salesOrderDOS.isEmpty()) { + return new ArrayList<>(); + } + List purchaseOrderWithDetailsDTOS = BeanUtils.toBean(salesOrderDOS, PurchaseOrderWithDetailsDTO.class); + purchaseOrderWithDetailsDTOS.forEach(purchaseOrderWithDetailsDTO -> { + List salesOrderDetailDOS = salesOrderDetailMapper.selectList(SalesOrderDetailDO::getOrderId, purchaseOrderWithDetailsDTO.getId()); + List salesOrdDtlDTOS = BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class); + purchaseOrderWithDetailsDTO.setSalesOrdDtlDTOS(salesOrdDtlDTOS); + }); + return purchaseOrderWithDetailsDTOS; + } + + private List getPurchaseOrderDetails(List orderNoS) { + if (orderNoS.isEmpty()) { + return new ArrayList<>(); + } List purchaseOrderWithDetailsDTOS = new ArrayList<>(); List purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByOrderNo(orderNoS); purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { - if (purchaseOrderWithDetailsVO!= null) { - PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, - PurchaseOrderWithDetailsDTO.class); + if (purchaseOrderWithDetailsVO != null) { + PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, PurchaseOrderWithDetailsDTO.class); if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) { - purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>()); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(new ArrayList<>()); } else { - purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); } purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO); } }); - return success(purchaseOrderWithDetailsDTOS); + return purchaseOrderWithDetailsDTOS; } @Override @@ -193,7 +254,8 @@ public class ContractApiImpl implements ContractApi { systemRelativityMapper.insert(saveRelation); } } else if ("D".equals(operateFlag)) { - if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); + if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) + throw exception(CONTRACT_NOT_EXISTS); contractId = systemRelativityDO.getDownId(); contractMainMapper.deleteById(contractId); } else { @@ -1666,23 +1728,73 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult> getOrderByOrderIds(List ids) { - if (ids==null||ids.isEmpty()){ + if (ids == null || ids.isEmpty()) { throw new RuntimeException("订单id为空"); } + List ordersByIds = purchaseOrderService.getOrdersByIds(ids.stream().map(String::valueOf).toList()); + List purchaseOrderIds = new ArrayList<>(); + List salesOrderIds = new ArrayList<>(); + if (ordersByIds.isEmpty()) { + return CommonResult.success(new ArrayList<>()); + } + ordersByIds.forEach(o->{ + if ("SALE".equals(o.getSplyBsnTp())) { + // 销售订单 + salesOrderIds.add(o.getId()); + } else { + // 非销售订单(采购订单) + purchaseOrderIds.add(o.getId()); + } + }); + List purchaseOrderDetails = getSalesOrdDetailsByIds(purchaseOrderIds); + List salesOrdDetails = getPurchaseOrderDetailsByIds(salesOrderIds); + if (!purchaseOrderDetails.isEmpty()) { + purchaseOrderDetails.addAll(salesOrdDetails); + } + if (!salesOrdDetails.isEmpty()) { + purchaseOrderDetails.addAll(salesOrdDetails); + } + return CommonResult.success(purchaseOrderDetails); + } + + + private List getSalesOrdDetailsByIds(List ids) { + if (ids.isEmpty()) { + return new ArrayList<>(); + } + SalesOrderMapper salesOrderMapper = SpringUtil.getBean(SalesOrderMapper.class); + SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class); + List salesOrderDOS = salesOrderMapper.selectList(SalesOrderDO::getId, ids); + if (salesOrderDOS.isEmpty()) { + return new ArrayList<>(); + } + List purchaseOrderWithDetailsDTOS = BeanUtils.toBean(salesOrderDOS, PurchaseOrderWithDetailsDTO.class); + purchaseOrderWithDetailsDTOS.forEach(purchaseOrderWithDetailsDTO -> { + List salesOrderDetailDOS = salesOrderDetailMapper.selectList(SalesOrderDetailDO::getOrderId, purchaseOrderWithDetailsDTO.getId()); + List salesOrdDtlDTOS = BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class); + purchaseOrderWithDetailsDTO.setSalesOrdDtlDTOS(salesOrdDtlDTOS); + }); + return purchaseOrderWithDetailsDTOS; + } + + private List getPurchaseOrderDetailsByIds(List ids) { + if (ids.isEmpty()) { + return new ArrayList<>(); + } List purchaseOrderWithDetailsDTOS = new ArrayList<>(); List purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByIds(ids); purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { - if (purchaseOrderWithDetailsVO!= null) { - PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, - PurchaseOrderWithDetailsDTO.class); + if (purchaseOrderWithDetailsVO != null) { + PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, PurchaseOrderWithDetailsDTO.class); if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) { - purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>()); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(new ArrayList<>()); } else { - purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); } purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO); } }); - return success(purchaseOrderWithDetailsDTOS); + return purchaseOrderWithDetailsDTOS; } + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java index bb6d147a..a059eef8 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java @@ -77,7 +77,7 @@ public class PrchOrdDtlDetailsRespVO { * 税码(字典: PRCH_TAX);推送ERP */ - private BigDecimal taxNum; + private String taxNum; /** * 是否基于GR的发票校验;推送ERP */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java index 60f26b64..9efce457 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.controller.admin.salesorder; +import cn.hutool.extra.spring.SpringUtil; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.common.pojo.CommonResult; @@ -8,7 +9,9 @@ import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.contractorder.api.ContractApi; import com.zt.plat.module.contractorder.api.ContractApiImpl; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; @@ -26,12 +29,14 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import org.redisson.api.RObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; +import java.util.Objects; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.common.pojo.CommonResult.success; @@ -75,7 +80,7 @@ public class SalesOrderController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除销售订单") - @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") public CommonResult deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) { salesOrderService.deleteSalesOrderListByIds(req.getIds()); return success(true); @@ -85,10 +90,10 @@ public class SalesOrderController implements BusinessControllerMarker { @Operation(summary = "获得销售订单") @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型销售或者是消费", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('base:sales-order:query')") - public CommonResult getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) { + public CommonResult getSalesOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) { SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp); SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); - if (salesOrderRespVO == null){ + if (salesOrderRespVO == null) { return success(null); } salesOrderService.setSalesOrderDetail(salesOrderRespVO); @@ -100,8 +105,8 @@ public class SalesOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('base:sales-order:query')") public CommonResult> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { PageResult pageResult = salesOrderService.getSalesOrderPage(pageReqVO); - PageResult salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); - if (salesOrderRespVOPageResult.getList() != null){ + PageResult salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); + if (salesOrderRespVOPageResult.getList() != null) { salesOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> salesOrderService.setSalesOrderDetail(purchaseOrderRespVO)); } @@ -113,25 +118,25 @@ public class SalesOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('base:sales-order:export')") @ApiAccessLog(operateType = EXPORT) public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = salesOrderService.getSalesOrderPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "销售订单.xls", "数据", PurchaseOrderRespVO.class, - BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); } //推送erp091 @PostMapping("/push-erp091") @Operation(summary = "推送erp091") - public CommonResult pushErp091(@RequestParam("id")String id ) { + public CommonResult pushErp091(@RequestParam("id") String id) { return success(salesOrderService.pushErp091(id)); } //提交审批 @PostMapping("/submit-order") @Operation(summary = "提交审批") - public CommonResult submitOrder(@RequestParam("id")String id ) { + public CommonResult submitOrder(@RequestParam("id") String id) { return success(salesOrderService.submitOrder(id)); } @@ -141,6 +146,7 @@ public class SalesOrderController implements BusinessControllerMarker { public CommonResult orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) { return success(salesOrderService.orderPassReject(reqVO)); } + //关联订单 @PostMapping("/link-order") @Operation(summary = "关联订单") @@ -152,7 +158,7 @@ public class SalesOrderController implements BusinessControllerMarker { @PostMapping("/order-by-order-id-and-type") @Operation(summary = "根据订单id和方式获取上或下游订单") public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { - return success( salesOrderService.getOrderByOrderIdAndType(reqVO)); + return success(salesOrderService.getOrderByOrderIdAndType(reqVO)); } @@ -168,5 +174,4 @@ public class SalesOrderController implements BusinessControllerMarker { salesOrderService.updateOrderStatusByIdOrOrderNo(req); return success(true); } - } 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 ac08315b..6e9590b2 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 @@ -124,6 +124,25 @@ public interface PurchaseOrderService { * @return 结果 */ Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); - + /** + * 获取订单详情 + * + * @param ids 订单id + * @return 订单详情 + */ List getOrderByIds(List ids); + /** + * 获取订单详情 + * + * @param orderNos 订单编号 + * @return 订单详情 + */ + List getOrderByNos(List orderNos); + /** + * 获取订单详情 + * + * @param ids 订单id + * @return 订单详情 + */ + List getOrdersByIds(List ids); } 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 ba378c64..8ebb0121 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 @@ -677,4 +677,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { }); return purchaseOrderDetailsRespVOS; } + + @Override + public List getOrderByNos(List orderNos) { + return purchaseOrderMapper.selectList(PurchaseOrderDO::getSystemOrderNumber, orderNos); + } + + @Override + public List getOrdersByIds(List ids) { + return purchaseOrderMapper.selectByIds(ids); + } } From ee3b372557c4a0e3d399a3f3e32993cdfc5dba53 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Tue, 28 Oct 2025 16:09:13 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=9B=BD=E8=B4=B82.0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=90=88=E5=90=8C=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=86=85=E9=83=A8=E4=BE=9B=E5=BA=94=E9=93=BE=E7=9A=84?= =?UTF-8?q?=E5=90=88=E5=90=8C=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/contractorder/api/ContractApi.java | 11 +- .../api/vo/contract/ContractPageReqVO.java | 3 +- .../vo/contract/international/Account.java | 9 + .../international/ContractRequest.java | 89 +- .../vo/contract/international/Freight.java | 23 + .../vo/contract/international/GoodsSite.java | 15 + .../international/LoadingRequirement.java | 9 + .../vo/contract/international/Partner.java | 12 + .../contract/international/ReceivingAddr.java | 14 + .../vo/contract/international/ServiceFee.java | 5 + .../api/vo/contract/international/Storge.java | 6 + .../contractorder/api/ContractApiImpl.java | 1670 ++--------------- 12 files changed, 362 insertions(+), 1504 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index e437454a..66a3d5fc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -2,9 +2,8 @@ package com.zt.plat.module.contractorder.api; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; -import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest; import com.zt.plat.module.contractorder.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; @@ -35,15 +34,11 @@ public interface ContractApi { @Operation(summary = "通过订单编号获取订单信息", description = "通过订单编号获取订单信息") CommonResult> getOrderByOrderNo(@RequestBody List orderNoS); - @PostMapping(PREFIX + "/create") - @Operation(summary = "创建合同") - CommonResult create(@Valid @RequestBody ContractSaveReqVO reqVO); - @PostMapping(PREFIX + "/order-by-order-id") @Operation(summary = "通过订单id获取订单信息", description = "通过订单编号获取订单信息") CommonResult> getOrderByOrderIds(@RequestBody List ids); - @PostMapping(PREFIX + "/send") + @PostMapping(PREFIX + "/push") @Operation(summary = "国贸2.0系统创建合同调用") - CommonResult push(@Valid @RequestBody ContractRequest reqVO); + CommonResult push(@Valid @RequestBody ContractRequest reqVO) throws Exception; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractPageReqVO.java index bce3e3df..6b4b1a34 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractPageReqVO.java @@ -6,7 +6,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.time.LocalDateTime; import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -34,7 +33,7 @@ public class ContractPageReqVO extends PageParam { @Schema(description = "签署日期;与ERP(HTQDRQ)对应") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] signDate; + private String[] signDate; @Schema(description = "本币金额;与ERP(HTBWBZJE)对应") private BigDecimal basicAmount; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java index 79193871..14f0fa01 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,12 +8,20 @@ import lombok.Data; */ @Data public class Account { + @Schema(description = "收付款账号行号") private String accountSourceId; // 收付款账号行号 + @Schema(description = "收付款账号编号") private String accountSourceCode; // 收付款账号编号 + @Schema(description = "类别") private String accountType; // 类别 + @Schema(description = "名称") private String accountName; // 名称 + @Schema(description = "开户银行") private String bankAccountName; // 开户银行 + @Schema(description = "银行账号") private String bankAccountNo; // 银行账号 + @Schema(description = "纳税人识别号") private String identificationNumber; // 纳税人识别号 + @Schema(description = "地址、电话") private String addressPhoneTel; // 地址、电话 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java index 2f92d66c..b6b4507f 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java @@ -1,10 +1,9 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.sql.Date; import java.util.List; /** @@ -14,78 +13,144 @@ import java.util.List; public class ContractRequest { // 基础信息 + @Schema(description = "操作标志") private String operateFlag; // 操作标志 + @Schema(description = "账套代码") private String bookId; // 账套代码 + @Schema(description = "组织ID") private String orgId; // 组织ID + @Schema(description = "合同唯一键") private String contractId; // 合同唯一键 + @Schema(description = "合同操作类型 (新增, 变更, 修正)") private String operateType; // 合同操作类型 (新增, 变更, 修正) + @Schema(description = "合同编号") private String contractCode; // 合同编号 + @Schema(description = "业务合同编号") private String contractBusinessNo; // 业务合同编号 + @Schema(description = "对方合同号") private String contractExternalNo; // 对方合同号 + @Schema(description = "系统合同版本号") private BigDecimal contractVersion; // 系统合同版本号 + @Schema(description = "合同状态代码 (值集: 40-签约)") private String contractStatus; // 合同状态代码 (值集: 40-签约) + @Schema(description = "合同名称") private String contractName; // 合同名称 + @Schema(description = "合同类型 (货运;货代;仓储;保险)") private String contractType; // 合同类型 (货运;货代;仓储;保险) + @Schema(description = "是否非标准合同文本") private String textType; // 是否非标准合同文本 - @DateTimeFormat(pattern = "yyyyMMdd") - private Date contractStartDate; // 合同有效期起 (格式: yyyyMMdd) - @DateTimeFormat(pattern = "yyyyMMdd") - private Date contractEndDate; // 合同有效期止 (格式: yyyyMMdd) + @Schema(description = "合同有效期起 (格式: yyyyMMdd)") + private String contractStartDate; // 合同有效期起 (格式: yyyyMMdd) + @Schema(description = "合同有效期止 (格式: yyyyMMdd)") + private String contractEndDate; // 合同有效期止 (格式: yyyyMMdd) + @Schema(description = "是否固定单价 (0-浮动, 1-固定)") private String priceType; // 是否固定单价 (0-浮动, 1-固定) + @Schema(description = "合同币种") private String currencyCode; // 合同币种 + @Schema(description = "结算方式") private String settleMethod; // 结算方式 + @Schema(description = "对方合同号") private String firstContractCode; // 对方合同号 + @Schema(description = "预估含税总金额") private BigDecimal estimateAmountTotal; // 预估含税总金额 + @Schema(description = "结算依据 (10-交货量, 20-卸车量)") private String settleGist; // 结算依据 (10-交货量, 20-卸车量) + @Schema(description = "税率") private BigDecimal priceTaxRate; // 税率 + @Schema(description = "运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)") private String transType; // 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输) + @Schema(description = "包装方式") private String packMethod; // 包装方式 + @Schema(description = "在途损耗") private BigDecimal intransitLoss; // 在途损耗 + @Schema(description = "提货地") private String pickupLocation; // 提货地 + @Schema(description = "仓库数") private BigDecimal warehouseNum; // 仓库数 + @Schema(description = "按码单入库磅差比") private BigDecimal weightDisparity; // 按码单入库磅差比 + @Schema(description = "投保标的") private String insuredSubjectMatter; // 投保标的 + @Schema(description = "预计年保险总额") private BigDecimal estimateCoverageAmount; // 预计年保险总额 + @Schema(description = "预计年保险费") private BigDecimal estimatePremium; // 预计年保险费 + @Schema(description = "保险费率") private BigDecimal premiumRate; // 保险费率 + @Schema(description = "备注信息") private String remark; // 备注信息 + @Schema(description = "经办人工号") private String createdUser; // 经办人工号 + @Schema(description = "经办人姓名") private String createdUserName; // 经办人姓名 + @Schema(description = "拟签递交人工号") private String approveSubmitCode; // 拟签递交人工号 + @Schema(description = "拟签递交人姓名") private String approveSubmitName; // 拟签递交人姓名 - @DateTimeFormat(pattern = "yyyyMMdd") - private Date approveSubmitDate; // 拟签呈批日期 + @Schema(description = "拟签呈批日期") + private String approveSubmitDate; // 拟签呈批日期 + @Schema(description = "拟签通过人工号") private String approvePassCode; // 拟签通过人工号 + @Schema(description = "拟签通过人姓名") private String approvePassName; // 拟签通过人姓名 - @DateTimeFormat(pattern = "yyyyMMdd") - private Date approvePassDate; // 拟签通过日期 + @Schema(description = "拟签通过日期") + private String approvePassDate; // 拟签通过日期 + @Schema(description = "签约地 (40-签约必填)") private String signSite; // 签约地 (40-签约必填) - @DateTimeFormat(pattern = "yyyyMMdd") - private Date signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd) + @Schema(description = "签约日期 (40-签约必填, 格式: yyyyMMdd)") + private String signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd) + @Schema(description = "对方签约人 (40-签约必填)") private String signFirstPerson; // 对方签约人 (40-签约必填) + @Schema(description = "我方签约人工号 (40-签约必填)") private String signSecondPersonCode; // 我方签约人工号 (40-签约必填) + @Schema(description = "我方签约人") private String signSecondPersonName; // 我方签约人 + @Schema(description = "推荐签约人工号 (40-签约必填, Y/N)") private String onceAuthorityFlag; // 推荐签约人工号 (40-签约必填, Y/N) + @Schema(description = "推荐签约人工号") private String signOnceAccredit; // 推荐签约人工号 + @Schema(description = "备用字段1") private String extCol1; // 备用字段1 + @Schema(description = "备用字段2") private String extCol2; // 备用字段2 + @Schema(description = "备用字段3") private String extCol3; // 备用字段3 + @Schema(description = "备用字段4") private String extCol4; // 备用字段4 + @Schema(description = "备用字段5") private String extCol5; // 备用字段5 + @Schema(description = "备用字段6") private String extCol6; // 备用字段6 + @Schema(description = "备用字段7") private String extCol7; // 备用字段7 + @Schema(description = "备用字段8") private String extCol8; // 备用字段8 + @Schema(description = "备用字段9") private String extCol9; // 备用字段9 + @Schema(description = "备用字段10") private String extCol10; // 备用字段10 + @Schema(description = "附件清单列表") private List attachList; // 附件清单列表 + @Schema(description = "是否内部企业") + private String isInternal; // 是否内部企业 + @Schema(description = "是否框架合同") + private String isFramework; // 是否框架合同 // 嵌套列表 + @Schema(description = "客商信息") private List partnerList; // 客商信息 + @Schema(description = "收发港/站点") private List goodsSiteList; // 收发港/站点 + @Schema(description = "货物装卸要求") private List loadingRequirementsList; // 货物装卸要求 + @Schema(description = "收付款账号") private List accountList; // 收付款账号 + @Schema(description = "费用明细") private List freightList; // 费用明细 + @Schema(description = "服务费用项目") private List serviceFeeList; // 服务费用项目 + @Schema(description = "仓库明细") private List storgeList; // 仓库明细 + @Schema(description = "接货地址") private List receivingAddrList; // 接货地址 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java index 740ba73f..1c039249 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; @@ -8,26 +9,48 @@ import java.math.BigDecimal; */ @Data public class Freight { + @Schema(description = "费用明细行号") private String freightSourceId; // 费用明细行号 + @Schema(description = "费用明细编号") private String freightSourceCode; // 费用明细编号 + @Schema(description = "发货地编号") private String beginSiteCode; // 发货地编号 + @Schema(description = "发货地名称") private String beginSiteName; // 发货地名称 + @Schema(description = "详细地址") private String beginSiteAddress; // 详细地址 + @Schema(description = "收货地编码") private String endSiteCode; // 收货地编码 + @Schema(description = "收货地名称") private String endSiteName; // 收货地名称 + @Schema(description = "详细地址") private String endSiteAddress; // 详细地址 + @Schema(description = "运输方式 (10-汽运;20-船运;30-水汽联运)") private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运) + @Schema(description = "费用类型 (包干费、汽运费、港口费...)") private String feeTypeCode; // 费用类型 (包干费、汽运费、港口费...) + @Schema(description = "费用名称") private String feeTypeName; // 费用名称 + @Schema(description = "是否乙方提货") private String isPartybPickup; // 是否乙方提货 + @Schema(description = "乙方提货单价") private BigDecimal partybPickupPrice; // 乙方提货单价 + @Schema(description = "费用大类") private String feeCategoryL; // 费用大类 + @Schema(description = "费用小类") private String feeCategoryS; // 费用小类 + @Schema(description = "标的仓") private String goodsStorage; // 标的仓 + @Schema(description = "标的物") private String categoryName; // 标的物 + @Schema(description = "免堆期") private BigDecimal noHeapDays; // 免堆期 + @Schema(description = "计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)") private String quantityUnitCode; // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车) + @Schema(description = "单价") private BigDecimal priceWithtax; // 单价 + @Schema(description = "税率(%)") private BigDecimal priceTaxRate; // 税率(%) + @Schema(description = "费用承担") private String costBearing; // 费用承担 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java index d4fc6878..d7a745f9 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,18 +8,32 @@ import lombok.Data; */ @Data public class GoodsSite { + @Schema(description = "收发港站点行号") private String goodsSiteSourceId; // 收发港站点行号 + @Schema(description = "收发港站点编号") private String goodsSiteSourceCode; // 收发港站点编号 + @Schema(description = "标的物分类") private String subMattercategoryLevel; // 标的物分类 + @Schema(description = "标的物编码") private String subMattercategoryCode; // 标的物编码 + @Schema(description = "标的物名称") private String subMatterCategoryName; // 标的物名称 + @Schema(description = "地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)") private String beginSiteType; // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + @Schema(description = "发货地编号") private String beginSiteCode; // 发货地编号 + @Schema(description = "发货地名称") private String beginSiteName; // 发货地名称 + @Schema(description = "详细地址") private String beginSiteAddress; // 详细地址 + @Schema(description = "地点类型") private String endSiteType; // 地点类型 + @Schema(description = "收货地编号") private String endSiteCode; // 收货地编号 + @Schema(description = "收货地名称") private String endSiteName; // 收货地名称 + @Schema(description = "详细地址") private String endSiteAddress; // 详细地址 + @Schema(description = "运输方式 (10-汽运;20-船运;30-水汽联运)") private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运) } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java index 7b8f31ea..0ad7a7ab 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,12 +8,20 @@ import lombok.Data; */ @Data public class LoadingRequirement { + @Schema(description = "货物装卸行号") private String loadingReqSourceId; // 货物装卸行号 + @Schema(description = "货物装卸编号") private String loadingReqSourceCode; // 货物装卸编号 + @Schema(description = "提货地责任方") private String deliveredAtPlace; // 提货地责任方 + @Schema(description = "提货地费用承担方") private String deliveredAtFeeparty; // 提货地费用承担方 + @Schema(description = "终到地责任方") private String destinationResponsibleParty; // 终到地责任方 + @Schema(description = "终到地费用承担方") private String intermediateStationParty; // 终到地费用承担方 + @Schema(description = "中间站责任方") private String destinationResponsibleFeeparty; // 中间站责任方 + @Schema(description = "中间站费用承担方") private String intermediateResponsibleFeeparty; // 中间站费用承担方 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java index 7ac0033c..707a8908 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,15 +8,26 @@ import lombok.Data; */ @Data public class Partner { + @Schema(description = "客商信息行号") private String partnerSourceId; // 客商信息行号 + @Schema(description = "客商信息编码") private String partnerSourceCode; // 客商信息编码 + @Schema(description = "供应商名称") private String partnerName; // 供应商名称 + @Schema(description = "供应商代码") private String partnerCode; // 供应商代码 + @Schema(description = "对方法定代表人") private String legalRepresentative; // 对方法定代表人 + @Schema(description = "币种") private String partnerCurrency; // 币种 + @Schema(description = "对方联系人") private String contactPerson; // 对方联系人 + @Schema(description = "对方联系人联系方式") private String contactInformation; // 对方联系人联系方式 + @Schema(description = "是否内部交易") private String internalTransaction; // 是否内部交易 + @Schema(description = "客商类型") private String partnerType; // 客商类型 + @Schema(description = "境内/外") private String domesticOrOverseas; // 境内/外 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java index b72dae84..1cd4f9dc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,17 +8,30 @@ import lombok.Data; */ @Data public class ReceivingAddr { + @Schema(description = "接货地址行号") private String recivingAddrSourceId; // 接货地址行号 + @Schema(description = "接货地址编号") private String recivingAddrSourceCode; // 接货地址编号 + @Schema(description = "标的物分类") private String categoryLevel; // 标的物分类 + @Schema(description = "标的物编码") private String ccCategoryCode; // 标的物编码 + @Schema(description = "标的物名称") private String categoryName; // 标的物名称 + @Schema(description = "接货编码") private String siteCode; // 接货编码 + @Schema(description = "接货名称") private String siteName; // 接货名称 + @Schema(description = "地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)") private String siteType; // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + @Schema(description = "详细地址") private String siteAddress; // 详细地址 + @Schema(description = "专用线") private String consigneePrivatewire; // 专用线 + @Schema(description = "收货人") private String consignerContact; // 收货人 + @Schema(description = "联系人") private String contactPerson; // 联系人 + @Schema(description = "联系电话") private String contactPhone; // 联系电话 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java index d70adc0f..7eaa3db5 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,8 +8,12 @@ import lombok.Data; */ @Data public class ServiceFee { + @Schema(description = "服务费用项目行号") private String serviceFeeSourceId; // 服务费用项目行号 + @Schema(description = "服务费用项目编号") private String serviceFeeSourceCode; // 服务费用项目编号 + @Schema(description = "服务项目名称") private String serviceFeeName; // 服务项目名称 + @Schema(description = "计费类别") private String expenseType; // 计费类别 } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java index 18decdc2..d6aa2390 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.api.vo.contract.international; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /* @@ -7,9 +8,14 @@ import lombok.Data; */ @Data public class Storge { + @Schema(description = "合同明细行号") private String storgeSourceId; // 合同明细行号 + @Schema(description = "合同明细行编号") private String storgeSourceCode; // 合同明细行编号 + @Schema(description = "仓库编号") private String warehouseCode; // 仓库编号 + @Schema(description = "仓库名称") private String warehouseName; // 仓库名称 + @Schema(description = "详细地址") private String warehouseAddress; // 详细地址 } \ No newline at end of file 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 c349894b..c22010fd 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 @@ -4,11 +4,10 @@ import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; +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; -import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.dto.order.SalesOrdDtlDTO; -import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; import com.zt.plat.module.contractorder.api.vo.contract.international.*; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderDetailsRespVO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; @@ -28,6 +27,7 @@ import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.contractorder.service.contract.ContractService; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; @@ -35,8 +35,9 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.lang.reflect.Field; import java.time.LocalDateTime; -import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -62,7 +63,6 @@ public class ContractApiImpl implements ContractApi { @Resource private SystemRelativityMapper systemRelativityMapper; - @Override public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) { return contractService.getFormulasByPaperNumber(contractPaperNumber); @@ -145,87 +145,12 @@ public class ContractApiImpl implements ContractApi { return purchaseOrderWithDetailsDTOS; } - @Override - public CommonResult create(ContractSaveReqVO reqVO) { - return null; - } - @Transactional @Override - public CommonResult push(@RequestBody ContractRequest reqVO) { + public CommonResult push(@RequestBody ContractRequest reqVO) throws Exception { // 合同主信息表映射 - ContractMainDO contractMainDO = new ContractMainDO(); - // 合同编号 - contractMainDO.setContractPaperNumber(reqVO.getContractCode()); - // 合同名称 - contractMainDO.setContractName(reqVO.getContractName()); - // 施工类型编号 默认值:SAPO2NCOZC - contractMainDO.setConstructionTypeNumber("SAPO2NCOZC"); - // 施工类型名称 默认值:铜非施工合同支出类 - contractMainDO.setConstructionTypeName("铜非施工合同支出类"); - // 类别 默认值:购销合同(1) - contractMainDO.setCategory("1"); - // 是否虚拟合同 默认值:否(0) - contractMainDO.setContractVirtual("0"); - // 代理方 默认值:NULL - // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) - contractMainDO.setSignDate(LocalDateTime.ofInstant(reqVO.getSignDate().toInstant(), ZoneId.systemDefault())); - // 开始日期 -> 合同有效期起 (格式: yyyyMMdd) - contractMainDO.setStartDate(LocalDateTime.ofInstant(reqVO.getContractStartDate().toInstant(), ZoneId.systemDefault())); - // 结束日期 -> 合同有效期止 (格式: yyyyMMdd) - contractMainDO.setEndDate(LocalDateTime.ofInstant(reqVO.getContractEndDate().toInstant(), ZoneId.systemDefault())); - // 币种 -> 合同币种 - contractMainDO.setCurrency(reqVO.getCurrencyCode()); - // 原币金额 -> 预估含税总金额 - contractMainDO.setCooAmount(reqVO.getEstimateAmountTotal()); - // 本币金额 -> 预估含税总金额 - contractMainDO.setBasicAmount(reqVO.getEstimateAmountTotal()); - // 状态 默认值:正在执行(EF) 执行中 - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); - // 是否有预付款 默认值:否 - contractMainDO.setHasPrepayment("0"); - // 预付款比例 默认值:NULL - // 预付款金额 默认值:NULL - // 是否有质保金 默认值:否 - contractMainDO.setHasQualityAmount("0"); - // 质保金比例 默认值:NULL - // 质保金金额 默认值:NULL - // 是否内部企业 TODO - // 收支性质 默认值:支出 - contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode()); - // 是否框架合同 TODO - // 境内/境外 -> 客商信息:境内/外 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getPartnerCode()); - } - // 建筑服务发生地 默认值:NULL - // 达到收款条件金额 默认值:NULL - // 是否有履约保证金 默认值:否 - contractMainDO.setHasDeposit("0"); - // 原币履约保证金 默认值:NULL - // 本币履约保证金 默认值:NULL - // 交易方式 默认值:先款后货 - contractMainDO.setHasPayable("PRE_PAY"); - // 合同类型 默认值:物流合同 - contractMainDO.setContractType("3"); - // 签署地 -> 签约地 (40-签约必填) - contractMainDO.setSignPlace(reqVO.getSignSite()); - // 甲方公司编号(采购方) -> 账套代码 - contractMainDO.setPurchaseCompanyNumber(reqVO.getBookId()); - // 甲方公司名称 -> 账套名称 null - // 甲方地址 默认值:NULL - // 甲方法定代表人 默认值:NULL - // 乙方公司编号(销售方) -> 客商信息:供应商代码 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); - } - // 乙方公司名称 -> 客商信息:供应商名称 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); - } - // 乙方地址 默认值:NULL - // 乙方企业负责人 默认值:NULL + ContractMainDO contractMainDO = getcontractMainDO(reqVO); // 逻辑处理 // 操作标志 I 新增/更新;D 删除 @@ -254,8 +179,7 @@ public class ContractApiImpl implements ContractApi { systemRelativityMapper.insert(saveRelation); } } else if ("D".equals(operateFlag)) { - if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) - throw exception(CONTRACT_NOT_EXISTS); + if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); contractId = systemRelativityDO.getDownId(); contractMainMapper.deleteById(contractId); } else { @@ -270,1456 +194,111 @@ public class ContractApiImpl implements ContractApi { JSONObject erpResult = contractService.sendToErp(erpContractVO); log.info("合同提交ERP结果:{}", erpResult); - // 更新合同状态 + // 调用ERP失败 if (!erpResult.getBool("success")) { throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg")); } - // 多余请求参数保存到动态条款明细表 - List contractOtherFieldDOS = new ArrayList<>(); - ContractOtherFieldDO contractOtherFieldDO = new ContractOtherFieldDO(); - // 基础信息----- - // 组织ID - contractOtherFieldDO.setFieldNumber("orgId"); - contractOtherFieldDO.setFieldName("组织ID"); - contractOtherFieldDO.setFieldValue(reqVO.getOrgId()); - contractOtherFieldDO.setFieldDescription("组织ID"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 合同操作类型 (新增, 变更, 修正) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("operateType"); - contractOtherFieldDO.setFieldName("合同操作类型 (新增, 变更, 修正)"); - contractOtherFieldDO.setFieldValue(reqVO.getOperateType()); - contractOtherFieldDO.setFieldDescription("合同操作类型 (新增, 变更, 修正)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 业务合同编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("contractBusinessNo"); - contractOtherFieldDO.setFieldName("业务合同编号"); - contractOtherFieldDO.setFieldValue(reqVO.getContractBusinessNo()); - contractOtherFieldDO.setFieldDescription("业务合同编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方合同号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("contractExternalNo"); - contractOtherFieldDO.setFieldName("对方合同号"); - contractOtherFieldDO.setFieldValue(reqVO.getContractExternalNo()); - contractOtherFieldDO.setFieldDescription("对方合同号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 系统合同版本号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("contractVersion"); - contractOtherFieldDO.setFieldName("系统合同版本号"); - contractOtherFieldDO.setFieldValue(reqVO.getContractVersion().toString()); - contractOtherFieldDO.setFieldDescription("系统合同版本号"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 合同状态代码 (值集: 40-签约) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("contractStatus"); - contractOtherFieldDO.setFieldName("合同状态代码 (值集: 40-签约)"); - contractOtherFieldDO.setFieldValue(reqVO.getContractStatus()); - contractOtherFieldDO.setFieldDescription("合同状态代码 (值集: 40-签约)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 合同类型 (货运;货代;仓储;保险) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("contractType"); - contractOtherFieldDO.setFieldName("合同类型 (货运;货代;仓储;保险)"); - contractOtherFieldDO.setFieldValue(reqVO.getContractType()); - contractOtherFieldDO.setFieldDescription("合同类型 (货运;货代;仓储;保险)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 是否非标准合同文本 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("textType"); - contractOtherFieldDO.setFieldName("是否非标准合同文本"); - contractOtherFieldDO.setFieldValue(reqVO.getTextType()); - contractOtherFieldDO.setFieldDescription("是否非标准合同文本"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 是否固定单价 (0-浮动, 1-固定) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("priceType"); - contractOtherFieldDO.setFieldName("是否固定单价 (0-浮动, 1-固定)"); - contractOtherFieldDO.setFieldValue(reqVO.getPriceType()); - contractOtherFieldDO.setFieldDescription("是否固定单价 (0-浮动, 1-固定)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 结算方式 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("settleMethod"); - contractOtherFieldDO.setFieldName("结算方式"); - contractOtherFieldDO.setFieldValue(reqVO.getSettleMethod()); - contractOtherFieldDO.setFieldDescription("结算方式"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方合同号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("firstContractCode"); - contractOtherFieldDO.setFieldName("对方合同号"); - contractOtherFieldDO.setFieldValue(reqVO.getFirstContractCode()); - contractOtherFieldDO.setFieldDescription("对方合同号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 结算依据 (10-交货量, 20-卸车量) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("settleGist"); - contractOtherFieldDO.setFieldName("结算依据 (10-交货量, 20-卸车量)"); - contractOtherFieldDO.setFieldValue(reqVO.getSettleGist()); - contractOtherFieldDO.setFieldDescription("结算依据 (10-交货量, 20-卸车量)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 税率 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("priceTaxRate"); - contractOtherFieldDO.setFieldName("税率"); - contractOtherFieldDO.setFieldValue(reqVO.getPriceTaxRate().toString()); - contractOtherFieldDO.setFieldDescription("税率"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("transType"); - contractOtherFieldDO.setFieldName("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); - contractOtherFieldDO.setFieldValue(reqVO.getTransType()); - contractOtherFieldDO.setFieldDescription("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 包装方式 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("packMethod"); - contractOtherFieldDO.setFieldName("包装方式"); - contractOtherFieldDO.setFieldValue(reqVO.getPackMethod()); - contractOtherFieldDO.setFieldDescription("包装方式"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 在途损耗 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("intransitLoss"); - contractOtherFieldDO.setFieldName("在途损耗"); - contractOtherFieldDO.setFieldValue(reqVO.getIntransitLoss().toString()); - contractOtherFieldDO.setFieldDescription("在途损耗"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 提货地 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("pickupLocation"); - contractOtherFieldDO.setFieldName("提货地"); - contractOtherFieldDO.setFieldValue(reqVO.getPickupLocation()); - contractOtherFieldDO.setFieldDescription("提货地"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 仓库数 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("warehouseNum"); - contractOtherFieldDO.setFieldName("仓库数"); - contractOtherFieldDO.setFieldValue(reqVO.getWarehouseNum().toString()); - contractOtherFieldDO.setFieldDescription("仓库数"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 按码单入库磅差比 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("weightDisparity"); - contractOtherFieldDO.setFieldName("按码单入库磅差比"); - contractOtherFieldDO.setFieldValue(reqVO.getWeightDisparity().toString()); - contractOtherFieldDO.setFieldDescription("按码单入库磅差比"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 投保标的 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("insuredSubjectMatter"); - contractOtherFieldDO.setFieldName("投保标的"); - contractOtherFieldDO.setFieldValue(reqVO.getInsuredSubjectMatter()); - contractOtherFieldDO.setFieldDescription("投保标的"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 预计年保险总额 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("estimateCoverageAmount"); - contractOtherFieldDO.setFieldName("预计年保险总额"); - contractOtherFieldDO.setFieldValue(reqVO.getEstimateCoverageAmount().toString()); - contractOtherFieldDO.setFieldDescription("预计年保险总额"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 预计年保险费 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("estimatePremium"); - contractOtherFieldDO.setFieldName("预计年保险费"); - contractOtherFieldDO.setFieldValue(reqVO.getEstimatePremium().toString()); - contractOtherFieldDO.setFieldDescription("预计年保险费"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 保险费率 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("premiumRate"); - contractOtherFieldDO.setFieldName("保险费率"); - contractOtherFieldDO.setFieldValue(reqVO.getPremiumRate().toString()); - contractOtherFieldDO.setFieldDescription("保险费率"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备注信息 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("remark"); - contractOtherFieldDO.setFieldName("备注信息"); - contractOtherFieldDO.setFieldValue(reqVO.getRemark()); - contractOtherFieldDO.setFieldDescription("备注信息"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 经办人工号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("createdUser"); - contractOtherFieldDO.setFieldName("经办人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getCreatedUser()); - contractOtherFieldDO.setFieldDescription("经办人工号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 经办人姓名 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("createdUserName"); - contractOtherFieldDO.setFieldName("经办人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getCreatedUserName()); - contractOtherFieldDO.setFieldDescription("经办人姓名"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签递交人工号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approveSubmitCode"); - contractOtherFieldDO.setFieldName("拟签递交人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitCode()); - contractOtherFieldDO.setFieldDescription("拟签递交人工号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签递交人姓名 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approveSubmitName"); - contractOtherFieldDO.setFieldName("拟签递交人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitName()); - contractOtherFieldDO.setFieldDescription("拟签递交人姓名"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签呈批日期 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approveSubmitDate"); - contractOtherFieldDO.setFieldName("拟签呈批日期"); - contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitDate().toString()); - contractOtherFieldDO.setFieldDescription("拟签呈批日期"); - contractOtherFieldDO.setType("Date"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签通过人工号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approvePassCode"); - contractOtherFieldDO.setFieldName("拟签通过人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getApprovePassCode()); - contractOtherFieldDO.setFieldDescription("拟签通过人工号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签通过人姓名 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approvePassName"); - contractOtherFieldDO.setFieldName("拟签通过人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getApprovePassName()); - contractOtherFieldDO.setFieldDescription("拟签通过人姓名"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 拟签通过日期 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("approvePassDate"); - contractOtherFieldDO.setFieldName("拟签通过日期"); - contractOtherFieldDO.setFieldValue(reqVO.getApprovePassDate().toString()); - contractOtherFieldDO.setFieldDescription("拟签通过日期"); - contractOtherFieldDO.setType("Date"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方签约人 (40-签约必填) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("signFirstPerson"); - contractOtherFieldDO.setFieldName("对方签约人 (40-签约必填)"); - contractOtherFieldDO.setFieldValue(reqVO.getSignFirstPerson()); - contractOtherFieldDO.setFieldDescription("对方签约人 (40-签约必填)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 我方签约人工号 (40-签约必填) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("signSecondPersonCode"); - contractOtherFieldDO.setFieldName("我方签约人工号 (40-签约必填)"); - contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonCode()); - contractOtherFieldDO.setFieldDescription("我方签约人工号 (40-签约必填)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 我方签约人 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("signSecondPersonName"); - contractOtherFieldDO.setFieldName("我方签约人"); - contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonName()); - contractOtherFieldDO.setFieldDescription("我方签约人"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 推荐签约人工号 (40-签约必填, Y/N) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("onceAuthorityFlag"); - contractOtherFieldDO.setFieldName("推荐签约人工号 (40-签约必填, Y/N)"); - contractOtherFieldDO.setFieldValue(reqVO.getOnceAuthorityFlag()); - contractOtherFieldDO.setFieldDescription("推荐签约人工号 (40-签约必填, Y/N)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 推荐签约人工号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("signOnceAccredit"); - contractOtherFieldDO.setFieldName("推荐签约人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getSignOnceAccredit()); - contractOtherFieldDO.setFieldDescription("推荐签约人工号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段1 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol1"); - contractOtherFieldDO.setFieldName("备用字段1"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol1()); - contractOtherFieldDO.setFieldDescription("备用字段1"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段2 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol2"); - contractOtherFieldDO.setFieldName("备用字段2"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol2()); - contractOtherFieldDO.setFieldDescription("备用字段2"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段3 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol3"); - contractOtherFieldDO.setFieldName("备用字段3"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol3()); - contractOtherFieldDO.setFieldDescription("备用字段3"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段4 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol4"); - contractOtherFieldDO.setFieldName("备用字段4"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol4()); - contractOtherFieldDO.setFieldDescription("备用字段4"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段5 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol5"); - contractOtherFieldDO.setFieldName("备用字段5"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol5()); - contractOtherFieldDO.setFieldDescription("备用字段5"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段6 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol6"); - contractOtherFieldDO.setFieldName("备用字段6"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol6()); - contractOtherFieldDO.setFieldDescription("备用字段6"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段7 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol7"); - contractOtherFieldDO.setFieldName("备用字段7"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol7()); - contractOtherFieldDO.setFieldDescription("备用字段7"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段8 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol8"); - contractOtherFieldDO.setFieldName("备用字段8"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol8()); - contractOtherFieldDO.setFieldDescription("备用字段8"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段9 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol9"); - contractOtherFieldDO.setFieldName("备用字段9"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol9()); - contractOtherFieldDO.setFieldDescription("备用字段9"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 备用字段10 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setFieldNumber("extCol10"); - contractOtherFieldDO.setFieldName("备用字段10"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol10()); - contractOtherFieldDO.setFieldDescription("备用字段10"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); + // 删除动态条款信息 + contractOtherFormMapper.delete("CTRT_MAIN_ID", contractId.toString()); + contractOtherFieldMapper.delete("CTRT_MAIN_ID", contractId.toString()); - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + // 请求参数保存到动态条款 + Field[] fields = reqVO.getClass().getDeclaredFields(); + saveFields(fields, contractId, null, reqVO); // 明细部分保存 // 附件清单列表 - ContractOtherFormDO contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("attachList"); - contractOtherFormDO.setFormName("附件清单列表"); - contractOtherFormDO.setFormDescription("附件清单列表"); - contractOtherFormMapper.insert(contractOtherFormDO); - contractOtherFieldDOS = new ArrayList<>(); + ContractOtherFormDO otherFormDO = saveContractOtherForm(contractId, "attachList", + "附件清单列表", "附件清单列表"); + List otherFieldDOS = new ArrayList<>(); if (reqVO.getAttachList() != null && !reqVO.getAttachList().isEmpty()) { for (String attach : reqVO.getAttachList()) { - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("attach"); - contractOtherFieldDO.setFieldName("附件"); - contractOtherFieldDO.setFieldValue(attach); - contractOtherFieldDO.setFieldDescription("附件"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); + otherFieldDOS.add(getContractOtherField(contractId, otherFormDO.getId(), "attach", "附件", + attach, "附件", "java.lang.String")); } } // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + contractOtherFieldMapper.insertBatch(otherFieldDOS); + //----- 嵌套列表 // 客商信息 if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { for (Partner partner : reqVO.getPartnerList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("partnerList"); - contractOtherFormDO.setFormName("客商信息"); - contractOtherFormDO.setFormDescription("客商信息"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - // 客商信息行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerSourceId"); - contractOtherFieldDO.setFieldName("客商信息行号"); - contractOtherFieldDO.setFieldValue(partner.getPartnerSourceId()); - contractOtherFieldDO.setFieldDescription("客商信息行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 客商信息编码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerSourceCode"); - contractOtherFieldDO.setFieldName("客商信息编码"); - contractOtherFieldDO.setFieldValue(partner.getPartnerSourceCode()); - contractOtherFieldDO.setFieldDescription("客商信息编码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 供应商名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerName"); - contractOtherFieldDO.setFieldName("供应商名称"); - contractOtherFieldDO.setFieldValue(partner.getPartnerName()); - contractOtherFieldDO.setFieldDescription("供应商名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 供应商代码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerCode"); - contractOtherFieldDO.setFieldName("供应商代码"); - contractOtherFieldDO.setFieldValue(partner.getPartnerCode()); - contractOtherFieldDO.setFieldDescription("供应商代码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方法定代表人 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("legalRepresentative"); - contractOtherFieldDO.setFieldName("对方法定代表人"); - contractOtherFieldDO.setFieldValue(partner.getLegalRepresentative()); - contractOtherFieldDO.setFieldDescription("对方法定代表人"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 币种 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerCurrency"); - contractOtherFieldDO.setFieldName("币种"); - contractOtherFieldDO.setFieldValue(partner.getPartnerCurrency()); - contractOtherFieldDO.setFieldDescription("币种"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方联系人 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contactPerson"); - contractOtherFieldDO.setFieldName("对方联系人"); - contractOtherFieldDO.setFieldValue(partner.getContactPerson()); - contractOtherFieldDO.setFieldDescription("对方联系人"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 对方联系人联系方式 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contactInformation"); - contractOtherFieldDO.setFieldName("对方联系人联系方式"); - contractOtherFieldDO.setFieldValue(partner.getContactInformation()); - contractOtherFieldDO.setFieldDescription("对方联系人联系方式"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 是否内部交易 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("internalTransaction"); - contractOtherFieldDO.setFieldName("是否内部交易"); - contractOtherFieldDO.setFieldValue(partner.getInternalTransaction()); - contractOtherFieldDO.setFieldDescription("是否内部交易"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 客商类型 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partnerType"); - contractOtherFieldDO.setFieldName("客商类型"); - contractOtherFieldDO.setFieldValue(partner.getPartnerType()); - contractOtherFieldDO.setFieldDescription("客商类型"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 境内/外 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("domesticOrOverseas"); - contractOtherFieldDO.setFieldName("境内/外"); - contractOtherFieldDO.setFieldValue(partner.getDomesticOrOverseas()); - contractOtherFieldDO.setFieldDescription("境内/外"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "partnerList", + "客商信息", "客商信息"); + fields = partner.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), partner); } } + // 收发港/站点 if (reqVO.getGoodsSiteList() != null && !reqVO.getGoodsSiteList().isEmpty()) { for (GoodsSite goodsSite : reqVO.getGoodsSiteList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("goodsSiteList"); - contractOtherFormDO.setFormName("收发港/站点"); - contractOtherFormDO.setFormDescription("收发港/站点"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - // 收发港站点行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("goodsSiteSourceId"); - contractOtherFieldDO.setFieldName("收发港站点行号"); - contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceId()); - contractOtherFieldDO.setFieldDescription("收发港站点行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收发港站点编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("goodsSiteSourceCode"); - contractOtherFieldDO.setFieldName("收发港站点编号"); - contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceCode()); - contractOtherFieldDO.setFieldDescription("收发港站点编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物分类 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("subMattercategoryLevel"); - contractOtherFieldDO.setFieldName("标的物分类"); - contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryLevel()); - contractOtherFieldDO.setFieldDescription("标的物分类"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物编码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("subMattercategoryCode"); - contractOtherFieldDO.setFieldName("标的物编码"); - contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryCode()); - contractOtherFieldDO.setFieldDescription("标的物编码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("subMatterCategoryName"); - contractOtherFieldDO.setFieldName("标的物名称"); - contractOtherFieldDO.setFieldValue(goodsSite.getSubMatterCategoryName()); - contractOtherFieldDO.setFieldDescription("标的物名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteType"); - contractOtherFieldDO.setFieldName("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); - contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteType()); - contractOtherFieldDO.setFieldDescription("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 发货地编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteCode"); - contractOtherFieldDO.setFieldName("发货地编号"); - contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteCode()); - contractOtherFieldDO.setFieldDescription("发货地编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 发货地名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteName"); - contractOtherFieldDO.setFieldName("发货地名称"); - contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteName()); - contractOtherFieldDO.setFieldDescription("发货地名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 地点类型 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteType"); - contractOtherFieldDO.setFieldName("地点类型"); - contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteType()); - contractOtherFieldDO.setFieldDescription("地点类型"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收货地编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteCode"); - contractOtherFieldDO.setFieldName("收货地编号"); - contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteCode()); - contractOtherFieldDO.setFieldDescription("收货地编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收货地名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteName"); - contractOtherFieldDO.setFieldName("收货地名称"); - contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteName()); - contractOtherFieldDO.setFieldDescription("收货地名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 运输方式 (10-汽运;20-船运;30-水汽联运) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); - contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); - contractOtherFieldDO.setFieldValue(goodsSite.getContractTypeDispatch()); - contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "goodsSiteList", + "收发港/站点", "收发港/站点"); + fields = goodsSite.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), goodsSite); } } + // 货物装卸要求 if (reqVO.getLoadingRequirementsList() != null && !reqVO.getLoadingRequirementsList().isEmpty()) { for (LoadingRequirement loadingRequirement : reqVO.getLoadingRequirementsList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("loadingRequirementsList"); - contractOtherFormDO.setFormName("货物装卸要求"); - contractOtherFormDO.setFormDescription("货物装卸要求"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 货物装卸行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("loadingReqSourceId"); - contractOtherFieldDO.setFieldName("货物装卸行号"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceId()); - contractOtherFieldDO.setFieldDescription("货物装卸行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 货物装卸编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("loadingReqSourceCode"); - contractOtherFieldDO.setFieldName("货物装卸编号"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceCode()); - contractOtherFieldDO.setFieldDescription("货物装卸编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 提货地责任方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("deliveredAtPlace"); - contractOtherFieldDO.setFieldName("提货地责任方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtPlace()); - contractOtherFieldDO.setFieldDescription("提货地责任方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 提货地费用承担方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("deliveredAtFeeparty"); - contractOtherFieldDO.setFieldName("提货地费用承担方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtFeeparty()); - contractOtherFieldDO.setFieldDescription("提货地费用承担方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 终到地责任方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("destinationResponsibleParty"); - contractOtherFieldDO.setFieldName("终到地责任方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleParty()); - contractOtherFieldDO.setFieldDescription("终到地责任方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 终到地费用承担方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("intermediateStationParty"); - contractOtherFieldDO.setFieldName("终到地费用承担方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateStationParty()); - contractOtherFieldDO.setFieldDescription("终到地费用承担方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 中间站责任方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("destinationResponsibleFeeparty"); - contractOtherFieldDO.setFieldName("中间站责任方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleFeeparty()); - contractOtherFieldDO.setFieldDescription("中间站责任方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 中间站费用承担方 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("intermediateResponsibleFeeparty"); - contractOtherFieldDO.setFieldName("中间站费用承担方"); - contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateResponsibleFeeparty()); - contractOtherFieldDO.setFieldDescription("中间站费用承担方"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "loadingRequirementsList", + "货物装卸要求", "货物装卸要求"); + fields = loadingRequirement.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), loadingRequirement); } } + // 收付款账号 if (reqVO.getAccountList() != null && !reqVO.getAccountList().isEmpty()) { for (Account account : reqVO.getAccountList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("accountList"); - contractOtherFormDO.setFormName("收付款账号"); - contractOtherFormDO.setFormDescription("收付款账号"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 收付款账号行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("accountSourceId"); - contractOtherFieldDO.setFieldName("收付款账号行号"); - contractOtherFieldDO.setFieldValue(account.getAccountSourceId()); - contractOtherFieldDO.setFieldDescription("收付款账号行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收付款账号编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("accountSourceCode"); - contractOtherFieldDO.setFieldName("收付款账号编号"); - contractOtherFieldDO.setFieldValue(account.getAccountSourceCode()); - contractOtherFieldDO.setFieldDescription("收付款账号编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 类别 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("accountType"); - contractOtherFieldDO.setFieldName("类别"); - contractOtherFieldDO.setFieldValue(account.getAccountType()); - contractOtherFieldDO.setFieldDescription("类别"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("accountName"); - contractOtherFieldDO.setFieldName("名称"); - contractOtherFieldDO.setFieldValue(account.getAccountName()); - contractOtherFieldDO.setFieldDescription("名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 开户银行 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("bankAccountName"); - contractOtherFieldDO.setFieldName("开户银行"); - contractOtherFieldDO.setFieldValue(account.getBankAccountName()); - contractOtherFieldDO.setFieldDescription("开户银行"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 银行账号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("bankAccountNo"); - contractOtherFieldDO.setFieldName("银行账号"); - contractOtherFieldDO.setFieldValue(account.getBankAccountNo()); - contractOtherFieldDO.setFieldDescription("银行账号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 纳税人识别号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("identificationNumber"); - contractOtherFieldDO.setFieldName("纳税人识别号"); - contractOtherFieldDO.setFieldValue(account.getIdentificationNumber()); - contractOtherFieldDO.setFieldDescription("纳税人识别号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 地址、电话 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("addressPhoneTel"); - contractOtherFieldDO.setFieldName("地址、电话"); - contractOtherFieldDO.setFieldValue(account.getAddressPhoneTel()); - contractOtherFieldDO.setFieldDescription("地址、电话"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "accountList", + "收付款账号", "收付款账号"); + fields = account.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), account); } } + // 费用明细 if (reqVO.getFreightList() != null && !reqVO.getFreightList().isEmpty()) { for (Freight freight : reqVO.getFreightList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("freightList"); - contractOtherFormDO.setFormName("费用明细"); - contractOtherFormDO.setFormDescription("费用明细"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 费用明细行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("freightSourceId"); - contractOtherFieldDO.setFieldName("费用明细行号"); - contractOtherFieldDO.setFieldValue(freight.getFreightSourceId()); - contractOtherFieldDO.setFieldDescription("费用明细行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用明细编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("freightSourceCode"); - contractOtherFieldDO.setFieldName("费用明细编号"); - contractOtherFieldDO.setFieldValue(freight.getFreightSourceCode()); - contractOtherFieldDO.setFieldDescription("费用明细编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 发货地编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteCode"); - contractOtherFieldDO.setFieldName("发货地编号"); - contractOtherFieldDO.setFieldValue(freight.getBeginSiteCode()); - contractOtherFieldDO.setFieldDescription("发货地编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 发货地名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteName"); - contractOtherFieldDO.setFieldName("发货地名称"); - contractOtherFieldDO.setFieldValue(freight.getBeginSiteName()); - contractOtherFieldDO.setFieldDescription("发货地名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("beginSiteAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(freight.getBeginSiteAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收货地编码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteCode"); - contractOtherFieldDO.setFieldName("收货地编码"); - contractOtherFieldDO.setFieldValue(freight.getEndSiteCode()); - contractOtherFieldDO.setFieldDescription("收货地编码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收货地名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteName"); - contractOtherFieldDO.setFieldName("收货地名称"); - contractOtherFieldDO.setFieldValue(freight.getEndSiteName()); - contractOtherFieldDO.setFieldDescription("收货地名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("endSiteAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(freight.getEndSiteAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 运输方式 (10-汽运;20-船运;30-水汽联运) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); - contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); - contractOtherFieldDO.setFieldValue(freight.getContractTypeDispatch()); - contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用类型 (包干费、汽运费、港口费...) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("feeTypeCode"); - contractOtherFieldDO.setFieldName("费用类型 (包干费、汽运费、港口费...)"); - contractOtherFieldDO.setFieldValue(freight.getFeeTypeCode()); - contractOtherFieldDO.setFieldDescription("费用类型 (包干费、汽运费、港口费...)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("feeTypeName"); - contractOtherFieldDO.setFieldName("费用名称"); - contractOtherFieldDO.setFieldValue(freight.getFeeTypeName()); - contractOtherFieldDO.setFieldDescription("费用名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 是否乙方提货 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("isPartybPickup"); - contractOtherFieldDO.setFieldName("是否乙方提货"); - contractOtherFieldDO.setFieldValue(freight.getIsPartybPickup()); - contractOtherFieldDO.setFieldDescription("是否乙方提货"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 乙方提货单价 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("partybPickupPrice"); - contractOtherFieldDO.setFieldName("乙方提货单价"); - contractOtherFieldDO.setFieldValue(freight.getPartybPickupPrice().toString()); - contractOtherFieldDO.setFieldDescription("乙方提货单价"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用大类 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("feeCategoryL"); - contractOtherFieldDO.setFieldName("费用大类"); - contractOtherFieldDO.setFieldValue(freight.getFeeCategoryL()); - contractOtherFieldDO.setFieldDescription("费用大类"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用小类 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("feeCategoryS"); - contractOtherFieldDO.setFieldName("费用小类"); - contractOtherFieldDO.setFieldValue(freight.getFeeCategoryS()); - contractOtherFieldDO.setFieldDescription("费用小类"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的仓 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("goodsStorage"); - contractOtherFieldDO.setFieldName("标的仓"); - contractOtherFieldDO.setFieldValue(freight.getGoodsStorage()); - contractOtherFieldDO.setFieldDescription("标的仓"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("categoryName"); - contractOtherFieldDO.setFieldName("标的物"); - contractOtherFieldDO.setFieldValue(freight.getCategoryName()); - contractOtherFieldDO.setFieldDescription("标的物"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 免堆期 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("noHeapDays"); - contractOtherFieldDO.setFieldName("免堆期"); - contractOtherFieldDO.setFieldValue(freight.getNoHeapDays().toString()); - contractOtherFieldDO.setFieldDescription("免堆期"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("quantityUnitCode"); - contractOtherFieldDO.setFieldName("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); - contractOtherFieldDO.setFieldValue(freight.getQuantityUnitCode()); - contractOtherFieldDO.setFieldDescription("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 单价 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("priceWithtax"); - contractOtherFieldDO.setFieldName("单价"); - contractOtherFieldDO.setFieldValue(freight.getPriceWithtax().toString()); - contractOtherFieldDO.setFieldDescription("单价"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 税率(%) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("priceTaxRate"); - contractOtherFieldDO.setFieldName("税率(%)"); - contractOtherFieldDO.setFieldValue(freight.getPriceTaxRate().toString()); - contractOtherFieldDO.setFieldDescription("税率(%)"); - contractOtherFieldDO.setType("BigDecimal"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 费用承担 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("costBearing"); - contractOtherFieldDO.setFieldName("费用承担"); - contractOtherFieldDO.setFieldValue(freight.getCostBearing()); - contractOtherFieldDO.setFieldDescription("费用承担"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "freightList", + "费用明细", "费用明细"); + fields = freight.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), freight); } } + // 服务费用项目 if (reqVO.getServiceFeeList() != null && !reqVO.getServiceFeeList().isEmpty()) { for (ServiceFee serviceFee : reqVO.getServiceFeeList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("serviceFeeList"); - contractOtherFormDO.setFormName("服务费用项目"); - contractOtherFormDO.setFormDescription("服务费用项目"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 服务费用项目行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("serviceFeeSourceId"); - contractOtherFieldDO.setFieldName("服务费用项目行号"); - contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceId()); - contractOtherFieldDO.setFieldDescription("服务费用项目行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 服务费用项目编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("serviceFeeSourceCode"); - contractOtherFieldDO.setFieldName("服务费用项目编号"); - contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceCode()); - contractOtherFieldDO.setFieldDescription("服务费用项目编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 服务项目名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("serviceFeeName"); - contractOtherFieldDO.setFieldName("服务项目名称"); - contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeName()); - contractOtherFieldDO.setFieldDescription("服务项目名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 计费类别 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("expenseType"); - contractOtherFieldDO.setFieldName("计费类别"); - contractOtherFieldDO.setFieldValue(serviceFee.getExpenseType()); - contractOtherFieldDO.setFieldDescription("计费类别"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "serviceFeeList", + "服务费用项目", "服务费用项目"); + fields = serviceFee.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), serviceFee); } } + // 仓库明细 if (reqVO.getStorgeList() != null && !reqVO.getStorgeList().isEmpty()) { for (Storge storge : reqVO.getStorgeList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("storgeList"); - contractOtherFormDO.setFormName("仓库明细"); - contractOtherFormDO.setFormDescription("仓库明细"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 合同明细行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("storgeSourceId"); - contractOtherFieldDO.setFieldName("合同明细行号"); - contractOtherFieldDO.setFieldValue(storge.getStorgeSourceId()); - contractOtherFieldDO.setFieldDescription("合同明细行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 合同明细行编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("storgeSourceCode"); - contractOtherFieldDO.setFieldName("合同明细行编号"); - contractOtherFieldDO.setFieldValue(storge.getStorgeSourceCode()); - contractOtherFieldDO.setFieldDescription("合同明细行编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 仓库编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("warehouseCode"); - contractOtherFieldDO.setFieldName("仓库编号"); - contractOtherFieldDO.setFieldValue(storge.getWarehouseCode()); - contractOtherFieldDO.setFieldDescription("仓库编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 仓库名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("warehouseName"); - contractOtherFieldDO.setFieldName("仓库名称"); - contractOtherFieldDO.setFieldValue(storge.getWarehouseName()); - contractOtherFieldDO.setFieldDescription("仓库名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("warehouseAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(storge.getWarehouseAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "storgeList", + "仓库明细", "仓库明细"); + fields = storge.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), storge); } } + // 接货地址 if (reqVO.getReceivingAddrList() != null && !reqVO.getReceivingAddrList().isEmpty()) { for (ReceivingAddr receivingAddr : reqVO.getReceivingAddrList()) { - - contractOtherFormDO = new ContractOtherFormDO(); - contractOtherFormDO.setContractMainId(contractId); - contractOtherFormDO.setFormNumber("receivingAddrList"); - contractOtherFormDO.setFormName("接货地址"); - contractOtherFormDO.setFormDescription("接货地址"); - contractOtherFormMapper.insert(contractOtherFormDO); - - contractOtherFieldDOS = new ArrayList<>(); - - // 接货地址行号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("recivingAddrSourceId"); - contractOtherFieldDO.setFieldName("接货地址行号"); - contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceId()); - contractOtherFieldDO.setFieldDescription("接货地址行号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 接货地址编号 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("recivingAddrSourceCode"); - contractOtherFieldDO.setFieldName("接货地址编号"); - contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceCode()); - contractOtherFieldDO.setFieldDescription("接货地址编号"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物分类 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("categoryLevel"); - contractOtherFieldDO.setFieldName("标的物分类"); - contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryLevel()); - contractOtherFieldDO.setFieldDescription("标的物分类"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物编码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("ccCategoryCode"); - contractOtherFieldDO.setFieldName("标的物编码"); - contractOtherFieldDO.setFieldValue(receivingAddr.getCcCategoryCode()); - contractOtherFieldDO.setFieldDescription("标的物编码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 标的物名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("categoryName"); - contractOtherFieldDO.setFieldName("标的物名称"); - contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryName()); - contractOtherFieldDO.setFieldDescription("标的物名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 接货编码 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("siteCode"); - contractOtherFieldDO.setFieldName("接货编码"); - contractOtherFieldDO.setFieldValue(receivingAddr.getSiteCode()); - contractOtherFieldDO.setFieldDescription("接货编码"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 接货名称 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("siteName"); - contractOtherFieldDO.setFieldName("接货名称"); - contractOtherFieldDO.setFieldValue(receivingAddr.getSiteName()); - contractOtherFieldDO.setFieldDescription("接货名称"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库) - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("siteType"); - contractOtherFieldDO.setFieldName("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); - contractOtherFieldDO.setFieldValue(receivingAddr.getSiteType()); - contractOtherFieldDO.setFieldDescription("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 详细地址 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("siteAddress"); - contractOtherFieldDO.setFieldName("详细地址"); - contractOtherFieldDO.setFieldValue(receivingAddr.getSiteAddress()); - contractOtherFieldDO.setFieldDescription("详细地址"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 专用线 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("consigneePrivatewire"); - contractOtherFieldDO.setFieldName("专用线"); - contractOtherFieldDO.setFieldValue(receivingAddr.getConsigneePrivatewire()); - contractOtherFieldDO.setFieldDescription("专用线"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 收货人 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("consignerContact"); - contractOtherFieldDO.setFieldName("收货人"); - contractOtherFieldDO.setFieldValue(receivingAddr.getConsignerContact()); - contractOtherFieldDO.setFieldDescription("收货人"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 联系人 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contactPerson"); - contractOtherFieldDO.setFieldName("联系人"); - contractOtherFieldDO.setFieldValue(receivingAddr.getContactPerson()); - contractOtherFieldDO.setFieldDescription("联系人"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - // 联系电话 - contractOtherFieldDO = new ContractOtherFieldDO(); - contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); - contractOtherFieldDO.setFieldNumber("contactPhone"); - contractOtherFieldDO.setFieldName("联系电话"); - contractOtherFieldDO.setFieldValue(receivingAddr.getContactPhone()); - contractOtherFieldDO.setFieldDescription("联系电话"); - contractOtherFieldDO.setType("String"); - contractOtherFieldDO.setContractMainId(contractId.toString()); - contractOtherFieldDOS.add(contractOtherFieldDO); - - // 保存 - contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + otherFormDO = saveContractOtherForm(contractId, "receivingAddrList", + "接货地址", "接货地址"); + fields = receivingAddr.getClass().getDeclaredFields(); + saveFields(fields, contractId, otherFormDO.getId(), receivingAddr); } } @@ -1756,7 +335,135 @@ public class ContractApiImpl implements ContractApi { } return CommonResult.success(purchaseOrderDetails); } + private ContractMainDO getcontractMainDO(ContractRequest reqVO) { + // 合同主信息表映射 + ContractMainDO contractMainDO = new ContractMainDO(); + // 合同编号 + contractMainDO.setContractPaperNumber(reqVO.getContractCode()); + // 合同名称 + contractMainDO.setContractName(reqVO.getContractName()); + // 施工类型编号 默认值:SAP02NCOZC + contractMainDO.setConstructionTypeNumber("SAP02NCOZC"); + // 施工类型名称 默认值:铜非施工合同支出类 + contractMainDO.setConstructionTypeName("SAP铜非施工合同支出类"); + // 类别 默认值:购销合同(1) + contractMainDO.setCategory("1"); + // 是否虚拟合同 默认值:否(0) + contractMainDO.setContractVirtual("0"); + // 代理方 默认值:NULL + // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + contractMainDO.setSignDate(LocalDateTime.parse(reqVO.getSignDate()+"000000", formatter)); + // 开始日期 -> 合同有效期起 (格式: yyyyMMdd) + contractMainDO.setStartDate(LocalDateTime.parse(reqVO.getContractStartDate()+"000000", formatter)); + // 结束日期 -> 合同有效期止 (格式: yyyyMMdd) + contractMainDO.setEndDate(LocalDateTime.parse(reqVO.getContractEndDate()+"000000", formatter)); + // 币种 -> 合同币种 + contractMainDO.setCurrency(reqVO.getCurrencyCode()); + // 原币金额 -> 预估含税总金额 + contractMainDO.setCooAmount(reqVO.getEstimateAmountTotal()); + // 原币金额-变更后 + contractMainDO.setChangeCooAmount(reqVO.getEstimateAmountTotal()); + // 本币金额 -> 预估含税总金额 + contractMainDO.setBasicAmount(reqVO.getEstimateAmountTotal()); + // 本币金额-变更后 + contractMainDO.setChangeBasicAmount(reqVO.getEstimateAmountTotal()); + // 状态 默认值:正在执行(EF) 执行中 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); + // 是否有预付款 默认值:否 + contractMainDO.setHasPrepayment("0"); + // 预付款比例 默认值:NULL + // 预付款金额 默认值:NULL + // 是否有质保金 默认值:否 + contractMainDO.setHasQualityAmount("0"); + // 质保金比例 默认值:NULL + // 质保金金额 默认值:NULL + // 是否内部企业 + contractMainDO.setIsInternal(reqVO.getIsInternal()); + // 收支性质 默认值:支出 + contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode()); + // 是否框架合同 + contractMainDO.setIsFramework(reqVO.getIsFramework()); + // 境内/境外 -> 客商信息:境内/外 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getDomesticOrOverseas()); + } + // 建筑服务发生地 默认值:NULL + // 达到收款条件金额 默认值:NULL + // 是否有履约保证金 默认值:否 + contractMainDO.setHasDeposit("0"); + // 原币履约保证金 默认值:NULL + // 本币履约保证金 默认值:NULL + // 交易方式 默认值:先款后货 + contractMainDO.setHasPayable("PRE_PAY"); + // 合同类型 默认值:物流合同 + contractMainDO.setContractType("3"); + // 签署地 -> 签约地 (40-签约必填) + contractMainDO.setSignPlace(reqVO.getSignSite()); + // 甲方公司编号(采购方) -> 账套代码 + contractMainDO.setPurchaseCompanyNumber(reqVO.getBookId()); + // ERP甲方公司编号 + contractMainDO.setErpPurchaseCompanyNumber(reqVO.getBookId()); + // 甲方公司名称 -> 账套名称 null + // ERP甲方公司名称 + contractMainDO.setErpPurchaseCompanyName(""); + // 甲方地址 默认值:NULL + // 甲方法定代表人 默认值:NULL + // 乙方公司编号(销售方) -> 客商信息:供应商代码 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); + // ERP乙方公司编码 + contractMainDO.setErpSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); + } + // 乙方公司名称 -> 客商信息:供应商名称 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); + // ERP乙方公司名称 + contractMainDO.setErpSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); + } + // 乙方地址 默认值:NULL + // 乙方企业负责人 默认值:NULL + + return contractMainDO; + } + + private ContractOtherFormDO saveContractOtherForm(Long contractId, String formNumber, String formName, String formDescription) { + ContractOtherFormDO otherFormDO = new ContractOtherFormDO(); + otherFormDO.setContractMainId(contractId); + otherFormDO.setFormNumber(formNumber); + otherFormDO.setFormName(formName); + otherFormDO.setFormDescription(formDescription); + contractOtherFormMapper.insert(otherFormDO); + return otherFormDO; + } + + private ContractOtherFieldDO getContractOtherField(Long contractId, Long relativityId, String number, String name, + String value, String description, String type) { + ContractOtherFieldDO otherFieldDO = new ContractOtherFieldDO(); + otherFieldDO.setContractMainId(contractId.toString()); + otherFieldDO.setRelativityId(relativityId); + otherFieldDO.setFieldNumber(number); + otherFieldDO.setFieldName(name); + otherFieldDO.setFieldValue(value); + otherFieldDO.setFieldDescription(description); + otherFieldDO.setType(type); + return otherFieldDO; + } + + private void saveFields(Field[] fields, Long contractId, Long relativityId, T obj) throws Exception { + List otherFieldDOS = new ArrayList<>(); + for (Field field : fields) { + field.setAccessible(true); + if (!"java.util.List".equals(field.getType().getName()) && field.get(obj) != null) { + Schema annotation = field.getAnnotation(Schema.class); + otherFieldDOS.add(getContractOtherField(contractId, relativityId, field.getName(), + annotation.description(), field.get(obj).toString(),annotation.description(), + field.getType().getName())); + } + } + contractOtherFieldMapper.insertBatch(otherFieldDOS); + } private List getSalesOrdDetailsByIds(List ids) { if (ids.isEmpty()) { @@ -1796,5 +503,4 @@ public class ContractApiImpl implements ContractApi { }); return purchaseOrderWithDetailsDTOS; } - } From 1585b5611a92163102edbe694ca8e2a2cde39131 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Tue, 28 Oct 2025 16:53:05 +0800 Subject: [PATCH 3/3] =?UTF-8?q?erp=E7=89=A9=E6=96=99=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/base/CompanyRelativityMapper.xml | 10 ++++++-- .../module/erp/api/ErpExternalApiImpl.java | 3 +++ .../admin/erp/vo/ErpMaterialPageReqVO.java | 16 ++++++++++++ .../admin/erp/vo/ErpMaterialRespVO.java | 20 +++++++++++++++ .../admin/erp/vo/ErpMaterialSaveReqVO.java | 15 +++++++++++ .../erp/dal/dataobject/erp/ErpMaterialDO.java | 25 +++++++++++++++++++ 6 files changed, 87 insertions(+), 2 deletions(-) diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml index 7a1a3b84..86abdfb1 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml @@ -30,11 +30,17 @@ left join SPLY_ERP_CPN c on r.ERP_NUM = c.NUM where d.DELETED = 0 and d.IS_COMPANY = 1 + + and c.NUM = #{erpNumber} + + + and d.CODE = #{number} + - and d.NAME = #{name} + and d.NAME like concat('%', #{name}, '%') - and c.NAME = #{erpName} + and c.NAME like concat('%', #{erpName}, '%') and d.LEADER_USER_ID = #{manager} diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java index 45323692..1ea6c564 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java @@ -8,6 +8,8 @@ import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; import com.zt.plat.module.erp.service.erp.ErpProductiveVersionService; import com.zt.plat.module.erp.utils.ErpConfig; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -25,6 +27,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; */ @RestController @Validated +@Component public class ErpExternalApiImpl implements ErpExternalApi { @Resource diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialPageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialPageReqVO.java index 43dc25bb..723de5df 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialPageReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialPageReqVO.java @@ -58,4 +58,20 @@ public class ErpMaterialPageReqVO extends PageParam { @Schema(description = "类型") private String type; + @Schema(description = "金属元素缩写") + private String abbreviation; + + @Schema(description = "金属元素名称", example = "赵六") + private String name; + + @Schema(description = "金属元素编码") + private String coding; + + @Schema(description = "品位单位") + private String gradeUnit; + + @Schema(description = "小数位数") + private Long decimalValue; + + } \ 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/ErpMaterialRespVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialRespVO.java index 49a63615..85dbce14 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialRespVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialRespVO.java @@ -77,6 +77,26 @@ public class ErpMaterialRespVO { @ExcelProperty("类型") private String type; + @Schema(description = "金属元素缩写") + @ExcelProperty("金属元素缩写") + private String abbreviation; + + @Schema(description = "金属元素名称", example = "赵六") + @ExcelProperty("金属元素名称") + private String name; + + @Schema(description = "金属元素编码") + @ExcelProperty("金属元素编码") + private String coding; + + @Schema(description = "品位单位") + @ExcelProperty("品位单位") + private String gradeUnit; + + @Schema(description = "小数位数") + @ExcelProperty("小数位数") + private Long decimalValue; + private List materialOtherDTOS; } \ 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/ErpMaterialSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialSaveReqVO.java index 5d187885..52677016 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialSaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialSaveReqVO.java @@ -69,4 +69,19 @@ public class ErpMaterialSaveReqVO { @Schema(description = "类型") private String type; + @Schema(description = "金属元素缩写") + private String abbreviation; + + @Schema(description = "金属元素名称", example = "赵六") + private String name; + + @Schema(description = "金属元素编码") + private String coding; + + @Schema(description = "品位单位") + private String gradeUnit; + + @Schema(description = "小数位数") + private Long decimalValue; + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialDO.java index 00d0b391..84926cef 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialDO.java @@ -100,5 +100,30 @@ public class ErpMaterialDO extends BusinessBaseDO { @TableField("TP") private String type; + /** + * 金属元素缩写 + */ + @TableField("ABBR") + private String abbreviation; + /** + * 金属元素名称 + */ + @TableField("NAME") + private String name; + /** + * 金属元素编码 + */ + @TableField("CDG") + private String coding; + /** + * 品位单位 + */ + @TableField("GRD_UNT") + private String gradeUnit; + /** + * 小数位数 + */ + @TableField("DEC") + private Long decimalValue; } \ No newline at end of file