Merge branch 'refs/heads/dev' into test

This commit is contained in:
liss
2025-11-25 15:58:17 +08:00
12 changed files with 315 additions and 112 deletions

View File

@@ -2,10 +2,13 @@ package com.zt.plat.module.contractorder.api;
import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.contractorder.api.dto.order.OrderDTO; import com.zt.plat.module.contractorder.api.dto.order.OrderDTO;
import com.zt.plat.module.contractorder.api.dto.order.UpdateOrderLstQtyDTO;
import com.zt.plat.module.contractorder.enums.ApiConstants; import com.zt.plat.module.contractorder.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -22,4 +25,8 @@ public interface OrderApi {
@PostMapping(PREFIX + "/order-by-order-nos") @PostMapping(PREFIX + "/order-by-order-nos")
@Operation(summary = "通过订单号批量获取订单信息", description = "通过订单编号获取订单信息") @Operation(summary = "通过订单号批量获取订单信息", description = "通过订单编号获取订单信息")
CommonResult<List<OrderDTO>> getOrderByOrderNos(@RequestBody List<String> orderNoS); CommonResult<List<OrderDTO>> getOrderByOrderNos(@RequestBody List<String> orderNoS);
@PostMapping(PREFIX + "/update-lst-qty-by-order-id")
@Operation(summary = "根据订单明细id更新累积量", description = "根据订单明细id更新收货量")
CommonResult<Boolean> UpdateOrderLstQty(@RequestBody @Validated List<UpdateOrderLstQtyDTO> updateOrderLstQtyDTOS);
} }

View File

