Commit 7bb0be0701cec9342d8f49cb952377c9ec692bf2

Authored by 房远帅
1 parent bab22544

合同:库存合同锁价问题处理

@@ -961,3 +961,5 @@ create table if not exists customer_visit_record( @@ -961,3 +961,5 @@ create table if not exists customer_visit_record(
961 create_time datetime default now() comment '创建时间', 961 create_time datetime default now() comment '创建时间',
962 update_time datetime default now() comment '更新时间' 962 update_time datetime default now() comment '更新时间'
963 ); 963 );
  964 +
  965 +alter table tbl_purchase_order_line add column contract_distributor_line_id varchar(32) DEFAULT NULL comment '合同物料行ID';
@@ -265,6 +265,11 @@ public class PurchaseOrderLine extends BaseEntity implements BaseDto { @@ -265,6 +265,11 @@ public class PurchaseOrderLine extends BaseEntity implements BaseDto {
265 private Boolean delFlag; 265 private Boolean delFlag;
266 266
267 /** 267 /**
  268 + * 合同物料行ID
  269 + */
  270 + private String contractDistributorLineId;
  271 +
  272 + /**
268 * 新增/删除/变更 273 * 新增/删除/变更
269 */ 274 */
270 @TableField(exist = false) 275 @TableField(exist = false)
@@ -731,6 +731,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -731,6 +731,7 @@ public class ContractDistributorStandardServiceImpl extends
731 createPurchaseOrderLineVo.setSalesPrice(contractDistributorLine.getUnitPrice()); 731 createPurchaseOrderLineVo.setSalesPrice(contractDistributorLine.getUnitPrice());
732 createPurchaseOrderLineVo.setDeliveryDate(contractDistributorLine.getDeliveryDate()); 732 createPurchaseOrderLineVo.setDeliveryDate(contractDistributorLine.getDeliveryDate());
733 createPurchaseOrderLineVo.setShowOrder(contractDistributorLine.getShowOrder()); 733 createPurchaseOrderLineVo.setShowOrder(contractDistributorLine.getShowOrder());
  734 + createPurchaseOrderLineVo.setContractDistributorLineId(contractDistributorLine.getId());
734 createPurchaseOrderLineVoList.add(createPurchaseOrderLineVo); 735 createPurchaseOrderLineVoList.add(createPurchaseOrderLineVo);
735 }); 736 });
736 } 737 }
@@ -755,6 +756,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -755,6 +756,7 @@ public class ContractDistributorStandardServiceImpl extends
755 createPurchaseOrderLineVo.setSalesPrice(contractStdProcessingLine.getUnitPrice()); 756 createPurchaseOrderLineVo.setSalesPrice(contractStdProcessingLine.getUnitPrice());
756 createPurchaseOrderLineVo.setDeliveryDate(contractStdProcessingLine.getDeliveryDate()); 757 createPurchaseOrderLineVo.setDeliveryDate(contractStdProcessingLine.getDeliveryDate());
757 createPurchaseOrderLineVo.setShowOrder(contractStdProcessingLine.getShowOrder()); 758 createPurchaseOrderLineVo.setShowOrder(contractStdProcessingLine.getShowOrder());
  759 + createPurchaseOrderLineVo.setContractDistributorLineId(contractStdProcessingLine.getId());
758 createPurchaseOrderLineVoList.add(createPurchaseOrderLineVo); 760 createPurchaseOrderLineVoList.add(createPurchaseOrderLineVo);
759 }); 761 });
760 } 762 }
@@ -1084,9 +1086,14 @@ public class ContractDistributorStandardServiceImpl extends @@ -1084,9 +1086,14 @@ public class ContractDistributorStandardServiceImpl extends
1084 1086
1085 for (int index = 0; index < purchaseOrderLineList.size(); index++) { 1087 for (int index = 0; index < purchaseOrderLineList.size(); index++) {
1086 PurchaseOrderLine oldLine = purchaseOrderLineList.get(index); 1088 PurchaseOrderLine oldLine = purchaseOrderLineList.get(index);
1087 - UpdateContractDistributorLineVo contractDistributorLine = vo.getContractDistributorLineList().get(index); 1089 + Map<String, BigDecimal> map = vo.getContractDistributorLineList().stream()
  1090 + .collect(Collectors.toMap(
  1091 + UpdateContractDistributorLineVo::getId,
  1092 + UpdateContractDistributorLineVo::getUnitPrice,
  1093 + (existing, replacement) -> replacement // 保留后者
  1094 + ));
1088 Wrapper<PurchaseOrderLine> updateOrderLineWrapper = Wrappers.lambdaUpdate(PurchaseOrderLine.class) 1095 Wrapper<PurchaseOrderLine> updateOrderLineWrapper = Wrappers.lambdaUpdate(PurchaseOrderLine.class)
1089 - .set(PurchaseOrderLine::getSalesPrice, contractDistributorLine.getUnitPrice()) 1096 + .set(PurchaseOrderLine::getSalesPrice, map.get(oldLine.getContractDistributorLineId()))
1090 .eq(PurchaseOrderLine::getId, oldLine.getId()); 1097 .eq(PurchaseOrderLine::getId, oldLine.getId());
1091 purchaseOrderLineService.update(updateOrderLineWrapper); 1098 purchaseOrderLineService.update(updateOrderLineWrapper);
1092 } 1099 }
@@ -128,6 +128,9 @@ public class PurchaseOrderLineServiceImpl extends BaseMpServiceImpl<PurchaseOrde @@ -128,6 +128,9 @@ public class PurchaseOrderLineServiceImpl extends BaseMpServiceImpl<PurchaseOrde
128 if (vo.getPackagingFee() != null) { 128 if (vo.getPackagingFee() != null) {
129 data.setPackagingFee(vo.getPackagingFee()); 129 data.setPackagingFee(vo.getPackagingFee());
130 } 130 }
  131 + if (!StringUtil.isBlank(vo.getContractDistributorLineId())) {
  132 + data.setContractDistributorLineId(vo.getContractDistributorLineId());
  133 + }
