Commit 6811acb236bbf0ea9e3e0625e06e3b64f410aa8d

Authored by 房远帅
1 parent 02f3e856

经销、外贸、加工标准合同:办事处内勤审核过程中可修改合同、驳回业务员可修改,办事处内勤审核通过生成订货单,后续节点驳回后只能修改规范性文件,其它不可再修改

@@ -455,6 +455,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor @@ -455,6 +455,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor
455 @ApiModelProperty(value = "合同状态") 455 @ApiModelProperty(value = "合同状态")
456 private String shippingStatusName; 456 private String shippingStatusName;
457 457
  458 + /**
  459 + * 是否可修改(订货单生成以后,就只能修改规范性文件)
  460 + */
  461 + @ApiModelProperty(value = "是否可修改")
  462 + private Boolean canEdit;
  463 +
458 public GetContractDistributorStandardBo() { 464 public GetContractDistributorStandardBo() {
459 465
460 } 466 }
@@ -345,4 +345,10 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto { @@ -345,4 +345,10 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto {
345 */ 345 */
346 @TableField(exist = false) 346 @TableField(exist = false)
347 private Boolean standardShowExamine; 347 private Boolean standardShowExamine;
  348 +
  349 + /**
  350 + * 是否可修改(订货单生成以后,就只能修改规范性文件)
  351 + */
  352 + @TableField(exist = false)
  353 + private Boolean canEdit;
348 } 354 }
@@ -227,6 +227,14 @@ public class ContractDistributorStandardServiceImpl extends @@ -227,6 +227,14 @@ public class ContractDistributorStandardServiceImpl extends
227 if (data == null) { 227 if (data == null) {
228 return null; 228 return null;
229 } 229 }
  230 + Wrapper<PurchaseOrderInfo> orderInfoWrapper = Wrappers.lambdaQuery(PurchaseOrderInfo.class)
  231 + .eq(PurchaseOrderInfo::getContractId, data.getId());
  232 + List<PurchaseOrderInfo> purchaseOrderInfoList = purchaseOrderInfoService.list(orderInfoWrapper);
  233 + Boolean canEdit = false;
  234 + if (CollectionUtils.isEmpty(purchaseOrderInfoList)) {
  235 + canEdit = true;
  236 + }
  237 + data.setCanEdit(canEdit);
230 238
231 // 获取当前人员的待办任务数据 239 // 获取当前人员的待办任务数据
232 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 240 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
@@ -436,6 +444,8 @@ public class ContractDistributorStandardServiceImpl extends @@ -436,6 +444,8 @@ public class ContractDistributorStandardServiceImpl extends
436 .set(ContractDistributorStandard::getType, vo.getType()) 444 .set(ContractDistributorStandard::getType, vo.getType())
437 .set(ContractDistributorStandard::getParentId, vo.getParentId()) 445 .set(ContractDistributorStandard::getParentId, vo.getParentId())
438 .set(ContractDistributorStandard::getTitle, vo.getTitle()) 446 .set(ContractDistributorStandard::getTitle, vo.getTitle())
  447 + .set(ContractDistributorStandard::getStandardFileId, vo.getStandardFileId())
  448 + .set(ContractDistributorStandard::getStandardFileName, vo.getStandardFileName())
