Commit de5cf25ab50843ddc79f68c41dd4c02be4989b92

Authored by 房远帅
2 parents 948ba24b 77ec2cf9

Merge branch 'master_after0506_tmp' into master_after0506

1 package com.lframework.xingyun.sc.bo.contract; 1 package com.lframework.xingyun.sc.bo.contract;
2 2
  3 +import com.baomidou.mybatisplus.annotation.TableField;
3 import com.fasterxml.jackson.annotation.JsonFormat; 4 import com.fasterxml.jackson.annotation.JsonFormat;
4 import com.lframework.starter.common.constants.StringPool; 5 import com.lframework.starter.common.constants.StringPool;
5 import com.lframework.starter.web.core.bo.BaseBo; 6 import com.lframework.starter.web.core.bo.BaseBo;
@@ -480,6 +481,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor @@ -480,6 +481,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor
480 private Boolean canSplit; 481 private Boolean canSplit;
481 482
482 /** 483 /**
  484 + * 是否可锁价
  485 + */
  486 + @ApiModelProperty(value = "是否可锁价")
  487 + private Boolean canPriceLock;
  488 +
  489 + /**
483 * 创建人 490 * 创建人
484 */ 491 */
485 @ApiModelProperty(value = "创建人") 492 @ApiModelProperty(value = "创建人")
@@ -240,6 +240,12 @@ public class QueryContractDistributorStandardBo extends BaseBo<ContractDistribut @@ -240,6 +240,12 @@ public class QueryContractDistributorStandardBo extends BaseBo<ContractDistribut
240 @ApiModelProperty(value = "是否可拆分") 240 @ApiModelProperty(value = "是否可拆分")
241 private Boolean canSplit; 241 private Boolean canSplit;
242 242
  243 + /**
  244 + * 是否可锁价
  245 + */
  246 + @ApiModelProperty(value = "是否可锁价")
  247 + private Boolean canPriceLock;
  248 +
