Commit 6811acb236bbf0ea9e3e0625e06e3b64f410aa8d

Authored by 房远帅
1 parent 02f3e856

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

... ... @@ -455,6 +455,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor
455 455 @ApiModelProperty(value = "合同状态")
456 456 private String shippingStatusName;
457 457
  458 + /**
  459 + * 是否可修改(订货单生成以后,就只能修改规范性文件)
  460 + */
  461 + @ApiModelProperty(value = "是否可修改")
  462 + private Boolean canEdit;
  463 +
458 464 public GetContractDistributorStandardBo() {
459 465
460 466 }
... ...
... ... @@ -345,4 +345,10 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto {
345 345 */
346 346 @TableField(exist = false)
347 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 227 if (data == null) {
228 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 240 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
... ... @@ -436,6 +444,8 @@ public class ContractDistributorStandardServiceImpl extends
436 444 .set(ContractDistributorStandard::getType, vo.getType())
437 445 .set(ContractDistributorStandard::getParentId, vo.getParentId())
438 446 .set(ContractDistributorStandard::getTitle, vo.getTitle())
  447 + .set(ContractDistributorStandard::getStandardFileId, vo.getStandardFileId())
  448 + .set(ContractDistributorStandard::getStandardFileName, vo.getStandardFileName())
439 449 .eq(ContractDistributorStandard::getId, vo.getId());
440 450
441 451 getBaseMapper().update(updateWrapper);
... ... @@ -668,7 +678,9 @@ public class ContractDistributorStandardServiceImpl extends
668 678 *
669 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 684 Wrapper<PurchaseOrderInfo> orderInfoWrapper = Wrappers.lambdaQuery(PurchaseOrderInfo.class)
673 685 .eq(PurchaseOrderInfo::getContractId, contractDistributorStandard.getId());
674 686 List<PurchaseOrderInfo> purchaseOrderInfoList = purchaseOrderInfoService.list(orderInfoWrapper);
... ... @@ -796,6 +808,40 @@ public class ContractDistributorStandardServiceImpl extends
796 808
797 809
798 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 845 .set(ContractDistributorStandard::getStandardFileId, vo.getStandardFileId())
800 846 .set(ContractDistributorStandard::getStandardFileName, vo.getStandardFileName())
801 847 .set(ContractDistributorStandard::getStandardStandardized, vo.getStandardStandardized())
... ... @@ -818,16 +864,31 @@ public class ContractDistributorStandardServiceImpl extends
818 864 data.setStandardFileId(vo.getStandardFileId());
819 865 data.setStandardFileName(vo.getStandardFileName());
820 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 894 @OpLog(type = OtherOpLogType.class, name = "上传双方盖章合同附件,ID:{}", params = {"#id"})
... ...
... ... @@ -13,15 +13,18 @@ import com.lframework.starter.web.core.utils.JsonUtil;
13 13 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
14 14 import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto;
15 15 import com.lframework.starter.web.inner.service.system.SysUserRoleService;
  16 +import com.lframework.xingyun.sc.entity.ContractDistributorStandard;
16 17 import com.lframework.xingyun.sc.entity.FundCoordination;
17 18 import com.lframework.xingyun.sc.entity.ProductSampleConfirmationSlip;
18 19 import com.lframework.xingyun.sc.handlers.TransactorHandler;
  20 +import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
19 21 import com.lframework.xingyun.sc.service.customer.CustomerCreditService;
20 22 import com.lframework.xingyun.sc.service.ledger.FundCoordinationService;
21 23 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
22 24 import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService;
23 25 import com.lframework.xingyun.sc.service.sample.ProductSampleConfirmationSlipService;
24 26 import com.lframework.xingyun.sc.service.sample.SampleResultTrackingService;
  27 +import com.lframework.xingyun.sc.vo.contract.updateVo.UpdateContractDistributorStandardVo;
25 28 import com.lframework.xingyun.sc.vo.customer.credit.*;
26 29 import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderInfoVo;
27 30 import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo;
... ... @@ -54,6 +57,8 @@ public class FlowTaskServiceImpl implements FlowTaskService {
54 57 private ProductSampleConfirmationSlipService productSampleConfirmationSlipService;
55 58 @Resource
56 59 private SampleResultTrackingService sampleResultTrackingService;
  60 + @Resource
  61 + private ContractDistributorStandardService contractDistributorStandardService;
57 62
58 63
59 64 @OpLog(type = OtherOpLogType.class, name = "修改客户资信,ID:{}", params = {"#id"})
... ... @@ -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 106 @OpLog(type = OtherOpLogType.class, name = "修改订货单,ID:{}", params = {"#id"})
79 107 @Transactional(rollbackFor = Exception.class)
80 108 @Override
... ...
... ... @@ -130,4 +130,9 @@ public interface ContractDistributorStandardService extends BaseMpService<Contra
130 130 * 订单变动后同步修改合同相关信息
131 131 */
132 132 void orderUpdateContract(String orderId);
  133 +
  134 + /**
  135 + * 创建订货单
  136 + */
  137 + void createPurchaseOrderInfo(ContractDistributorStandard contractDistributorStandard, String type);
133 138 }
... ...