439 .eq(ContractDistributorStandard::getId, vo.getId()); 449 .eq(ContractDistributorStandard::getId, vo.getId());
440 450
441 getBaseMapper().update(updateWrapper); 451 getBaseMapper().update(updateWrapper);
@@ -668,7 +678,9 @@ public class ContractDistributorStandardServiceImpl extends @@ -668,7 +678,9 @@ public class ContractDistributorStandardServiceImpl extends
668 * 678 *
669 * @param contractDistributorStandard 679 * @param contractDistributorStandard
670 */ 680 */
671 - private void createPurchaseOrderInfo(ContractDistributorStandard contractDistributorStandard, String type) { 681 + @Transactional(rollbackFor = Exception.class)
  682 + @Override
  683 + public void createPurchaseOrderInfo(ContractDistributorStandard contractDistributorStandard, String type) {
672 Wrapper<PurchaseOrderInfo> orderInfoWrapper = Wrappers.lambdaQuery(PurchaseOrderInfo.class) 684 Wrapper<PurchaseOrderInfo> orderInfoWrapper = Wrappers.lambdaQuery(PurchaseOrderInfo.class)
673 .eq(PurchaseOrderInfo::getContractId, contractDistributorStandard.getId()); 685 .eq(PurchaseOrderInfo::getContractId, contractDistributorStandard.getId());
674 List<PurchaseOrderInfo> purchaseOrderInfoList = purchaseOrderInfoService.list(orderInfoWrapper); 686 List<PurchaseOrderInfo> purchaseOrderInfoList = purchaseOrderInfoService.list(orderInfoWrapper);
@@ -796,6 +808,40 @@ public class ContractDistributorStandardServiceImpl extends @@ -796,6 +808,40 @@ public class ContractDistributorStandardServiceImpl extends
796 808
797 809
798 LambdaUpdateWrapper<ContractDistributorStandard> updateWrapper = Wrappers.lambdaUpdate(ContractDistributorStandard.class) 810 LambdaUpdateWrapper<ContractDistributorStandard> updateWrapper = Wrappers.lambdaUpdate(ContractDistributorStandard.class)
  811 + .set(ContractDistributorStandard::getCode, vo.getCode())
  812 + .set(ContractDistributorStandard::getSupplier, vo.getSupplier())
  813 + .set(ContractDistributorStandard::getBuyer, vo.getBuyer())
  814 + .set(vo.getDeptId() != null, ContractDistributorStandard::getDeptId, vo.getDeptId())
  815 + .set(vo.getRegion() != null, ContractDistributorStandard::getRegion, vo.getRegion())
  816 + .set(vo.getStockUpCompanyId() != null, ContractDistributorStandard::getStockUpCompanyId, vo.getStockUpCompanyId())
  817 + .set(ContractDistributorStandard::getOrderDate, vo.getOrderDate())
  818 + .set(ContractDistributorStandard::getUnit, vo.getUnit())
  819 + .set(ContractDistributorStandard::getWorkshopId, vo.getWorkshopId())
  820 + .set(ContractDistributorStandard::getTotalAmountCapital, vo.getTotalAmountCapital())
  821 + .set(ContractDistributorStandard::getDepositInfo, vo.getDepositInfo())
  822 + .set(ContractDistributorStandard::getPackagingRequirements, vo.getPackagingRequirements())
  823 + .set(ContractDistributorStandard::getPaymentTerms, vo.getPaymentTerms())
  824 + .set(ContractDistributorStandard::getExecutionStandard, vo.getExecutionStandard())
  825 + .set(ContractDistributorStandard::getExecutionStandardRemarks, vo.getExecutionStandardRemarks())
  826 + .set(ContractDistributorStandard::getTransportMode, vo.getTransportMode())
  827 + .set(ContractDistributorStandard::getDestination, vo.getDestination())
  828 + .set(ContractDistributorStandard::getIncludesPackagingFee, vo.getIncludesPackagingFee())
  829 + .set(ContractDistributorStandard::getIncludesTransportFee, vo.getIncludesTransportFee())
  830 + .set(ContractDistributorStandard::getPieceWeightHead, vo.getPieceWeightHead())
  831 + .set(ContractDistributorStandard::getSurface, vo.getSurface())
  832 + .set(ContractDistributorStandard::getTolerance, vo.getTolerance())
  833 + .set(ContractDistributorStandard::getPerformance, vo.getPerformance())
  834 + .set(ContractDistributorStandard::getComponent, vo.getComponent())
  835 + .set(ContractDistributorStandard::getPackaging, vo.getPackaging())
  836 + .set(ContractDistributorStandard::getSpecialTerms, vo.getSpecialTerms())
  837 + .set(ContractDistributorStandard::getDesignatedConsignee, vo.getDesignatedConsignee())
  838 + .set(ContractDistributorStandard::getSpecialInstructions, vo.getSpecialInstructions())
  839 + .set(ContractDistributorStandard::getRemarks, vo.getRemarks())
  840 + .set(ContractDistributorStandard::getTotalAmountExcludingTax, vo.getTotalAmountExcludingTax())
  841 + .set(ContractDistributorStandard::getTotalAmountIncludingTax, vo.getTotalAmountIncludingTax())
  842 + .set(ContractDistributorStandard::getTotalQuantity, vo.getTotalQuantity())
  843 + .set(ContractDistributorStandard::getType, vo.getType())
  844 + .set(ContractDistributorStandard::getParentId, vo.getParentId())
799 .set(ContractDistributorStandard::getStandardFileId, vo.getStandardFileId()) 845 .set(ContractDistributorStandard::getStandardFileId, vo.getStandardFileId())
800 .set(ContractDistributorStandard::getStandardFileName, vo.getStandardFileName()) 846 .set(ContractDistributorStandard::getStandardFileName, vo.getStandardFileName())
801 .set(ContractDistributorStandard::getStandardStandardized, vo.getStandardStandardized()) 847 .set(ContractDistributorStandard::getStandardStandardized, vo.getStandardStandardized())
@@ -818,16 +864,31 @@ public class ContractDistributorStandardServiceImpl extends @@ -818,16 +864,31 @@ public class ContractDistributorStandardServiceImpl extends
818 data.setStandardFileId(vo.getStandardFileId()); 864 data.setStandardFileId(vo.getStandardFileId());
819 data.setStandardFileName(vo.getStandardFileName()); 865 data.setStandardFileName(vo.getStandardFileName());
820 data.setStandardStandardized(vo.getStandardStandardized()); 866 data.setStandardStandardized(vo.getStandardStandardized());
  867 + if ("PROCESS_STD_AGMT".equals(data.getType())) {
  868 + dealWithStdProcessingLine(data, vo);
  869 + } else {
  870 + dealWithDistributorLine(data, vo);
  871 + }
821 872
  873 + //查询更新后数据
  874 + ContractDistributorStandard data1 = getBaseMapper().selectById(vo.getId());
  875 + Wrapper<PurchaseOrderInfo> orderInfoWrapper = Wrappers.lambdaQuery(PurchaseOrderInfo.class)
  876 + .eq(PurchaseOrderInfo::getContractId, data.getId());
  877 + List<PurchaseOrderInfo> purchaseOrderInfoList = purchaseOrderInfoService.list(orderInfoWrapper);
  878 + Boolean canEdit = false;
  879 + if (CollectionUtils.isEmpty(purchaseOrderInfoList)) {
  880 + canEdit = true;
  881 + }
  882 + data1.setCanEdit(canEdit);
822 // 开启审核 883 // 开启审核
823 - flowInstanceWrapperService.startInstance(STANDARD_FLAG, data.getId(), STANDARD_FLAG, data); 884 + flowInstanceWrapperService.startInstance(STANDARD_FLAG, data.getId(), STANDARD_FLAG, data1);
824 885
825 - if ("DISTRIB_STD".equals(data.getType())  
826 - || "INTL_STD_CONTRACT".equals(data.getType())  
827 - || "PROCESS_STD_AGMT".equals(data.getType())) {  
828 - // 创建订货单  
829 - createPurchaseOrderInfo(data, "PRODUCTION");  
830 - } 886 +// if ("DISTRIB_STD".equals(data.getType())
  887 +// || "INTL_STD_CONTRACT".equals(data.getType())
  888 +// || "PROCESS_STD_AGMT".equals(data.getType())) {
  889 +// // 创建订货单
  890 +// createPurchaseOrderInfo(data, "PRODUCTION");
  891 +// }
831 } 892 }
832 893
833 @OpLog(type = OtherOpLogType.class, name = "上传双方盖章合同附件,ID:{}", params = {"#id"}) 894 @OpLog(type = OtherOpLogType.class, name = "上传双方盖章合同附件,ID:{}", params = {"#id"})
@@ -13,15 +13,18 @@ import com.lframework.starter.web.core.utils.JsonUtil; @@ -13,15 +13,18 @@ import com.lframework.starter.web.core.utils.JsonUtil;
13 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; 13 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
14 import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto; 14 import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto;
15 import com.lframework.starter.web.inner.service.system.SysUserRoleService; 15 import com.lframework.starter.web.inner.service.system.SysUserRoleService;
  16 +import com.lframework.xingyun.sc.entity.ContractDistributorStandard;