@@ -1,259 +1,310 @@
package com.zt.plat.module.contractorder.api.dto.order; package com.zt.plat.module.contractorder.api.dto.order;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
@Schema(description = "订单明细")
public class OrdDtlDTO { public class OrdDtlDTO {
// ========================== 公共属性(两个类均存在,统一保留)========================== // ========================== 公共属性(两个类均存在,统一保留)==========================
/** /**
* 主键 * 主键
*/ */
@Schema(description = "主键")
private Long id; private Long id;
/** /**
* 订单主键PrchOrdDtlDTO.ordId / SalesOrdDtlDTO.orderId 统一命名) Y * 订单主键PrchOrdDtlDTO.ordId / SalesOrdDtlDTO.orderId 统一命名) Y
*/ */
@Schema(description = "订单主键")
private Long orderId; private Long orderId;
/** /**
* 行项目;推送ERP必须PrchOrdDtlDTO.lineNum / SalesOrdDtlDTO.lineNumber 统一命名Y * 行项目;推送ERP必须PrchOrdDtlDTO.lineNum / SalesOrdDtlDTO.lineNumber 统一命名Y
*/ */
@Schema(description = "行项目")
private Long lineNum; private Long lineNum;
/** /**
* 物料名称PrchOrdDtlDTO.mtrlName / SalesOrdDtlDTO.materialName 统一命名Y * 物料名称PrchOrdDtlDTO.mtrlName / SalesOrdDtlDTO.materialName 统一命名Y
*/ */
@Schema(description = "物料名称")
private String mtrlName; private String mtrlName;
/** /**
* 物料编码;推送ERP必须PrchOrdDtlDTO.mtrlNum / SalesOrdDtlDTO.materialNumber 统一命名Y * 物料编码;推送ERP必须PrchOrdDtlDTO.mtrlNum / SalesOrdDtlDTO.materialNumber 统一命名Y
*/ */
@Schema(description = "物料编码")
private String mtrlNum; private String mtrlNum;
/** /**
* 工厂名称PrchOrdDtlDTO.rcvFactName / SalesOrdDtlDTO.factoryName 统一命名) Y * 工厂名称PrchOrdDtlDTO.rcvFactName / SalesOrdDtlDTO.factoryName 统一命名) Y
*/ */
@Schema(description = "工厂名称")
private String factoryName; private String factoryName;
/** /**
* 工厂编码;推送ERP必须PrchOrdDtlDTO.rcvFactNum / SalesOrdDtlDTO.factoryNumber 统一命名Y * 工厂编码;推送ERP必须PrchOrdDtlDTO.rcvFactNum / SalesOrdDtlDTO.factoryNumber 统一命名Y
*/ */
@Schema(description = "工厂编码")
private String factoryNum; private String factoryNum;
/** /**
* 库位名称PrchOrdDtlDTO.rcvWrhName / SalesOrdDtlDTO.warehouseName 统一命名Y * 库位名称PrchOrdDtlDTO.rcvWrhName / SalesOrdDtlDTO.warehouseName 统一命名Y
*/ */
@Schema(description = "库位名称")
private String warehouseName; private String warehouseName;
/** /**
* 库位编码;推送ERPPrchOrdDtlDTO.rcvWrhNum / SalesOrdDtlDTO.warehouseNumber 统一命名Y * 库位编码;推送ERPPrchOrdDtlDTO.rcvWrhNum / SalesOrdDtlDTO.warehouseNumber 统一命名Y
*/ */
@Schema(description = "库位编码")
private String warehouseNum; private String warehouseNum;
/** /**
* 计量单位;推送ERP必须PrchOrdDtlDTO.unt / SalesOrdDtlDTO.unit 统一命名Y * 计量单位;推送ERP必须PrchOrdDtlDTO.unt / SalesOrdDtlDTO.unit 统一命名Y
*/ */
@Schema(description = "计量单位")
private String unit; private String unit;
/** /**
* 暂估数量;推送ERP必须PrchOrdDtlDTO.qty / SalesOrdDtlDTO.quantity 统一命名类型统一为BigDecimalY * 暂估数量;推送ERP必须PrchOrdDtlDTO.qty / SalesOrdDtlDTO.quantity 统一命名类型统一为BigDecimalY
*/ */
@Schema(description = "暂估数量")
private BigDecimal quantity; private BigDecimal quantity;
/** /**
* 项目类别;推送ERPPrchOrdDtlDTO.prjCtgr / SalesOrdDtlDTO.projectCategory 统一命名) * 项目类别;推送ERPPrchOrdDtlDTO.prjCtgr / SalesOrdDtlDTO.projectCategory 统一命名)
*/ */
@Schema(description = "项目类别")
private String projectCategory; private String projectCategory;
/** /**
* 小协议号PrchOrdDtlDTO.agrNum / SalesOrdDtlDTO.agreementNumber 统一命名Y * 小协议号PrchOrdDtlDTO.agrNum / SalesOrdDtlDTO.agreementNumber 统一命名Y
*/ */
@Schema(description = "小协议号")
private String agreementNumber; private String agreementNumber;
/** /**
* 金属元素缩写PrchOrdDtlDTO.elemAbbr / SalesOrdDtlDTO.elementAbbreviation 统一命名Y * 金属元素缩写PrchOrdDtlDTO.elemAbbr / SalesOrdDtlDTO.elementAbbreviation 统一命名Y
*/ */
@Schema(description = "金属元素缩写")
private String elementAbbreviation; private String elementAbbreviation;
/** /**
* 金属元素名称PrchOrdDtlDTO.elemName / SalesOrdDtlDTO.elementName 统一命名Y * 金属元素名称PrchOrdDtlDTO.elemName / SalesOrdDtlDTO.elementName 统一命名Y
*/ */
@Schema(description = "金属元素名称")
private String elementName; private String elementName;
/** /**
* 金属元素编码PrchOrdDtlDTO.elemCdg / SalesOrdDtlDTO.elementNumber 统一命名Y * 金属元素编码PrchOrdDtlDTO.elemCdg / SalesOrdDtlDTO.elementNumber 统一命名Y
*/ */
@Schema(description = "金属元素编码")
private String elementCode; private String elementCode;
/** /**
* 是否启用(字典:ERP_CTRT_YN;处理明细中多个相同物料只能允许一种物料启用PrchOrdDtlDTO.isEnb / SalesOrdDtlDTO.isEnable 统一命名Y * 是否启用(字典:ERP_CTRT_YN;处理明细中多个相同物料只能允许一种物料启用PrchOrdDtlDTO.isEnb / SalesOrdDtlDTO.isEnable 统一命名Y
*/ */
@Schema(description = "是否启用")
private String isEnable; private String isEnable;
/** /**
* 税码(字典: PRCH_TAX);推送ERP Y * 税码(字典: PRCH_TAX);推送ERP Y
*/ */
@Schema(description = "税码")
private String taxNum; private String taxNum;
/** /**
* 税率 Y * 税率 Y
*/ */
@Schema(description = "税率")
private BigDecimal taxRte; private BigDecimal taxRte;
// ========================== 采购订单特有属性PrchOrdDtlDTO 独有)========================== // ========================== 采购订单特有属性PrchOrdDtlDTO 独有)==========================
/** /**
* 含税单价;推送ERP必须 * 含税单价;推送ERP必须
*/ */
@Schema(description = "含税单价")
private BigDecimal inTaxUprc; private BigDecimal inTaxUprc;
/** /**
* 价格单位;推送ERP * 价格单位;推送ERP
*/ */
@Schema(description = "价格单位")
private BigDecimal prcUnt; private BigDecimal prcUnt;
/** /**
* 是否基于GR的发票校验;推送ERP * 是否基于GR的发票校验;推送ERP
*/ */
@Schema(description = "是否基于GR的发票校验")
private String isGrInv; private String isGrInv;
/** /**
* 是否允许无限制收货;推送ERP * 是否允许无限制收货;推送ERP
*/ */
@Schema(description = "是否允许无限制收货")
private String isUnlRcv; private String isUnlRcv;
/** /**
* 批次;推送ERP * 批次;推送ERP
*/ */
@Schema(description = "批次")
private String bat; private String bat;
/** /**
* 科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型固定资产订单A服务订单S-销售服务费K-成本中心F-订单 * 科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型固定资产订单A服务订单S-销售服务费K-成本中心F-订单
*/ */
@Schema(description = "科目分配类别")
private String actsCtgr; private String actsCtgr;
/** /**
* 物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型,服务订单必传 Y * 物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型,服务订单必传 Y
*/ */
@Schema(description = "物料组编码")
private String mtrlCpntNum; private String mtrlCpntNum;
/** /**
* 物料组描述;推送ERP:联动订单类型,服务订单必传 Y * 物料组描述;推送ERP:联动订单类型,服务订单必传 Y
*/ */
@Schema(description = "物料组描述")
private String mtrlCpntDsp; private String mtrlCpntDsp;
/** /**
* 短文本 Y * 短文本 Y
*/ */
@Schema(description = "短文本")
private String shrtTxt; private String shrtTxt;
/** /**
* 退货标识X标识退货;推送ERP * 退货标识X标识退货;推送ERP
*/ */
@Schema(description = "退货标识")
private String isRlbkCgo; private String isRlbkCgo;
/** /**
* 是否免费收货标识X;推送ERP * 是否免费收货标识X;推送ERP
*/ */
@Schema(description = "是否免费收货标识")
private String isFreeRcv; private String isFreeRcv;
/** /**
* 外部行项目号;推送ERP * 外部行项目号;推送ERP
*/ */
@Schema(description = "外部行项目号")
private Long outLineNum; private Long outLineNum;
/** /**
* 备注信息-需求单位;推送ERP * 备注信息-需求单位;推送ERP
*/ */
@Schema(description = "备注信息-需求单位")
private String rmkUnt; private String rmkUnt;
/** /**
* 备注信息-物料详细;推送ERP * 备注信息-物料详细;推送ERP
*/ */
@Schema(description = "备注信息-物料详细")
private String rmkMtrl; private String rmkMtrl;
/** /**
* 交货起始日期;推送ERP Y * 交货起始日期;推送ERP Y
*/ */
@Schema(description = "交货起始日期")
private LocalDateTime bgnDt; private LocalDateTime bgnDt;
/** /**
* 交货截止日期;推送ERP Y * 交货截止日期;推送ERP Y
*/ */
@Schema(description = "交货截止日期")
private LocalDateTime ddlDt; private LocalDateTime ddlDt;
/** /**
* 已收货量 * 已收货量
*/ */
@Schema(description = "已收货量")
private BigDecimal lstQty; private BigDecimal lstQty;
/** /**
* 已移库量库;存针对该订单产生的移库量 * 已移库量库;存针对该订单产生的移库量
*/ */
@Schema(description = "已移库量")
private BigDecimal trfQty; private BigDecimal trfQty;
/** /**
* 移库工厂名称 Y * 移库工厂名称 Y
*/ */
@Schema(description = "移库工厂名称")
private String trfFactName; private String trfFactName;
/** /**
* 移库工厂编码 Y * 移库工厂编码 Y
*/ */
@Schema(description = "移库工厂编码")
private String trfFactNum; private String trfFactNum;
/** /**
* 移库库位名称 Y * 移库库位名称 Y
*/ */
@Schema(description = "移库库位名称")
private String trfWrhName; private String trfWrhName;
/** /**
* 移库库位编码 Y * 移库库位编码 Y
*/ */
@Schema(description = "移库库位编码")
private String trfWrhNum; private String trfWrhNum;
/** /**
* 备注 Y * 备注 Y
*/ */
@Schema(description = "备注")
private String rmk; private String rmk;
/** /**
* 原料湿重;推送ERP * 原料湿重;推送ERP
*/ */
@Schema(description = "原料湿重")
private BigDecimal origWet; private BigDecimal origWet;
/** /**
* 销售物料号;推送ERP:科目分配类别为S时必填 * 销售物料号;推送ERP:科目分配类别为S时必填
*/ */
@Schema(description = "销售物料号")
private String saleMtrlNum; private String saleMtrlNum;
/** /**
* 统计型内部订单;推送ERP * 统计型内部订单;推送ERP
*/ */
@Schema(description = "统计型内部订单")
private String inOrd; private String inOrd;
/** /**
* 采购类别;推送ERP:0-生产性物资类1-项目投资类 * 采购类别;推送ERP:0-生产性物资类1-项目投资类
*/ */
@Schema(description = "采购类别")
private String prchCtgr; private String prchCtgr;
/** /**
* 科目分配详情;科目分配类别为K或P时使用(JSON) * 科目分配详情;科目分配类别为K或P时使用(JSON)
*/ */
@Schema(description = "科目分配详情")
private String actsCtgrDtl; private String actsCtgrDtl;
/** /**
* 委托加工详情;委托加工订单使用(JSON) * 委托加工详情;委托加工订单使用(JSON)
*/ */
@Schema(description = "委托加工详情")
private String enttDtl; private String enttDtl;
// ========================== 销售订单特有属性SalesOrdDtlDTO 独有)========================== // ========================== 销售订单特有属性SalesOrdDtlDTO 独有)==========================
/** /**
* 开票类型;推送ERP(必须) * 开票类型;推送ERP(必须)
*/ */
@Schema(description = "开票类型")
private String invoiceType; private String invoiceType;
// /** // /**
@@ -264,26 +315,31 @@ public class OrdDtlDTO {
/** /**
* 装运地点;推送ERP * 装运地点;推送ERP
*/ */
@Schema(description = "装运地点")
private String shippingPlace; private String shippingPlace;
/** /**
* 物料科目分配组;推送ERP必须 * 物料科目分配组;推送ERP必须
*/ */
@Schema(description = "物料科目分配组")
private String metalAcctasscatGroup; private String metalAcctasscatGroup;
/** /**
* 总价 * 总价
*/ */
@Schema(description = "总价")
private BigDecimal gross; private BigDecimal gross;
/** /**
* 价格条件详情;推送ERP(必须):JSON * 价格条件详情;推送ERP(必须):JSON
*/ */
@Schema(description = "价格条件详情")
private String priceConditionDetail; private String priceConditionDetail;
/** /**
* 来料加工原料详情;推送ERP:订单类型(JSON) * 来料加工原料详情;推送ERP:订单类型(JSON)
*/ */
@Schema(description = "来料加工原料详情")
private String originDetail; private String originDetail;
} }

View File

@@ -1,8 +1,6 @@
package com.zt.plat.module.contractorder.api.dto.order; package com.zt.plat.module.contractorder.api.dto.order;
import com.baomidou.mybatisplus.annotation.IdType; import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -10,286 +8,290 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
@Schema(description = "管理后台 - 订单 Response VO")
public class OrderDTO { public class OrderDTO {
/** /**
* 主键 * 主键
*/ */
@Schema(description = "主键")
private Long id; private Long id;
/** /**
* ERP订单号 * ERP订单号
*/ */
@Schema(description = "ERP订单号")
private String orderSAPNumber; private String orderSAPNumber;
/** /**
* 订单号 * 订单号
*/ */
@Schema(description = "订单号")
private String systemOrderNumber; private String systemOrderNumber;
/** /**
* 公司名称 * 公司名称
*/ */
@Schema(description = "公司名称")
private String cpName; private String cpName;
/** /**
* 公司编码;推送ERP必须 * 公司编码;推送ERP必须
*/ */
@Schema(description = "公司编码;推送ERP必须")
private String cpNum; private String cpNum;
/** /**
* 客商编码;推送ERP必须 * 客商编码;推送ERP必须
*/ */
@Schema(description = "客商编码;推送ERP必须")
private String supplierNumber; private String supplierNumber;
/** /**
* 客商名称 * 客商名称
*/ */
@Schema(description = "客商名称")
private String supplierName; private String supplierName;
/** /**
* 订单类型(字典:PRCH_ORD_TP);推送ERP必须 * 订单类型(字典:PRCH_ORD_TP);推送ERP必须
*/ */
@Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP必须")
private String type; private String type;
/** /**
* 凭证日期;推送ERP必须 * 凭证日期;推送ERP必须
*/ */
@Schema(description = "凭证日期;推送ERP必须")
private LocalDateTime voucherDate; private LocalDateTime voucherDate;
/** /**
* 采购组织编码;推送ERP必须 * 采购组织编码;推送ERP必须
*/ */
@Schema(description = "采购组织编码;推送ERP必须")
private String purchaseOrganizationCustomsDeclaration; private String purchaseOrganizationCustomsDeclaration;
/** /**
* 收货工厂名称 * 收货工厂名称
*/ */
@Schema(description = "收货工厂名称")
private String receiveFactoryName; private String receiveFactoryName;
/** /**
* 收货工厂编码;推送ERP必须 * 收货工厂编码;推送ERP必须
*/ */
@Schema(description = "收货工厂编码;推送ERP必须")
private String receiveFactoryNumber; private String receiveFactoryNumber;
/** /**
* 收货库位名称 * 收货库位名称
*/ */
@Schema(description = "收货库位名称")
private String receiveWarehouseName; private String receiveWarehouseName;
/** /**
* 收货库位编码;推送ERP * 收货库位编码;推送ERP
*/ */
@Schema(description = "收货库位编码;推送ERP")
private String receiveWarehouseNumber; private String receiveWarehouseNumber;
/** /**
* 采购组编码(字典:PRCH_GRP_TP);推送ERP必须 * 采购组编码(字典:PRCH_GRP_TP);推送ERP必须
*/ */
@Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP必须")
private String purchaseGroup; private String purchaseGroup;
/** /**
* 货币码(字典:CUR);推送ERP必须 * 货币码(字典:CUR);推送ERP必须
*/ */
@Schema(description = "货币码(字典:CUR);推送ERP必须")
private String currencyNumber; private String currencyNumber;
/** /**
* 汇率;推送ERP * 汇率;推送ERP
*/ */
@Schema(description = "汇率;推送ERP")
private BigDecimal exchangeRate; private BigDecimal exchangeRate;
/** /**
* 合同纸质合同号;推送ERP必须 * 合同纸质合同号;推送ERP必须
*/ */
@Schema(description = "合同纸质合同号;推送ERP必须")
private String paperContractNumber; private String paperContractNumber;
/** /**
* 小协议号;推送ERP * 小协议号;推送ERP
*/ */
@Schema(description = "小协议号;推送ERP")
private String agreementNumber; private String agreementNumber;
/** /**
* 备注;推送ERP * 备注;推送ERP
*/ */
@Schema(description = "备注;推送ERP")
private String remark; private String remark;
/** /**
* 代理方编码;推送ERP * 代理方编码;推送ERP
*/ */
@Schema(description = "代理方编码;推送ERP")
private String agentNumber; private String agentNumber;
/** /**
* 代理方名称 * 代理方名称
*/ */
@Schema(description = "代理方名称")
private String agentName; private String agentName;
/** /**
* 系统合同编号 * 系统合同编号
*/ */
@Schema(description = "系统合同编号")
private String contractNumber; private String contractNumber;
/** /**
* 物料编码 * 物料编码
*/ */
@Schema(description = "物料编码")
private String materialNumber; private String materialNumber;
/** /**
* 物料名称 * 物料名称
*/ */
@Schema(description = "物料名称")
private String materialName; private String materialName;
/** /**
* 合同名称 * 合同名称
*/ */
@Schema(description = "合同名称")
private String contractName; private String contractName;
/** /**
* 小户头号 * 小户头号
*/ */
@Schema(description = "小户头号")
private String tenantNumber; private String tenantNumber;
/** /**
* ERP公司编号 * ERP公司编号
*/ */
@Schema(description = "ERP公司编号")
private String erpPurchaseCompanyNumber; private String erpPurchaseCompanyNumber;
/** /**
* ERP公司名称 * ERP公司名称
*/ */
@Schema(description = "ERP公司名称")
private String erpPurchaseCompanyName; private String erpPurchaseCompanyName;
/** /**
* ERP客商公司编码 * ERP客商公司编码
*/ */
@Schema(description = "ERP客商公司编码")
private String erpSalesCompanyNumber; private String erpSalesCompanyNumber;
/** /**
* ERP客商公司名称 * ERP客商公司名称
*/ */
@Schema(description = "ERP客商公司名称")
private String erpSalesCompanyName; private String erpSalesCompanyName;
/** /**
* 采购组织名称 * 采购组织名称
*/ */
@Schema(description = "采购组织名称")
private String purchaseOrganizationName; private String purchaseOrganizationName;
/** /**
* ERP状态(字典: ERP_REQ_STS) * ERP状态(字典: ERP_REQ_STS)
*/ */
@Schema(description = "ERP状态(字典: ERP_REQ_STS)")
private String erpStatus; private String erpStatus;
/** /**
* 请求ERP失败原因 * 请求ERP失败原因
*/ */
@Schema(description = "请求ERP失败原因")
private String cause; private String cause;
/** /**
* 订单状态(字典:PRCH_ORD_STS) * 订单状态(字典:PRCH_ORD_STS)
*/ */
@Schema(description = "订单状态(字典:PRCH_ORD_STS)")
private String status; private String status;
/** /**
* 采购组名称 * 采购组名称
*/ */
@Schema(description = "采购组名称")
private String purchaseGroupName; private String purchaseGroupName;
/** /**
* 流程实例编号 * 流程实例编号
*/ */
@Schema(description = "流程实例编号")
private String processInstanceId; private String processInstanceId;
/** /**
* 流程当前任务节点id * 流程当前任务节点id
*/ */
@Schema(description = "流程当前任务节点id")
private String taskId; private String taskId;
/** /**
* 审批意见 * 审批意见
*/ */
@Schema(description = "审批意见")
private String reviewOpinion; private String reviewOpinion;
/** /**
* 是否需要审批 * 是否需要审批
*/ */
@Schema(description = "是否需要审批")
private int isPush; private int isPush;
/** /**
* 计量单位 * 计量单位
*/ */
@Schema(description = "计量单位")
private String unt; private String unt;
/** /**
* 物料字典 * 物料字典
* *
*/ */
@Schema(description = "物料字典")
private String mtrlTp; private String mtrlTp;
/** /**
* 订单分类 * 订单分类
* *
*/ */
@Schema(description = "订单分类")
private String splyBsnTp; private String splyBsnTp;
/** /**
* 产品组编码 * 产品组编码
* *
*/ */
@Schema(description = "产品组编码")
private String pdtGrpCdg; private String pdtGrpCdg;
/** /**
* 产品组名 * 产品组名
*/ */
@Schema(description = "产品组名")
private String pdtGrpName; private String pdtGrpName;
/** /**
* 分销聚道编码 * 分销聚道编码
* *
*/ */
@Schema(description = "分销聚道编码")
private String saleAcsCdg; private String saleAcsCdg;
/** /**
* 分销聚道名称 * 分销聚道名称
* *
*/ */
@Schema(description = "分销聚道名称")
private String saleAcsName; private String saleAcsName;
/** /**
* 销售组织编码 * 销售组织编码
* *
*/ */
@Schema(description = "销售组织编码")
private String saleOrgzCd; private String saleOrgzCd;
/** /**
* 销售组织名称 * 销售组织名称
* *
*/ */
@Schema(description = "销售组织名称")
private String saleOrgzName; private String saleOrgzName;
/** /**
* 付款方名称 * 付款方名称
* *
*/ */
@Schema(description = "付款方名称")
private String payerName; private String payerName;
/** /**
* 付款方编码 * 付款方编码
* *
*/ */
@Schema(description = "付款方编码")
private String payerNum; private String payerNum;
/** /**
* 货权准转移类型 * 货权准转移类型
*/ */
@Schema(description = "货权准转移类型")
private String meteringType; private String meteringType;
/** /**
* 订单明细 * 订单明细
*/ */
@Schema(description = "订单明细")
private List<OrdDtlDTO> OrdDtlDTOS; private List<OrdDtlDTO> OrdDtlDTOS;
} }

View File

@@ -1,246 +1,249 @@
package com.zt.plat.module.contractorder.api.dto.order; package com.zt.plat.module.contractorder.api.dto.order;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
@Schema(description = "采购订单明细")
public class PrchOrdDtlDTO { public class PrchOrdDtlDTO {
/** /**
* 主键 * 主键
*/ */
@Schema(description = "主键")
private Long id; private Long id;
/** /**
* 采购订单主键 * 采购订单主键
*/ */
@Schema(description = "采购订单主键")
private Long ordId; private Long ordId;
/** /**
* 行项目;推送ERP必须 * 行项目;推送ERP必须
*/ */
@Schema(description = "行项目;推送ERP必须")
private Long lineNum; private Long lineNum;
/** /**
* 物料编码;推送ERP * 物料编码;推送ERP
*/ */
@Schema(description = "物料编码;推送ERP")
private String mtrlNum; private String mtrlNum;
/** /**
* 物料名称 * 物料名称
*/ */
@Schema(description = "物料名称")
private String mtrlName; private String mtrlName;
/** /**
* 收货工厂名称 * 收货工厂名称
*/ */
@Schema(description = "收货工厂名称")
private String rcvFactName; private String rcvFactName;
/** /**
* 收货工厂编码;推送ERP必须 * 收货工厂编码;推送ERP必须
*/ */
@Schema(description = "收货工厂编码;推送ERP必须")
private String rcvFactNum; private String rcvFactNum;
/** /**
* 收货库位名称 * 收货库位名称
*/ */
@Schema(description = "收货库位名称")
private String rcvWrhName; private String rcvWrhName;
/** /**
* 收货库位编码;推送ERP * 收货库位编码;推送ERP
*/ */
@Schema(description = "收货库位编码;推送ERP")
private String rcvWrhNum; private String rcvWrhNum;
/** /**
* 暂估数量;推送ERP必须 * 暂估数量;推送ERP必须
*/ */
@Schema(description = "暂估数量;推送ERP必须")
private String qty; private String qty;
/** /**
* 计量单位;推送ERP必须 * 计量单位;推送ERP必须
*/ */
@Schema(description = "计量单位;推送ERP必须")
private String unt; private String unt;
/** /**
* 含税单价;推送ERP必须 * 含税单价;推送ERP必须
*/ */
@Schema(description = "含税单价;推送ERP必须")
private BigDecimal inTaxUprc; private BigDecimal inTaxUprc;
/** /**
* 价格单位;推送ERP * 价格单位;推送ERP
*/ */
@Schema(description = "价格单位;推送ERP")
private BigDecimal prcUnt; private BigDecimal prcUnt;
/** /**
* 税码(字典: PRCH_TAX);推送ERP * 税码(字典: PRCH_TAX);推送ERP
*/ */
@Schema(description = "税码(字典: PRCH_TAX);推送ERP")
private String taxNum; private String taxNum;
/** /**
* 是否基于GR的发票校验;推送ERP * 是否基于GR的发票校验;推送ERP
*/ */
@Schema(description = "是否基于GR的发票校验;推送ERP")
private String isGrInv; private String isGrInv;
/** /**
* 是否允许无限制收货;推送ERP * 是否允许无限制收货;推送ERP
*/ */
@Schema(description = "是否允许无限制收货;推送ERP")
private String isUnlRcv; private String isUnlRcv;
/** /**
* 批次;推送ERP * 批次;推送ERP
*/ */
@Schema(description = "批次;推送ERP")
private String bat; private String bat;
/** /**
* 项目类别;推送ERP:委托加工L * 项目类别;推送ERP:委托加工L
*/ */
@Schema(description = "项目类别;推送ERP:委托加工L")
private String prjCtgr; private String prjCtgr;
/** /**
* 科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型固定资产订单A服务订单S-销售服务费K-成本中心F-订单 * 科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型固定资产订单A服务订单S-销售服务费K-成本中心F-订单
*/ */
@Schema(description = "科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型固定资产订单A服务订单S-销售服务费K-成本中心F-订单")
private String actsCtgr; private String actsCtgr;
/** /**
* 物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型,服务订单必传 * 物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型,服务订单必传
*/ */
@Schema(description = "物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型,服务订单必传")
private String mtrlCpntNum; private String mtrlCpntNum;
/** /**
* 物料组描述;推送ERP:联动订单类型,服务订单必传 * 物料组描述;推送ERP:联动订单类型,服务订单必传
*/ */
@Schema(description = "物料组描述;推送ERP:联动订单类型,服务订单必传")
private String mtrlCpntDsp; private String mtrlCpntDsp;
/** /**
* 短文本 * 短文本
*/ */
@Schema(description = "短文本")
private String shrtTxt; private String shrtTxt;
/** /**
* 退货标识X标识退货;推送ERP * 退货标识X标识退货;推送ERP
*/ */
@Schema(description = "退货标识X标识退货;推送ERP")
private String isRlbkCgo; private String isRlbkCgo;
/** /**
* 是否免费收货标识X;推送ERP * 是否免费收货标识X;推送ERP
*/ */
@Schema(description = "是否免费收货标识X;推送ERP")
private String isFreeRcv; private String isFreeRcv;
/** /**
* 外部行项目号;推送ERP * 外部行项目号;推送ERP
*/ */
@Schema(description = "外部行项目号;推送ERP")
private Long outLineNum; private Long outLineNum;
/** /**
* 备注信息-需求单位;推送ERP * 备注信息-需求单位;推送ERP
*/ */
@Schema(description = "备注信息-需求单位;推送ERP")
private String rmkUnt; private String rmkUnt;
/** /**
* 备注信息-物料详细;推送ERP * 备注信息-物料详细;推送ERP
*/ */
@Schema(description = "备注信息-物料详细;推送ERP")
private String rmkMtrl; private String rmkMtrl;
/** /**
* 交货起始日期;推送ERP * 交货起始日期;推送ERP
*/ */
@Schema(description = "交货起始日期;推送ERP")
private LocalDateTime bgnDt; private LocalDateTime bgnDt;
/** /**
* 交货截止日期;推送ERP * 交货截止日期;推送ERP
*/ */
@Schema(description = "交货截止日期;推送ERP")
private LocalDateTime ddlDt; private LocalDateTime ddlDt;
/** /**
* 已收货量 * 已收货量
*/ */
@Schema(description = "已收货量")
private BigDecimal lstQty; private BigDecimal lstQty;
/** /**
* 已移库量库;存针对该订单产生的移库量 * 已移库量库;存针对该订单产生的移库量
*/ */
@Schema(description = "已移库量库;存针对该订单产生的移库量")
private BigDecimal trfQty; private BigDecimal trfQty;
/** /**
* 小协议号 * 小协议号
*/ */
@Schema(description = "小协议号")
private String agrNum; private String agrNum;
/** /**
* 移库工厂名称 * 移库工厂名称
*/ */
@Schema(description = "移库工厂名称")
private String trfFactName; private String trfFactName;
/** /**
* 移库工厂编码 * 移库工厂编码
*/ */
@Schema(description = "移库工厂编码")
private String trfFactNum; private String trfFactNum;
/** /**
* 移库库位名称 * 移库库位名称
*/ */
@Schema(description = "移库库位名称")
private String trfWrhName; private String trfWrhName;
/** /**
* 移库库位编码 * 移库库位编码
*/ */
@Schema(description = "移库库位编码")
private String trfWrhNum; private String trfWrhNum;
/** /**
* 备注 * 备注
*/ */
@Schema(description = "备注")
private String rmk; private String rmk;
/** /**
* 原料湿重;推送ERP * 原料湿重;推送ERP
*/ */
@Schema(description = "原料湿重;推送ERP")
private BigDecimal origWet; private BigDecimal origWet;
/** /**
* 销售物料号;推送ERP:科目分配类别为S时必填 * 销售物料号;推送ERP:科目分配类别为S时必填
*/ */
@Schema(description = "销售物料号;推送ERP:科目分配类别为S时必填")
private String saleMtrlNum; private String saleMtrlNum;
/** /**
* 统计型内部订单;推送ERP * 统计型内部订单;推送ERP
*/ */
@Schema(description = "统计型内部订单;推送ERP")
private String inOrd; private String inOrd;
/** /**
* 采购类别;推送ERP:0-生产性物资类1-项目投资类 * 采购类别;推送ERP:0-生产性物资类1-项目投资类
*/ */
@Schema(description = "采购类别;推送ERP:0-生产性物资类1-项目投资类")
private String prchCtgr; private String prchCtgr;
/** /**
* 是否启用(字典:ERP_CTRT_YN);处理明细中多个相同物料,只能允许一种物料启用 * 是否启用(字典:ERP_CTRT_YN);处理明细中多个相同物料,只能允许一种物料启用
*/ */
@Schema(description = "是否启用(字典:ERP_CTRT_YN);处理明细中多个相同物料,只能允许一种物料启用")
private String isEnb; private String isEnb;
/** /**
* 科目分配详情;科目分配类别为K或P时使用(JSON) * 科目分配详情;科目分配类别为K或P时使用(JSON)
*/ */
@Schema(description = "科目分配详情;科目分配类别为K或P时使用(JSON)")
private String actsCtgrDtl; private String actsCtgrDtl;
/** /**
* 委托加工详情;委托加工订单使用(JSON) * 委托加工详情;委托加工订单使用(JSON)
*/ */
@Schema(description = "委托加工详情;委托加工订单使用(JSON)")
private String enttDtl; private String enttDtl;
/** /**
* 金属元素缩写 * 金属元素缩写
*/ */
@Schema(description = "金属元素缩写")
private String elemAbbr; private String elemAbbr;
/** /**
* 金属元素名称 * 金属元素名称
*/ */
@Schema(description = "金属元素名称")
private String elemName; private String elemName;
/** /**
* 金属元素编码 * 金属元素编码
*/ */
@Schema(description = "金属元素编码")
private String elemCdg; private String elemCdg;
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.contractorder.api.dto.order; package com.zt.plat.module.contractorder.api.dto.order;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -7,208 +8,253 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
@Schema(description = "订单(老版本)")
public class PurchaseOrderWithDetailsDTO { public class PurchaseOrderWithDetailsDTO {
/** /**
* 主键 * 主键
*/ */
@Schema(description = "主键")
private Long id; private Long id;
/** /**
* ERP订单号 * ERP订单号
*/ */
@Schema(description = "ERP订单号")
private String orderSAPNumber; private String orderSAPNumber;
/** /**
* 订单号 * 订单号
*/ */
@Schema(description = "订单号")
private String systemOrderNumber; private String systemOrderNumber;
/** /**
* 公司名称 * 公司名称
*/ */
@Schema(description = "公司名称")
private String cpName; private String cpName;
/** /**
* 公司编码;推送ERP必须 * 公司编码;推送ERP必须
*/ */
@Schema(description = "公司编码;推送ERP必须")
private String companyNumber; private String companyNumber;
/** /**
* 客商编码;推送ERP必须 * 客商编码;推送ERP必须
*/ */
@Schema(description = "客商编码;推送ERP必须")
private String supplierNumber; private String supplierNumber;
/** /**
* 客商名称 * 客商名称
*/ */
@Schema(description = "客商名称")
private String supplierName; private String supplierName;
/** /**
* 订单类型(字典:PRCH_ORD_TP);推送ERP必须 * 订单类型(字典:PRCH_ORD_TP);推送ERP必须
*/ */
@Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP必须")
private String type; private String type;
/** /**
* 凭证日期;推送ERP必须 * 凭证日期;推送ERP必须
*/ */
@Schema(description = "凭证日期;推送ERP必须")
private LocalDateTime voucherDate; private LocalDateTime voucherDate;
/** /**
* 采购组织编码;推送ERP必须 * 采购组织编码;推送ERP必须
*/ */
@Schema(description = "采购组织编码;推送ERP必须")
private String purchaseOrganizationCustomsDeclaration; private String purchaseOrganizationCustomsDeclaration;
/** /**
* 收货工厂名称 * 收货工厂名称
*/ */
@Schema(description = "收货工厂名称")
private String receiveFactoryName; private String receiveFactoryName;
/** /**
* 收货工厂编码;推送ERP必须 * 收货工厂编码;推送ERP必须
*/ */
@Schema(description = "收货工厂编码;推送ERP必须")
private String receiveFactoryNumber; private String receiveFactoryNumber;
/** /**
* 收货库位名称 * 收货库位名称
*/ */
@Schema(description = "收货库位名称")
private String receiveWarehouseName; private String receiveWarehouseName;
/** /**
* 收货库位编码;推送ERP * 收货库位编码;推送ERP
*/ */
@Schema(description = "收货库位编码;推送ERP")
private String receiveWarehouseNumber; private String receiveWarehouseNumber;
/** /**
* 采购组编码(字典:PRCH_GRP_TP);推送ERP必须 * 采购组编码(字典:PRCH_GRP_TP);推送ERP必须
*/ */
@Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP必须")
private String purchaseGroup; private String purchaseGroup;
/** /**
* 货币码(字典:CUR);推送ERP必须 * 货币码(字典:CUR);推送ERP必须
*/ */
@Schema(description = "货币码(字典:CUR);推送ERP必须")
private String currencyNumber; private String currencyNumber;
/** /**
* 汇率;推送ERP * 汇率;推送ERP
*/ */
@Schema(description = "汇率;推送ERP")
private BigDecimal exchangeRate; private BigDecimal exchangeRate;
/** /**
* 合同纸质合同号;推送ERP必须 * 合同纸质合同号;推送ERP必须
*/ */
@Schema(description = "合同纸质合同号;推送ERP必须")
private String paperContractNumber; private String paperContractNumber;
/** /**
* 小协议号;推送ERP * 小协议号;推送ERP
*/ */
@Schema(description = "小协议号;推送ERP")
private String agreementNumber; private String agreementNumber;
/** /**
* 备注;推送ERP * 备注;推送ERP
*/ */
@Schema(description = "备注;推送ERP")
private String remark; private String remark;
/** /**
* 代理方编码;推送ERP * 代理方编码;推送ERP
*/ */
@Schema(description = "代理方编码;推送ERP")
private String agentNumber; private String agentNumber;
/** /**
* 代理方名称 * 代理方名称
*/ */
@Schema(description = "代理方名称")
private String agentName; private String agentName;
/** /**
* 订单编码 * 订单编码
*/ */
@Schema(description = "订单编码")
private String orderNumber; private String orderNumber;
/** /**
* 系统合同编号 * 系统合同编号
*/ */
@Schema(description = "系统合同编号")
private String contractNumber; private String contractNumber;
/** /**
* 物料编码 * 物料编码
*/ */
@Schema(description = "物料编码")
private String materialNumber; private String materialNumber;
/** /**
* 单位 * 单位
*/ */
@Schema(description = "单位")
private String unt; private String unt;
/** /**
* 物料名称 * 物料名称
*/ */
@Schema(description = "物料名称")
private String materialName; private String materialName;
/** /**
* 合同名称 * 合同名称
*/ */
@Schema(description = "合同名称")
private String contractName; private String contractName;
/** /**
* 小户头号 * 小户头号
*/ */
@Schema(description = "小户头号")
private String tenantNumber; private String tenantNumber;
/** /**
* ERP公司编号 * ERP公司编号
*/ */
@Schema(description = "ERP公司编号")
private String erpPurchaseCompanyNumber; private String erpPurchaseCompanyNumber;
/** /**
* ERP公司名称 * ERP公司名称
*/ */
@Schema(description = "ERP公司名称")
private String erpPurchaseCompanyName; private String erpPurchaseCompanyName;
/** /**
* ERP客商公司编码 * ERP客商公司编码
*/ */
@Schema(description = "ERP客商公司编码")
private String erpSalesCompanyNumber; private String erpSalesCompanyNumber;
/** /**
* ERP客商公司名称 * ERP客商公司名称
*/ */
@Schema(description = "ERP客商公司名称")
private String erpSalesCompanyName; private String erpSalesCompanyName;
/** /**
* 采购组织名称 * 采购组织名称
*/ */
@Schema(description = "采购组织名称")
private String purchaseOrganizationName; private String purchaseOrganizationName;
/** /**
* ERP状态(字典: ERP_REQ_STS) * ERP状态(字典: ERP_REQ_STS)
*/ */
@Schema(description = "ERP状态(字典: ERP_REQ_STS)")
private String erpStatus; private String erpStatus;
/** /**
* 请求ERP失败原因 * 请求ERP失败原因
*/ */
@Schema(description = "请求ERP失败原因")
private String cause; private String cause;
/** /**
* 订单状态(字典:PRCH_ORD_STS) * 订单状态(字典:PRCH_ORD_STS)
*/ */
@Schema(description = "订单状态(字典:PRCH_ORD_STS)")
private String status; private String status;
/** /**
* 采购组名称 * 采购组名称
*/ */
@Schema(description = "采购组名称")
private String purchaseGroupName; private String purchaseGroupName;
/** /**
* 流程实例编号 * 流程实例编号
*/ */
@Schema(description = "流程实例编号")
private String processInstanceId; private String processInstanceId;
/** /**
* 流程当前任务节点id * 流程当前任务节点id
*/ */
@Schema(description = "流程当前任务节点id")
private String taskId; private String taskId;
/** /**
* 审批意见 * 审批意见
*/ */
@Schema(description = "审批意见")
private String reviewOpinion; private String reviewOpinion;
/** /**
* 是否需要审批 * 是否需要审批
*/ */
@Schema(description = "是否需要审批")
private int isPush; private int isPush;
/** /**
* 物料类型 * 物料类型
*/ */
@Schema(description = "物料类型")
private String mtrlTp; private String mtrlTp;
/** /**
* 订单类型 * 订单类型
*/ */
@Schema(description = "订单类型")
private String splyBsnTp; private String splyBsnTp;
/** /**
* 税码 * 税码
*/ */
@Schema(description = "税码")
private String taxNum; private String taxNum;
/** /**
* 货权准转移类型 * 货权准转移类型
*/ */
@Schema(description = "货权准转移类型")
private String meteringType; private String meteringType;
/** /**
* 采购订单明细 * 采购订单明细
*/ */
@Schema(description = "采购订单明细")
private List<PrchOrdDtlDTO> prchOrdDtlDTOS; private List<PrchOrdDtlDTO> prchOrdDtlDTOS;
/** /**
* 消费订单明细 * 消费订单明细
*/ */
@Schema(description = "消费订单明细")
private List<SalesOrdDtlDTO> salesOrdDtlDTOS; private List<SalesOrdDtlDTO> salesOrdDtlDTOS;
} }

View File

@@ -134,4 +134,8 @@ public class SalesOrdDtlDTO {
private BigDecimal taxRte; private BigDecimal taxRte;
/**
* 已移库量库;存针对该订单产生的移库量
*/
private BigDecimal trfQty;
} }

View File

@@ -0,0 +1,32 @@
package com.zt.plat.module.contractorder.api.dto.order;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
@Data
@Schema(description = "更新订单已收货数量")
@Validated
public class UpdateOrderLstQtyDTO {
/**
* 主键
*/
@Schema(description = "订单明细id")
@NotNull(message = "订单明细id不能为空")
private Long orderDetailId;
/**
* 已收货数量
*/
@Schema(description = "已收货数量")
@NotNull(message = "已收货数量不能为空")
private BigDecimal lstQty;
@Schema(description = "订单分类(字典SPLY_BSN_TP)")
@NotEmpty(message = "订单类型不能为空")
private String splyBsnTp;
}

View File

@@ -3,10 +3,7 @@ package com.zt.plat.module.contractorder.api;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.contractorder.api.dto.order.OrdDtlDTO; import com.zt.plat.module.contractorder.api.dto.order.*;
import com.zt.plat.module.contractorder.api.dto.order.OrderDTO;
import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO;
import com.zt.plat.module.contractorder.api.dto.order.SalesOrdDtlDTO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
@@ -18,12 +15,15 @@ import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
@@ -92,6 +92,40 @@ public class OrderApiImpl implements OrderApi {
return success(order); return success(order);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public CommonResult<Boolean> UpdateOrderLstQty(List<UpdateOrderLstQtyDTO> updateOrderLstQtyDTOS) {
if (updateOrderLstQtyDTOS == null || updateOrderLstQtyDTOS.isEmpty()) {
throw new RuntimeException("请求数据错误");
}
SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class);
PrchOrdDtlMapper prchOrdDtlMapper = SpringUtil.getBean(PrchOrdDtlMapper.class);
updateOrderLstQtyDTOS.forEach(f -> {
if ("SALE".equals(f.getSplyBsnTp())) {
SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId());
// 处理 trfQty 可能为 null 的情况,默认值 0
BigDecimal trfQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty())
.orElse(BigDecimal.ZERO);
SalesOrderDetailDO updateDO = new SalesOrderDetailDO();
updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID
updateDO.setTrfQty(trfQty.add(f.getLstQty())); // 累加trfQty
salesOrderDetailMapper.updateById(updateDO);
} else if ("PUR".equals(f.getSplyBsnTp())) {
// 采购
PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId());
BigDecimal trfQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty())
.orElse(BigDecimal.ZERO);
PrchOrdDtlDO updateDO = new PrchOrdDtlDO();
updateDO.setId(f.getOrderDetailId());
updateDO.setTrfQty(trfQty.add(f.getLstQty()));
prchOrdDtlMapper.updateById(updateDO);
} else {
throw new RuntimeException("请求数据错误");
}
});
return success(true);
}
private List<SalesOrderDO> getOrderByIds(List<Long> ids) { private List<SalesOrderDO> getOrderByIds(List<Long> ids) {
return SpringUtil.getBean(SalesOrderMapper.class).selectByIds(ids); // 采购订单与销售订单的 return SpringUtil.getBean(SalesOrderMapper.class).selectByIds(ids); // 采购订单与销售订单的
} }
@@ -176,7 +210,7 @@ public class OrderApiImpl implements OrderApi {
} else if ( } else if (
t instanceof SalesOrdDtlDTO s t instanceof SalesOrderDetailDO s
) { ) {
ordDtlDTO.setId(s.getId()); ordDtlDTO.setId(s.getId());
ordDtlDTO.setOrderId(s.getOrderId()); ordDtlDTO.setOrderId(s.getOrderId());
@@ -187,7 +221,7 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setFactoryNum(s.getFactoryNumber()); ordDtlDTO.setFactoryNum(s.getFactoryNumber());
ordDtlDTO.setWarehouseName(s.getWarehouseName()); ordDtlDTO.setWarehouseName(s.getWarehouseName());
ordDtlDTO.setWarehouseNum(s.getWarehouseNumber()); ordDtlDTO.setWarehouseNum(s.getWarehouseNumber());
ordDtlDTO.setUnit(s.getUnit()); ordDtlDTO.setUnit(s.getUnt());
ordDtlDTO.setQuantity(s.getQuantity()); ordDtlDTO.setQuantity(s.getQuantity());
ordDtlDTO.setProjectCategory(s.getProjectCategory()); ordDtlDTO.setProjectCategory(s.getProjectCategory());
ordDtlDTO.setAgreementNumber(s.getAgreementNumber()); ordDtlDTO.setAgreementNumber(s.getAgreementNumber());
@@ -196,8 +230,7 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setElementCode(s.getElementNumber()); ordDtlDTO.setElementCode(s.getElementNumber());
ordDtlDTO.setIsEnable(s.getIsEnable()); ordDtlDTO.setIsEnable(s.getIsEnable());
ordDtlDTO.setTaxNum(s.getTaxAcctasscat()); ordDtlDTO.setTaxNum(s.getTaxAcctasscat());
//============================== ordDtlDTO.setTrfQty(s.getTrfQty());
} }
return ordDtlDTO; return ordDtlDTO;
} }

