Commit f7d0906c5793be4c42d37dca65b01f7f2643505f

Authored by 房远帅
2 parents bb79861b 23f5f6ac

Merge branch 'master_after0506' into mater_procurement

@@ -1191,19 +1191,19 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -1191,19 +1191,19 @@ public class ContractDistributorStandardController extends DefaultBaseController
1191 1191
1192 setCellValue(sheet, startRow, 6, line.getMaterialCode()); 1192 setCellValue(sheet, startRow, 6, line.getMaterialCode());
1193 setCellValue(sheet, startRow, 7, line.getStatus()); 1193 setCellValue(sheet, startRow, 7, line.getStatus());
1194 - setCellValue(sheet, startRow, 8, line.getQuantity()); 1194 + setCellValue(sheet, startRow, 8, line.getQuantity() == null ? "" : line.getQuantity().setScale(2, RoundingMode.HALF_UP).toString());
1195 1195
1196 if ("INTL_STD_CONTRACT".equals(data.getType()) 1196 if ("INTL_STD_CONTRACT".equals(data.getType())
1197 || "INTL_INVENTORY_AGMT".equals(data.getType()) 1197 || "INTL_INVENTORY_AGMT".equals(data.getType())
1198 || "INTL_OPEN_SPEC_AGMT".equals(data.getType())) { 1198 || "INTL_OPEN_SPEC_AGMT".equals(data.getType())) {
1199 - setCellValue(sheet, startRow, 10, line.getProcessingFee());  
1200 - setCellValue(sheet, startRow, 11, line.getUnitPrice()); 1199 + setCellValue(sheet, startRow, 10, line.getProcessingFee() == null ? "" : line.getProcessingFee().toString());
  1200 + setCellValue(sheet, startRow, 11, line.getUnitPrice() == null ? "" : line.getUnitPrice().toString());
1201 } else { 1201 } else {
1202 - setCellValue(sheet, startRow, 10, line.getUnitPrice());  
1203 - setCellValue(sheet, startRow, 11, line.getAmountExcludingTax()); 1202 + setCellValue(sheet, startRow, 10, line.getUnitPrice() == null ? "" : line.getUnitPrice().toString());
  1203 + setCellValue(sheet, startRow, 11, line.getAmountExcludingTax() == null ? "" : line.getAmountExcludingTax().toString());
1204 } 1204 }
1205 1205
1206 - setCellValue(sheet, startRow, 12, line.getTotalAmount()); 1206 + setCellValue(sheet, startRow, 12, line.getTotalAmount() == null ? "" : line.getTotalAmount().toString());
1207 setCellValue(sheet, startRow, 13, 1207 setCellValue(sheet, startRow, 13,
1208 line.getDeliveryDate() != null ? line.getDeliveryDate().format(dateFormatter) : ""); 1208 line.getDeliveryDate() != null ? line.getDeliveryDate().format(dateFormatter) : "");
1209 startRow++; 1209 startRow++;
@@ -1234,9 +1234,9 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -1234,9 +1234,9 @@ public class ContractDistributorStandardController extends DefaultBaseController
1234 } 1234 }
1235 setCellValue(sheet, startRow, 10, line.getMaterialCode()); 1235 setCellValue(sheet, startRow, 10, line.getMaterialCode());
1236 setCellValue(sheet, startRow, 11, line.getProductStatus()); 1236 setCellValue(sheet, startRow, 11, line.getProductStatus());
1237 - setCellValue(sheet, startRow, 12, line.getUnitPrice());  
1238 - setCellValue(sheet, startRow, 13, line.getAmountExcludingTax());  
1239 - setCellValue(sheet, startRow, 14, line.getTotalAmount()); 1237 + setCellValue(sheet, startRow, 12, line.getUnitPrice() == null ? "" : line.getUnitPrice().toString());
  1238 + setCellValue(sheet, startRow, 13, line.getAmountExcludingTax() == null ? "" : line.getAmountExcludingTax().toString());
  1239 + setCellValue(sheet, startRow, 14, line.getTotalAmount() == null ? "" : line.getTotalAmount().toString());