16 import com.lframework.xingyun.sc.entity.FundCoordination; 17 import com.lframework.xingyun.sc.entity.FundCoordination;
17 import com.lframework.xingyun.sc.entity.ProductSampleConfirmationSlip; 18 import com.lframework.xingyun.sc.entity.ProductSampleConfirmationSlip;
18 import com.lframework.xingyun.sc.handlers.TransactorHandler; 19 import com.lframework.xingyun.sc.handlers.TransactorHandler;
  20 +import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
19 import com.lframework.xingyun.sc.service.customer.CustomerCreditService; 21 import com.lframework.xingyun.sc.service.customer.CustomerCreditService;
20 import com.lframework.xingyun.sc.service.ledger.FundCoordinationService; 22 import com.lframework.xingyun.sc.service.ledger.FundCoordinationService;
21 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; 23 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
22 import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService; 24 import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService;
23 import com.lframework.xingyun.sc.service.sample.ProductSampleConfirmationSlipService; 25 import com.lframework.xingyun.sc.service.sample.ProductSampleConfirmationSlipService;
24 import com.lframework.xingyun.sc.service.sample.SampleResultTrackingService; 26 import com.lframework.xingyun.sc.service.sample.SampleResultTrackingService;
  27 +import com.lframework.xingyun.sc.vo.contract.updateVo.UpdateContractDistributorStandardVo;