243 249
244 public QueryContractDistributorStandardBo() { 250 public QueryContractDistributorStandardBo() {
245 251
@@ -266,6 +266,11 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> { @@ -266,6 +266,11 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> {
266 @ApiModelProperty("合同类型") 266 @ApiModelProperty("合同类型")
267 private String contractType; 267 private String contractType;
268 268
  269 + /**
  270 + * 订货单状态
  271 + */
  272 + @ApiModelProperty("订货单状态")
  273 + private String status;
269 274
270 public OrderChangeRecordBo() { 275 public OrderChangeRecordBo() {
271 276
@@ -107,6 +107,7 @@ public class OrderChangeRecordController extends DefaultBaseController { @@ -107,6 +107,7 @@ public class OrderChangeRecordController extends DefaultBaseController {
107 result.setContractType(contractDistributorStandard.getType()); 107 result.setContractType(contractDistributorStandard.getType());
108 } 108 }
109 } 109 }
  110 + result.setStatus(purchaseOrderInfo.getStatus());
110 } 111 }
111 112
112 return InvokeResultBuilder.success(result); 113 return InvokeResultBuilder.success(result);
@@ -442,9 +443,17 @@ public class OrderChangeRecordController extends DefaultBaseController { @@ -442,9 +443,17 @@ public class OrderChangeRecordController extends DefaultBaseController {
442 return true; 443 return true;
443 } 444 }
444 return "UPDATE".equals(line.getType()) && (line.getBrandChange() 445 return "UPDATE".equals(line.getType()) && (line.getBrandChange()
  446 + || line.getIndustryChange()
  447 + || line.getQualityChange()
445 || line.getLengthChange() 448 || line.getLengthChange()
  449 + || line.getLengthTolNegChange()
  450 + || line.getLengthTolPosChange()
446 || line.getWidthChange() 451 || line.getWidthChange()
  452 + || line.getWidthTolNegChange()
  453 + || line.getWidthTolPosChange()
447 || line.getThicknessChange() 454 || line.getThicknessChange()
  455 + || line.getThicknessTolNegChange()
  456 + || line.getThicknessTolPosChange()
448 || line.getStatusChange() 457 || line.getStatusChange()
449 || line.getQuantityChange() 458 || line.getQuantityChange()
450 || line.getSalesPriceChange() 459 || line.getSalesPriceChange()
@@ -369,6 +369,12 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto { @@ -369,6 +369,12 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto {
369 private Boolean canSplit; 369 private Boolean canSplit;
370 370
371 /** 371 /**
  372 + * 是否可锁价
  373 + */
  374 + @TableField(exist = false)
  375 + private Boolean canPriceLock;
  376 +
  377 + /**
372 * 剩余锁规数量 378 * 剩余锁规数量
373 */ 379 */
374 @TableField(exist = false) 380 @TableField(exist = false)
@@ -219,6 +219,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -219,6 +219,7 @@ public class ContractDistributorStandardServiceImpl extends
219 219
220 List<ContractDistributorStandard> datas = getBaseMapper().query(vo); 220 List<ContractDistributorStandard> datas = getBaseMapper().query(vo);
221 CollectionUtils.emptyIfNull(datas).forEach(data -> data.setCanSplit(isCanSplit(data))); 221 CollectionUtils.emptyIfNull(datas).forEach(data -> data.setCanSplit(isCanSplit(data)));
  222 + fillCanPriceLock(datas);
222 return datas; 223 return datas;
223 } 224 }
224 225
@@ -239,6 +240,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -239,6 +240,7 @@ public class ContractDistributorStandardServiceImpl extends
239 } 240 }
240 data.setCanEdit(canEdit); 241 data.setCanEdit(canEdit);
241 fillRemainingQuantity(data); 242 fillRemainingQuantity(data);
  243 + fillCanPriceLock(data);
242 244
243 // 获取当前人员的待办任务数据 245 // 获取当前人员的待办任务数据
244 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 246 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
@@ -308,6 +310,73 @@ public class ContractDistributorStandardServiceImpl extends @@ -308,6 +310,73 @@ public class ContractDistributorStandardServiceImpl extends
308 return true; 310 return true;
309 } 311 }
310 312
  313 + /**
  314 + * 批量回填是否可锁价
  315 + *
  316 + * @param datas 合同列表
  317 + */
  318 + private void fillCanPriceLock(List<ContractDistributorStandard> datas) {
  319 + if (CollectionUtils.isEmpty(datas)) {
  320 + return;
  321 + }
  322 +
  323 + List<ContractDistributorStandard> inventoryContracts = CollectionUtils.emptyIfNull(datas).stream()
  324 + .filter(Objects::nonNull)
  325 + .filter(this::isInventoryContract)
  326 + .collect(Collectors.toList());
  327 + if (CollectionUtils.isEmpty(inventoryContracts)) {
  328 + CollectionUtils.emptyIfNull(datas).stream()
  329 + .filter(Objects::nonNull)
  330 + .forEach(data -> data.setCanPriceLock(false));
  331 + return;
  332 + }
  333 +
  334 + CollectionUtils.emptyIfNull(datas).stream()
  335 + .filter(Objects::nonNull)
  336 + .forEach(data -> data.setCanPriceLock(
  337 + isCanPriceLock(data)));
  338 + }
  339 +
  340 + /**
  341 + * 回填是否可锁价
  342 + *
  343 + * @param data 合同
  344 + */
  345 + private void fillCanPriceLock(ContractDistributorStandard data) {
  346 + if (data == null || StringUtils.isBlank(data.getId())) {
  347 + return;
  348 + }
  349 +
  350 + data.setCanPriceLock(isCanPriceLock(data));
  351 + }
  352 +
  353 + /**
  354 + * 判断是否可锁价
  355 + *
  356 + * @param data 合同
  357 + * @return 是否可锁价
  358 + */
  359 + private boolean isCanPriceLock(ContractDistributorStandard data) {
  360 + if (!isInventoryContract(data)) {
  361 + return false;
  362 + }
  363 + if (Boolean.TRUE.equals(data.getPriceSpecLocked())) {
  364 + return false;
  365 + }
  366 + return true;
  367 + }
  368 +
  369 + /**
  370 + * 判断是否为库存合同
  371 + *
  372 + * @param data 合同
  373 + * @return 是否为库存合同
  374 + */
  375 + private boolean isInventoryContract(ContractDistributorStandard data) {
  376 + return data != null && ("DIST_STOCK_CONTRACT".equals(data.getType())
  377 + || "INTL_INVENTORY_AGMT".equals(data.getType()));
  378 + }
  379 +