131 134
132 getBaseMapper().insert(data); 135 getBaseMapper().insert(data);
133 136
@@ -176,4 +176,10 @@ public class CreatePurchaseOrderLineVo implements BaseVo, Serializable { @@ -176,4 +176,10 @@ public class CreatePurchaseOrderLineVo implements BaseVo, Serializable {
176 @IsNumberPrecision(message = "包装费最多允许4位小数!", value = 4) 176 @IsNumberPrecision(message = "包装费最多允许4位小数!", value = 4)
177 private BigDecimal packagingFee; 177 private BigDecimal packagingFee;
178 178
  179 + /**
  180 + * 合同物料行ID
  181 + */
  182 + @ApiModelProperty("合同物料行ID")
  183 + private String contractDistributorLineId;
  184 +
179 } 185 }
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
26 <result column="assessment_exceeds_agreement" property="assessmentExceedsAgreement"/> 26 <result column="assessment_exceeds_agreement" property="assessmentExceedsAgreement"/>
27 <result column="packaging_fee" property="packagingFee"/> 27 <result column="packaging_fee" property="packagingFee"/>
28 <result column="shipment" property="shipment"/> 28 <result column="shipment" property="shipment"/>
  29 + <result column="contract_distributor_line_id" property="contractDistributorLineId"/>
29 <result column="create_by_id" property="createById"/> 30 <result column="create_by_id" property="createById"/>
30 <result column="create_by" property="createBy"/> 31 <result column="create_by" property="createBy"/>
31 <result column="update_by_id" property="updateById"/> 32 <result column="update_by_id" property="updateById"/>
@@ -59,6 +60,7 @@ @@ -59,6 +60,7 @@
59 tb.assessment_exceeds_agreement, 60 tb.assessment_exceeds_agreement,
60 tb.packaging_fee, 61 tb.packaging_fee,
61 tb.shipment, 62 tb.shipment,
  63 + tb.contract_distributor_line_id,
62 tb.create_by_id, 64 tb.create_by_id,
63 tb.create_by, 65 tb.create_by,
64 tb.update_by_id, 66 tb.update_by_id,
@@ -96,7 +98,7 @@ @@ -96,7 +98,7 @@
96 length, length_tol_pos, length_tol_neg, 98 length, length_tol_pos, length_tol_neg,
97 status, quantity, sales_price, delivery_date, show_order, 99 status, quantity, sales_price, delivery_date, show_order,
98 assessment_exceeds_agreement, create_by_id, create_by, update_by_id, update_by, 100 assessment_exceeds_agreement, create_by_id, create_by, update_by_id, update_by,
99 - create_time, update_time, parent_id,packaging_fee 101 + create_time, update_time, parent_id,packaging_fee,contract_distributor_line_id
100 ) VALUES 102 ) VALUES
101 <foreach collection="specList" item="item" separator=","> 103 <foreach collection="specList" item="item" separator=",">
102 ( 104 (
@@ -106,7 +108,7 @@ @@ -106,7 +108,7 @@
106 #{item.length}, #{item.lengthTolPos}, #{item.lengthTolNeg}, 108 #{item.length}, #{item.lengthTolPos}, #{item.lengthTolNeg},
107 #{item.status}, #{item.quantity}, #{item.salesPrice}, #{item.deliveryDate}, #{item.showOrder}, 109 #{item.status}, #{item.quantity}, #{item.salesPrice}, #{item.deliveryDate}, #{item.showOrder},
108 #{item.assessmentExceedsAgreement}, #{item.createById}, #{item.createBy}, #{item.updateById}, #{item.updateBy}, 110 #{item.assessmentExceedsAgreement}, #{item.createById}, #{item.createBy}, #{item.updateById}, #{item.updateBy},
109 - #{item.createTime}, #{item.updateTime}, #{item.parentId},#{item.packagingFee} 111 + #{item.createTime}, #{item.updateTime}, #{item.parentId},#{item.packagingFee},#{item.contractDistributorLineId}
110 ) 112 )
111 </foreach> 113 </foreach>
112 </insert> 114 </insert>