View File

@@ -155,4 +155,6 @@ public class SalesOrderDetailDO extends BusinessBaseDO {
@TableField("TAX_RTE") @TableField("TAX_RTE")
private BigDecimal taxRte; private BigDecimal taxRte;
@TableField("TRF_QTY")
private BigDecimal trfQty;
} }

View File

@@ -34,4 +34,8 @@ public class ErpInternalOrderRespVO {
@ExcelProperty("是否已完成") @ExcelProperty("是否已完成")
private String isFinish; private String isFinish;
@Schema(description = "companyNumber")
@ExcelProperty("companyNumber")
private String companyNumber;
} }

View File

@@ -53,4 +53,10 @@ public class ErpInternalOrderDO {
@TableField("IS_FIN") @TableField("IS_FIN")
private String isFinish; private String isFinish;
/**
* 公司编码
*/
@TableField("CPN_NUM")
private String companyNumber;
} }

View File

@@ -132,6 +132,13 @@ public class ErpInternalOrderServiceImpl implements ErpInternalOrderService {
if (dataArray == null || dataArray.isEmpty()) { if (dataArray == null || dataArray.isEmpty()) {
continue; continue;
} }
// 往每个子项中添加BUKRS字段
for (int j = 0; j < dataArray.size(); j++) {
JSONObject item = dataArray.getJSONObject(j);
if (item != null) {
item.put("BUKRS", number);
}
}
dataArrayALL.addAll(dataArray); dataArrayALL.addAll(dataArray);
} }
if (CollUtil.isEmpty(dataArrayALL)) { if (CollUtil.isEmpty(dataArrayALL)) {
@@ -165,6 +172,7 @@ public class ErpInternalOrderServiceImpl implements ErpInternalOrderService {
DO.setType(dataJson.getString("AUART")); DO.setType(dataJson.getString("AUART"));
DO.setIsOff(dataJson.getString("PHAS3")); DO.setIsOff(dataJson.getString("PHAS3"));
DO.setIsFinish(dataJson.getString("PHAS2")); DO.setIsFinish(dataJson.getString("PHAS2"));
DO.setCompanyNumber(dataJson.getString("BUKRS"));
if (numbers.get(number) != null) { if (numbers.get(number) != null) {
// 更新 // 更新
DO.setId(numbers.get(number)); DO.setId(numbers.get(number));