311 @OpLog(type = OtherOpLogType.class, name = "新增合同,ID:{}", params = {"#id"}) 380 @OpLog(type = OtherOpLogType.class, name = "新增合同,ID:{}", params = {"#id"})
312 @Transactional(rollbackFor = Exception.class) 381 @Transactional(rollbackFor = Exception.class)
313 @Override 382 @Override
@@ -409,6 +409,7 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -409,6 +409,7 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
409 List<PurchaseOrderLine> afterChangeSpecList = record.getAfterChangeSpecList(); 409 List<PurchaseOrderLine> afterChangeSpecList = record.getAfterChangeSpecList();
410 if (CollectionUtils.isNotEmpty(afterChangeSpecList)) { 410 if (CollectionUtils.isNotEmpty(afterChangeSpecList)) {
411 orderInfo.setStockUpCompanyName(purchaseOrderInfo.getStockUpCompanyName()); 411 orderInfo.setStockUpCompanyName(purchaseOrderInfo.getStockUpCompanyName());
  412 + orderInfo.setType(purchaseOrderInfo.getType());
412 for (PurchaseOrderLine line : afterChangeSpecList) { 413 for (PurchaseOrderLine line : afterChangeSpecList) {
413 createOrderDetailReport(line, orderDetailReport, orderInfo, standard, null 414 createOrderDetailReport(line, orderDetailReport, orderInfo, standard, null
414 , purchaseOrderInfo.getContractCreateById()); 415 , purchaseOrderInfo.getContractCreateById());
@@ -514,6 +515,7 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -514,6 +515,7 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
514 PurchaseOrderInfo orderInfo, ContractDistributorStandard standard, String type1, 515 PurchaseOrderInfo orderInfo, ContractDistributorStandard standard, String type1,
515 String contractCreateById) { 516 String contractCreateById) {
516 CreateOrderDetailReportVo vo = new CreateOrderDetailReportVo(); 517 CreateOrderDetailReportVo vo = new CreateOrderDetailReportVo();
  518 + vo.setOrderingUnitName(orderDetailReport.getOrderingUnitName());
517 if ("offset".equals(type1)) { 519 if ("offset".equals(type1)) {
518 vo.setPurchaseOrderLineId(line.getId()); 520 vo.setPurchaseOrderLineId(line.getId());
519 vo.setQuantity(line.getQuantity().negate()); 521 vo.setQuantity(line.getQuantity().negate());
@@ -524,13 +526,13 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -524,13 +526,13 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
524 vo.setPurchaseOrderLineId(line.getId()); 526 vo.setPurchaseOrderLineId(line.getId());
525 } 527 }
526 vo.setQuantity(line.getQuantity()); 528 vo.setQuantity(line.getQuantity());
  529 + vo.setOrderingUnitName(orderInfo.getOrderingUnitName());
527 } 530 }
528 vo.setOrderNo(orderDetailReport.getOrderNo()); 531 vo.setOrderNo(orderDetailReport.getOrderNo());
529 vo.setOrderDate(orderDetailReport.getOrderDate()); 532 vo.setOrderDate(orderDetailReport.getOrderDate());
530 vo.setWorkshopId(orderDetailReport.getWorkshopId()); 533 vo.setWorkshopId(orderDetailReport.getWorkshopId());
531 vo.setDeptName(orderDetailReport.getDeptName()); 534 vo.setDeptName(orderDetailReport.getDeptName());
532 vo.setRegionName(orderDetailReport.getRegionName()); 535 vo.setRegionName(orderDetailReport.getRegionName());
533 - vo.setOrderingUnitName(orderDetailReport.getOrderingUnitName());  
534 vo.setIndustry(line.getIndustry()); 536 vo.setIndustry(line.getIndustry());
535 vo.setBrand(line.getBrand()); 537 vo.setBrand(line.getBrand());
536 vo.setThickness(line.getThickness()); 538 vo.setThickness(line.getThickness());