1240 setCellValue(sheet, startRow, 15, 1240 setCellValue(sheet, startRow, 15,
1241 line.getDeliveryDate() != null ? line.getDeliveryDate().format(dateFormatter) : ""); 1241 line.getDeliveryDate() != null ? line.getDeliveryDate().format(dateFormatter) : "");
1242 startRow++; 1242 startRow++;
@@ -1405,7 +1405,11 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -1405,7 +1405,11 @@ public class ContractDistributorStandardController extends DefaultBaseController
1405 if ("DEALER".equals(query.get(0).getEnterpriseType())) { 1405 if ("DEALER".equals(query.get(0).getEnterpriseType())) {
1406 dataMap.put("remarks", ""); 1406 dataMap.put("remarks", "");
1407 } else if ("TERMINAL".equals(query.get(0).getEnterpriseType())) { 1407 } else if ("TERMINAL".equals(query.get(0).getEnterpriseType())) {
1408 - dataMap.put("remarks", "10、贵司在我司的所有订货限于生产使用."); 1408 + if ("PROCESS_STD_AGMT".equals(data.getType())) {
  1409 + dataMap.put("remarks", "11、贵司在我司的所有订货限于生产使用.");
  1410 + } else {
  1411 + dataMap.put("remarks", "10、贵司在我司的所有订货限于生产使用.");
  1412 + }
1409 } else { 1413 } else {
1410 dataMap.put("remarks", ""); 1414 dataMap.put("remarks", "");
1411 } 1415 }
@@ -34,6 +34,7 @@ import com.lframework.starter.web.core.components.resp.PageResult; @@ -34,6 +34,7 @@ import com.lframework.starter.web.core.components.resp.PageResult;
34 import com.lframework.starter.common.utils.ObjectUtil; 34 import com.lframework.starter.common.utils.ObjectUtil;
35 import com.lframework.starter.common.utils.Assert; 35 import com.lframework.starter.common.utils.Assert;
36 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; 36 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
  37 +import com.lframework.xingyun.sc.handlers.TransactorHandler;
37 import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper; 38 import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper;
38 import com.lframework.xingyun.sc.service.contract.ContractDistributorLineService; 39 import com.lframework.xingyun.sc.service.contract.ContractDistributorLineService;
39 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; 40 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
@@ -107,6 +108,8 @@ public class ContractDistributorStandardServiceImpl extends @@ -107,6 +108,8 @@ public class ContractDistributorStandardServiceImpl extends
107 private SysUserDeptService sysUserDeptService; 108 private SysUserDeptService sysUserDeptService;
108 @Resource 109 @Resource
109 private PurchaseOrderLineService purchaseOrderLineService; 110 private PurchaseOrderLineService purchaseOrderLineService;
  111 + @Resource
  112 + private TransactorHandler transactorHandler;
