Commit 528c150982f85aab5652ff8f822e25c8f0065697
1 parent
36833415
1:锁规合同编码+_01;2:库存合同新增筛选条件“锁价状态”;3:未锁规合同新增筛选条件“锁规状态”
Showing
3 changed files
with
57 additions
and
0 deletions
| @@ -1418,8 +1418,11 @@ public class ContractDistributorStandardServiceImpl extends | @@ -1418,8 +1418,11 @@ public class ContractDistributorStandardServiceImpl extends | ||
| 1418 | 1418 | ||
| 1419 | // 判断锁规是否完成(锁规数量等于合同数量) | 1419 | // 判断锁规是否完成(锁规数量等于合同数量) |
| 1420 | boolean checkPriceSpecLocked = allChildTotalQuantity.compareTo(data.getTotalQuantity()) == 0; | 1420 | boolean checkPriceSpecLocked = allChildTotalQuantity.compareTo(data.getTotalQuantity()) == 0; |
| 1421 | + int lockBatchNo = childContractList.size() + 1; | ||
| 1422 | + String lockContractCode = buildSpecificationLockContractCode(data.getCode(), data.getType(), lockBatchNo); | ||
| 1421 | 1423 | ||
| 1422 | data.setId(IdUtil.getUUID()); | 1424 | data.setId(IdUtil.getUUID()); |
| 1425 | + data.setCode(lockContractCode); | ||
| 1423 | data.setTotalQuantity(vo.getTotalQuantity()); | 1426 | data.setTotalQuantity(vo.getTotalQuantity()); |
| 1424 | data.setTotalAmountCapital(vo.getTotalAmountCapital()); | 1427 | data.setTotalAmountCapital(vo.getTotalAmountCapital()); |
| 1425 | data.setTotalAmountExcludingTax(vo.getTotalAmountExcludingTax()); | 1428 | data.setTotalAmountExcludingTax(vo.getTotalAmountExcludingTax()); |
| @@ -1479,6 +1482,19 @@ public class ContractDistributorStandardServiceImpl extends | @@ -1479,6 +1482,19 @@ public class ContractDistributorStandardServiceImpl extends | ||
| 1479 | // createPurchaseOrderInfo(data, "PRODUCTION"); | 1482 | // createPurchaseOrderInfo(data, "PRODUCTION"); |
| 1480 | } | 1483 | } |
| 1481 | 1484 | ||
| 1485 | + private String buildSpecificationLockContractCode(String contractCode, String contractType, int lockBatchNo) { | ||
| 1486 | + if (!isOpenSpecContract(contractType) || StringUtils.isBlank(contractCode)) { | ||
| 1487 | + return contractCode; | ||
| 1488 | + } | ||
| 1489 | + | ||
| 1490 | + String normalizedCode = contractCode.replaceFirst("_[0-9]{2}$", ""); | ||
| 1491 | + return normalizedCode + "_" + String.format("%02d", lockBatchNo); | ||
| 1492 | + } | ||
| 1493 | + | ||
| 1494 | + private boolean isOpenSpecContract(String contractType) { | ||
| 1495 | + return "DRAFT_DIST_AGMT".equals(contractType) || "INTL_OPEN_SPEC_AGMT".equals(contractType); | ||
| 1496 | + } | ||
| 1497 | + | ||
| 1482 | public List<String> getNoContractSigned(List<String> buyerList) { | 1498 | public List<String> getNoContractSigned(List<String> buyerList) { |
| 1483 | return getBaseMapper().getNoContractSigned(buyerList); | 1499 | return getBaseMapper().getNoContractSigned(buyerList); |
| 1484 | } | 1500 | } |
| @@ -95,5 +95,11 @@ public class QueryContractDistributorStandardVo extends PageVo implements BaseVo | @@ -95,5 +95,11 @@ public class QueryContractDistributorStandardVo extends PageVo implements BaseVo | ||
| 95 | @ApiModelProperty("生产厂ID集合") | 95 | @ApiModelProperty("生产厂ID集合") |
| 96 | private List<String> workshopIdList; | 96 | private List<String> workshopIdList; |
| 97 | 97 | ||
| 98 | + @ApiModelProperty("锁规状态:UNLOCKED-未锁规,PARTIAL-部分锁规,LOCKED-已锁规") | ||
| 99 | + private String specLockStatus; | ||
| 100 | + | ||
| 101 | + @ApiModelProperty("锁价状态:UNLOCKED-未锁价,LOCKED-已锁价") | ||
| 102 | + private String lockedPriceStatus; | ||
| 103 | + | ||
| 98 | } | 104 | } |
| 99 | 105 |
| @@ -195,6 +195,41 @@ | @@ -195,6 +195,41 @@ | ||
| 195 | #{item} | 195 | #{item} |
| 196 | </foreach> | 196 | </foreach> |
| 197 | </if> | 197 | </if> |
| 198 | + <if test="vo.specLockStatus != null and vo.specLockStatus != ''"> | ||
| 199 | + AND tb.type IN ('DRAFT_DIST_AGMT', 'INTL_OPEN_SPEC_AGMT') | ||
| 200 | + <choose> | ||
| 201 | + <when test="vo.specLockStatus == 'UNLOCKED'"> | ||
| 202 | + AND (tb.price_spec_locked = 0 OR tb.price_spec_locked IS NULL) | ||
| 203 | + AND NOT EXISTS ( | ||
| 204 | + SELECT 1 | ||
| 205 | + FROM tbl_contract_distributor_standard child | ||
| 206 | + WHERE child.parent_id = tb.id | ||
| 207 | + ) | ||
| 208 | + </when> | ||
| 209 | + <when test="vo.specLockStatus == 'PARTIAL'"> | ||
| 210 | + AND (tb.price_spec_locked = 0 OR tb.price_spec_locked IS NULL) | ||
| 211 | + AND EXISTS ( | ||
| 212 | + SELECT 1 | ||
| 213 | + FROM tbl_contract_distributor_standard child | ||
| 214 | + WHERE child.parent_id = tb.id | ||
| 215 | + ) | ||
| 216 | + </when> | ||
| 217 | + <when test="vo.specLockStatus == 'LOCKED'"> | ||
| 218 | + AND tb.price_spec_locked = 1 | ||
| 219 | + </when> | ||
| 220 | + </choose> | ||
| 221 | + </if> | ||
| 222 | + <if test="vo.lockedPriceStatus != null and vo.lockedPriceStatus != ''"> | ||
| 223 | + AND tb.type IN ('DIST_STOCK_CONTRACT', 'INTL_INVENTORY_AGMT') | ||
| 224 | + <choose> | ||
| 225 | + <when test="vo.lockedPriceStatus == 'LOCKED'"> | ||
| 226 | + AND tb.price_spec_locked = 1 | ||
| 227 | + </when> | ||
| 228 | + <when test="vo.lockedPriceStatus == 'UNLOCKED'"> | ||
| 229 | + AND (tb.price_spec_locked = 0 OR tb.price_spec_locked IS NULL) | ||
| 230 | + </when> | ||
| 231 | + </choose> | ||
| 232 | + </if> | ||
| 198 | <if test="vo.createById != null and vo.createById != ''"> | 233 | <if test="vo.createById != null and vo.createById != ''"> |
| 199 | AND tb.create_by_id = #{vo.createById} | 234 | AND tb.create_by_id = #{vo.createById} |
| 200 | </if> | 235 | </if> |