25 import com.lframework.xingyun.sc.vo.customer.credit.*; 28 import com.lframework.xingyun.sc.vo.customer.credit.*;
26 import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderInfoVo; 29 import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderInfoVo;
27 import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo; 30 import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo;
@@ -54,6 +57,8 @@ public class FlowTaskServiceImpl implements FlowTaskService { @@ -54,6 +57,8 @@ public class FlowTaskServiceImpl implements FlowTaskService {
54 private ProductSampleConfirmationSlipService productSampleConfirmationSlipService; 57 private ProductSampleConfirmationSlipService productSampleConfirmationSlipService;
55 @Resource 58 @Resource
56 private SampleResultTrackingService sampleResultTrackingService; 59 private SampleResultTrackingService sampleResultTrackingService;
  60 + @Resource
  61 + private ContractDistributorStandardService contractDistributorStandardService;
57 62
58 63
59 @OpLog(type = OtherOpLogType.class, name = "修改客户资信,ID:{}", params = {"#id"}) 64 @OpLog(type = OtherOpLogType.class, name = "修改客户资信,ID:{}", params = {"#id"})
@@ -75,6 +80,29 @@ public class FlowTaskServiceImpl implements FlowTaskService { @@ -75,6 +80,29 @@ public class FlowTaskServiceImpl implements FlowTaskService {
75 } 80 }
76 } 81 }
77 82
  83 + @OpLog(type = OtherOpLogType.class, name = "修改标准合同,ID:{}", params = {"#id"})
  84 + @Transactional(rollbackFor = Exception.class)
  85 + @Override
  86 + public void updateStandardContractByMap(Map<String, Object> map, String status) {
  87 + try {
  88 + // 创建 ObjectMapper 实例
  89 + ObjectMapper objectMapper = new ObjectMapper();
  90 + //先将 Map 序列化为 JSON 字符串,再反序列化为目标对象
  91 + String json = objectMapper.writeValueAsString(map);
  92 + UpdateContractDistributorStandardVo vo = JsonUtil.parseObject(json, UpdateContractDistributorStandardVo.class);
  93 + contractDistributorStandardService.update(vo);
  94 + if ("PASS".equals(status) && ("DISTRIB_STD".equals(vo.getType())
  95 + || "INTL_STD_CONTRACT".equals(vo.getType())
  96 + || "PROCESS_STD_AGMT".equals(vo.getType()))) {
  97 + ContractDistributorStandard data = contractDistributorStandardService.findById(vo.getId());
  98 + // 创建订货单
  99 + contractDistributorStandardService.createPurchaseOrderInfo(data, "PRODUCTION");
  100 + }
  101 + } catch (JsonProcessingException e) {
  102 + e.printStackTrace();
  103 + }
  104 + }
  105 +
78 @OpLog(type = OtherOpLogType.class, name = "修改订货单,ID:{}", params = {"#id"}) 106 @OpLog(type = OtherOpLogType.class, name = "修改订货单,ID:{}", params = {"#id"})
79 @Transactional(rollbackFor = Exception.class) 107 @Transactional(rollbackFor = Exception.class)
80 @Override 108 @Override
@@ -130,4 +130,9 @@ public interface ContractDistributorStandardService extends BaseMpService<Contra @@ -130,4 +130,9 @@ public interface ContractDistributorStandardService extends BaseMpService<Contra
130 * 订单变动后同步修改合同相关信息 130 * 订单变动后同步修改合同相关信息
131 */ 131 */
132 void orderUpdateContract(String orderId); 132 void orderUpdateContract(String orderId);
  133 +
  134 + /**
  135 + * 创建订货单
  136 + */
  137 + void createPurchaseOrderInfo(ContractDistributorStandard contractDistributorStandard, String type);
133 } 138 }