110 113
111 @Override 114 @Override
112 public PageResult<ContractDistributorStandard> query(Integer pageIndex, Integer pageSize, QueryContractDistributorStandardVo vo) { 115 public PageResult<ContractDistributorStandard> query(Integer pageIndex, Integer pageSize, QueryContractDistributorStandardVo vo) {
@@ -1527,9 +1530,10 @@ public class ContractDistributorStandardServiceImpl extends @@ -1527,9 +1530,10 @@ public class ContractDistributorStandardServiceImpl extends
1527 @Override 1530 @Override
1528 public void supplementContractSpecReminder() { 1531 public void supplementContractSpecReminder() {
1529 Wrapper<ContractDistributorStandard> wrapper = Wrappers.lambdaQuery(ContractDistributorStandard.class) 1532 Wrapper<ContractDistributorStandard> wrapper = Wrappers.lambdaQuery(ContractDistributorStandard.class)
1530 - .in(ContractDistributorStandard::getFormalApproved, Arrays.asList("REFUSE", "CANCEL"))  
1531 - .or()  
1532 - .in(ContractDistributorStandard::getStandardApproved, Arrays.asList("REFUSE", "CANCEL")); 1533 + .and(w -> w.eq(ContractDistributorStandard::getStatus, "FORMAL")
  1534 + .in(ContractDistributorStandard::getFormalApproved, Arrays.asList("REFUSE", "CANCEL")))
  1535 + .or(w -> w.eq(ContractDistributorStandard::getStatus, "STANDARD")
  1536 + .in(ContractDistributorStandard::getStandardApproved, Arrays.asList("REFUSE", "CANCEL")));
1533 List<ContractDistributorStandard> contractDistributorStandardList = list(wrapper); 1537 List<ContractDistributorStandard> contractDistributorStandardList = list(wrapper);
1534 if (CollectionUtils.isEmpty(contractDistributorStandardList)) { 1538 if (CollectionUtils.isEmpty(contractDistributorStandardList)) {
1535 return; 1539 return;
@@ -1538,6 +1542,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -1538,6 +1542,7 @@ public class ContractDistributorStandardServiceImpl extends
1538 Set<String> workshopIds = contractDistributorStandardList 1542 Set<String> workshopIds = contractDistributorStandardList
1539 .stream() 1543 .stream()
1540 .map(ContractDistributorStandard::getWorkshopId) 1544 .map(ContractDistributorStandard::getWorkshopId)
  1545 + .filter(StringUtils::isNotBlank)
1541 .collect(Collectors.toSet()); 1546 .collect(Collectors.toSet());
1542 List<Workshop> workshopList = workshopService.listByIds(workshopIds); 1547 List<Workshop> workshopList = workshopService.listByIds(workshopIds);
1543 Map<String, String> workshopIdAndCodeMap = CollectionUtils.emptyIfNull(workshopList) 1548 Map<String, String> workshopIdAndCodeMap = CollectionUtils.emptyIfNull(workshopList)
@@ -1553,8 +1558,6 @@ public class ContractDistributorStandardServiceImpl extends @@ -1553,8 +1558,6 @@ public class ContractDistributorStandardServiceImpl extends
1553 jybzgCodeAndUserIdMap.put("efcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("efcjybzg"))); 1558 jybzgCodeAndUserIdMap.put("efcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("efcjybzg")));
1554 jybzgCodeAndUserIdMap.put("sfcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("sfcjybzg"))); 1559 jybzgCodeAndUserIdMap.put("sfcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("sfcjybzg")));
1555 jybzgCodeAndUserIdMap.put("ztcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("ztcjybzg"))); 1560 jybzgCodeAndUserIdMap.put("ztcjybzg", sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("ztcjybzg")));
1556 -  
1557 - List<String> bsczgUserIdList = sysUserRoleService.listUserIdByRoleCodes(Collections.singletonList("bsczg"));  
1558 contractDistributorStandardList.forEach(contractDistributorStandard -> { 1561 contractDistributorStandardList.forEach(contractDistributorStandard -> {
1559 try { 1562 try {
1560 StringBuilder stringBuilder = new StringBuilder("您的"); 1563 StringBuilder stringBuilder = new StringBuilder("您的");
@@ -1577,8 +1580,8 @@ public class ContractDistributorStandardServiceImpl extends @@ -1577,8 +1580,8 @@ public class ContractDistributorStandardServiceImpl extends
1577 stringBuilder.append("("); 1580 stringBuilder.append("(");
1578 LocalDate lastApprovedTime = LocalDate.now(); 1581 LocalDate lastApprovedTime = LocalDate.now();
1579 if ("FORMAL".equals(contractDistributorStandard.getStatus())) { 1582 if ("FORMAL".equals(contractDistributorStandard.getStatus())) {
1580 - if (!"REFUSE".equals(contractDistributorStandard.getFormalApproved())  
1581 - && !"CANCEL".equals(contractDistributorStandard.getFormalApproved())) { 1583 + if (!Arrays.asList("REFUSE", "CANCEL").contains(contractDistributorStandard.getFormalApproved())
  1584 + || contractDistributorStandard.getFormalTime() == null) {
1582 return; 1585 return;
1583 } 1586 }
1584 1587
@@ -1587,8 +1590,8 @@ public class ContractDistributorStandardServiceImpl extends @@ -1587,8 +1590,8 @@ public class ContractDistributorStandardServiceImpl extends
1587 } 1590 }
1588 1591
1589 if ("STANDARD".equals(contractDistributorStandard.getStatus())) { 1592 if ("STANDARD".equals(contractDistributorStandard.getStatus())) {
1590 - if (!"REFUSE".equals(contractDistributorStandard.getStandardApproved())  
1591 - && !"CANCEL".equals(contractDistributorStandard.getStandardApproved())) { 1593 + if (!Arrays.asList("REFUSE", "CANCEL").contains(contractDistributorStandard.getStandardApproved())
  1594 + || contractDistributorStandard.getStandardTime() == null) {
1592 return; 1595 return;
1593 } 1596 }
1594 1597
@@ -1598,22 +1601,32 @@ public class ContractDistributorStandardServiceImpl extends @@ -1598,22 +1601,32 @@ public class ContractDistributorStandardServiceImpl extends
1598 1601
1599 stringBuilder.append(",合同号:").append(contractDistributorStandard.getCode()); 1602 stringBuilder.append(",合同号:").append(contractDistributorStandard.getCode());
1600 stringBuilder.append(",请尽快补充规范合同。"); 1603 stringBuilder.append(",请尽快补充规范合同。");
1601 - List<String> userIdList = new ArrayList<>();  
1602 - userIdList.add(contractDistributorStandard.getCreateById()); 1604 + Set<String> userIdSet = new LinkedHashSet<>();
  1605 + if (StringUtils.isNotBlank(contractDistributorStandard.getCreateById())) {
  1606 + userIdSet.add(contractDistributorStandard.getCreateById());
  1607 + }
1603 1608
1604 LocalDate currentDate = LocalDate.now(); 1609 LocalDate currentDate = LocalDate.now();
1605 // 如果最后批准时间加3天还在当前时间之前,说明超过3天 1610 // 如果最后批准时间加3天还在当前时间之前,说明超过3天
1606 if (lastApprovedTime.plusDays(3).isBefore(currentDate)) { 1611 if (lastApprovedTime.plusDays(3).isBefore(currentDate)) {
  1612 + List<String> officeManagerIds = transactorHandler.listTransactorsByRoleCode("bsczg",
  1613 + contractDistributorStandard.getCreateById());
  1614 + if (CollectionUtils.isNotEmpty(officeManagerIds)) {
  1615 + userIdSet.addAll(officeManagerIds);
  1616 + }
1607 Optional.ofNullable(contractDistributorStandard.getWorkshopId()) 1617 Optional.ofNullable(contractDistributorStandard.getWorkshopId())
1608 .map(workshopIdAndCodeMap::get) 1618 .map(workshopIdAndCodeMap::get)
1609 .filter(StringUtils::isNotBlank) 1619 .filter(StringUtils::isNotBlank)
1610 .map(workshopCodeAndJybzgCodeMap::get) 1620 .map(workshopCodeAndJybzgCodeMap::get)
1611 .filter(StringUtils::isNotBlank) 1621 .filter(StringUtils::isNotBlank)
1612 .map(jybzgCodeAndUserIdMap::get) 1622 .map(jybzgCodeAndUserIdMap::get)
1613 - .ifPresent(userIdList::addAll); 1623 + .ifPresent(userIdSet::addAll);
  1624 + }
1614 1625
1615 - userIdList.addAll(bsczgUserIdList); 1626 + if (CollectionUtils.isEmpty(userIdSet)) {
  1627 + return;
1616 } 1628 }
  1629 + List<String> userIdList = new ArrayList<>(userIdSet);
1617 1630
1618 // 发送消息 1631 // 发送消息
1619 SysSiteMessageDto messageDto = new SysSiteMessageDto(); 1632 SysSiteMessageDto messageDto = new SysSiteMessageDto();
@@ -30,6 +30,7 @@ import com.lframework.xingyun.basedata.service.workshop.WorkshopService; @@ -30,6 +30,7 @@ import com.lframework.xingyun.basedata.service.workshop.WorkshopService;
30 import com.lframework.xingyun.sc.entity.ContractDistributorStandard; 30 import com.lframework.xingyun.sc.entity.ContractDistributorStandard;
31 import com.lframework.xingyun.sc.entity.SpecLockDelayApplication; 31 import com.lframework.xingyun.sc.entity.SpecLockDelayApplication;
32 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; 32 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
  33 +import com.lframework.xingyun.sc.handlers.TransactorHandler;
33 import com.lframework.xingyun.sc.mappers.SpecLockDelayApplicationMapper; 34 import com.lframework.xingyun.sc.mappers.SpecLockDelayApplicationMapper;
34 import com.lframework.xingyun.sc.service.HolidaysService; 35 import com.lframework.xingyun.sc.service.HolidaysService;
35 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; 36 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
@@ -76,6 +77,8 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL @@ -76,6 +77,8 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
76 private WorkshopService workshopService; 77 private WorkshopService workshopService;
77 @Resource 78 @Resource
78 private SysDeptService sysDeptService; 79 private SysDeptService sysDeptService;
  80 + @Resource
  81 + private TransactorHandler transactorHandler;
79 82
80 @Override 83 @Override
81 public PageResult<SpecLockDelayApplication> query(Integer pageIndex, Integer pageSize, QuerySpecLockDelayApplicationVo vo) { 84 public PageResult<SpecLockDelayApplication> query(Integer pageIndex, Integer pageSize, QuerySpecLockDelayApplicationVo vo) {
@@ -376,9 +379,27 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL @@ -376,9 +379,27 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
376 379
377 // 获取用户列表 380 // 获取用户列表
378 log.info("开始获取需要通知的用户列表"); 381 log.info("开始获取需要通知的用户列表");
379 - List<String> userIdList = sysUserRoleService.listUserIdByRoleCodes(Arrays.asList("bsczg", "jybzg"));  
380 - userIdList.add(contractDistributorStandard.getCreateById()); 382 + Set<String> userIdSet = new LinkedHashSet<>();
  383 + List<String> officeManagerIds = transactorHandler.listTransactorsByRoleCode("bsczg",
  384 + contractDistributorStandard.getCreateById());
  385 + if (CollectionUtils.isNotEmpty(officeManagerIds)) {
  386 + userIdSet.addAll(officeManagerIds);
  387 + }
  388 +
  389 + String workshopManagerRoleCode = getWorkshopManagerRoleCode(contractDistributorStandard.getWorkshopId());
  390 + if (StringUtils.isNotBlank(workshopManagerRoleCode)) {
  391 + List<String> workshopManagerIds = sysUserRoleService.listUserIdByRoleCodes(
  392 + Collections.singletonList(workshopManagerRoleCode));
  393 + if (CollectionUtils.isNotEmpty(workshopManagerIds)) {
  394 + userIdSet.addAll(workshopManagerIds);
  395 + }
  396 + }
  397 + List<String> userIdList = new ArrayList<>(userIdSet);
381 log.info("合同{}需要通知的用户数量:{}", contractCode, userIdList.size()); 398 log.info("合同{}需要通知的用户数量:{}", contractCode, userIdList.size());
  399 + if (CollectionUtils.isEmpty(userIdList)) {
  400 + log.info("合同{}未匹配到任何通知人员,跳过发送", contractCode);
  401 + continue;
  402 + }
382 403
383 // 构建消息内容 404 // 构建消息内容
384 StringBuilder sb = new StringBuilder(); 405 StringBuilder sb = new StringBuilder();
@@ -419,4 +440,36 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL @@ -419,4 +440,36 @@ public class SpecLockDelayApplicationServiceImpl extends BaseMpServiceImpl<SpecL
419 log.info("延迟锁规消息发送任务执行完成:总共处理{}个合同,成功发送{}条消息,失败{}个", 440 log.info("延迟锁规消息发送任务执行完成:总共处理{}个合同,成功发送{}条消息,失败{}个",
420 totalCount, sentCount, errorCount); 441 totalCount, sentCount, errorCount);
421 } 442 }
  443 +
  444 + /**
  445 + * 获取分厂经营办主管角色编码
  446 + *
  447 + * @param workshopId 分厂ID
  448 + * @return 角色编码
  449 + */
  450 + private String getWorkshopManagerRoleCode(String workshopId) {
  451 + if (StringUtils.isBlank(workshopId)) {
  452 + return null;
  453 + }
  454 +
  455 + Workshop workshop = workshopService.findById(workshopId);
  456 + if (workshop == null || StringUtils.isBlank(workshop.getCode())) {
  457 + return null;
  458 + }
  459 +
  460 + String workshopCode = workshop.getCode();
  461 + if ("yfc".equals(workshopCode)) {
  462 + return "yfcjybzg";
  463 + }
  464 + if ("efc".equals(workshopCode)) {
  465 + return "efcjybzg";
  466 + }
  467 + if ("sfc".equals(workshopCode)) {
  468 + return "sfcjybzg";
  469 + }
  470 + if ("ztfc".equals(workshopCode)) {
  471 + return "ztcjybzg";
  472 + }
  473 + return null;
  474 + }
422 } 475 }
@@ -435,7 +435,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -435,7 +435,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
435 // 获取客户信息 435 // 获取客户信息
436 Customer customer = customerService.findById(plan.getCustomerId()); 436 Customer customer = customerService.findById(plan.getCustomerId());
437 437
438 - messageHandler.sendMsg(receiveUserIds, customer.getName() + "开发审核通过消息通知测试"  
439 - , customer.getName() +"开发审核通过消息通知测试", bizKey, null); 438 + messageHandler.sendMsg(receiveUserIds, customer.getName() + "开发审核通过消息通知"
  439 + , customer.getName() +"开发审核通过消息通知", bizKey, null);
440 } 440 }
441 } 441 }