Commit 6782b75d96e8bae6b26df0023f5331d1cf57590d
Merge branch 'master_chujiang' into master_quotation
Showing
5 changed files
with
77 additions
and
22 deletions
| ... | ... | @@ -5521,7 +5521,7 @@ INSERT INTO `sys_data_permission_model_detail` VALUES (12, '状态', 1, '0,5,6,7 |
| 5521 | 5521 | INSERT INTO `sys_data_permission_model_detail` VALUES (13, '创建时间', 1, '0,1,2,3,4,5', 2, 'product', 'create_time', NULL, NULL); |
| 5522 | 5522 | INSERT INTO `sys_data_permission_model_detail` VALUES (14, '创建人部门与本人相同', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN ({__var#curDeptIds})'); |
| 5523 | 5523 | INSERT INTO `sys_data_permission_model_detail` VALUES (15, '创建人部门是本人的上级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE FIND_IN_SET(__ud.dept_id,(SELECT GROUP_CONCAT(__mp.path) FROM sys_dept AS __d INNER JOIN recursion_mapping AS __mp ON __mp.node_id=__d.id AND __mp.node_type=1 WHERE __d.id IN ({__var#curDeptIds}) AND __mp.level> 1))'); |
| 5524 | -INSERT INTO `sys_data_permission_model_detail` VALUES (16, '创建人部门是本人的下级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN (SELECT __mp.node_id FROM recursion_mapping AS __mp WHERE FIND_IN_SET((SELECT __d.id FROM sys_dept AS __d WHERE __d.id IN ({__var#curDeptIds})),__mp.path) AND __mp.node_type=1)'); | |
| 5524 | +INSERT INTO `sys_data_permission_model_detail` VALUES (16, '创建人部门是本人的下级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN (SELECT __mp.node_id FROM recursion_mapping AS __mp WHERE __mp.node_type=1 AND EXISTS (SELECT 1 FROM sys_dept AS __d WHERE __d.id IN ({__var#curDeptIds}) AND FIND_IN_SET(__d.id,__mp.path)))'); | |
| 5525 | 5525 | INSERT INTO `sys_data_permission_model_detail` VALUES (17, '创建时间', 2, '0,1,2,3,4,5', 2, 'order', 'create_time', NULL, NULL); |
| 5526 | 5526 | |
| 5527 | 5527 | -- ---------------------------- |
| ... | ... | @@ -7768,4 +7768,4 @@ CREATE TABLE `tbl_take_stock_sheet_detail` ( |
| 7768 | 7768 | -- Records of tbl_take_stock_sheet_detail |
| 7769 | 7769 | -- ---------------------------- |
| 7770 | 7770 | |
| 7771 | -SET FOREIGN_KEY_CHECKS = 1; | |
| \ No newline at end of file | ||
| 7771 | +SET FOREIGN_KEY_CHECKS = 1; | ... | ... |
| ... | ... | @@ -421,5 +421,5 @@ INSERT INTO `sys_data_permission_model_detail` VALUES (12, '状态', 1, '0,5,6,7 |
| 421 | 421 | INSERT INTO `sys_data_permission_model_detail` VALUES (13, '创建时间', 1, '0,1,2,3,4,5', 2, 'product', 'create_time', NULL, NULL); |
| 422 | 422 | INSERT INTO `sys_data_permission_model_detail` VALUES (14, '创建人部门与本人相同', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN ({__var#curDeptIds})'); |
| 423 | 423 | INSERT INTO `sys_data_permission_model_detail` VALUES (15, '创建人部门是本人的上级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE FIND_IN_SET(__ud.dept_id,(SELECT GROUP_CONCAT(__mp.path) FROM sys_dept AS __d INNER JOIN recursion_mapping AS __mp ON __mp.node_id=__d.id AND __mp.node_type=1 WHERE __d.id IN ({__var#curDeptIds}) AND __mp.level> 1))'); |
| 424 | -INSERT INTO `sys_data_permission_model_detail` VALUES (16, '创建人部门是本人的下级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN (SELECT __mp.node_id FROM recursion_mapping AS __mp WHERE FIND_IN_SET((SELECT __d.id FROM sys_dept AS __d WHERE __d.id IN ({__var#curDeptIds})),__mp.path) AND __mp.node_type=1)'); | |
| 424 | +INSERT INTO `sys_data_permission_model_detail` VALUES (16, '创建人部门是本人的下级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN (SELECT __mp.node_id FROM recursion_mapping AS __mp WHERE __mp.node_type=1 AND EXISTS (SELECT 1 FROM sys_dept AS __d WHERE __d.id IN ({__var#curDeptIds}) AND FIND_IN_SET(__d.id,__mp.path)))'); | |
| 425 | 425 | INSERT INTO `sys_data_permission_model_detail` VALUES (17, '创建时间', 2, '0,1,2,3,4,5', 2, 'order', 'create_time', NULL, NULL); | ... | ... |
| ... | ... | @@ -248,30 +248,36 @@ public class ShipmentsOrderInfoController extends DefaultBaseController { |
| 248 | 248 | @GetMapping("/dataHandler") |
| 249 | 249 | @Scheduled(cron = "0 8 0 * * ?") |
| 250 | 250 | public InvokeResult<Void> dataHandler() { |
| 251 | - List<ShipmentsOrderInfo> shipmentsOrderInfoList = shipmentsOrderInfoService.queryByShipmentDate(LocalDate.now()); | |
| 251 | + // 只处理今日应该发货但状态仍是未发货的数据,避免已签收/已发货的数据被重复处理 | |
| 252 | + List<ShipmentsOrderInfo> shipmentsOrderInfoList = shipmentsOrderInfoService.queryUnShipmentsByShipmentDate(LocalDate.now()); | |
| 252 | 253 | if (CollectionUtils.isNotEmpty(shipmentsOrderInfoList)) { |
| 253 | 254 | for (ShipmentsOrderInfo orderInfo : shipmentsOrderInfoList) { |
| 254 | - ShipmentsOrderInfo shipmentsOrderInfo = shipmentsOrderInfoService.findById(orderInfo.getId()); | |
| 255 | - List<ShipmentsPlanDetail> detailList = shipmentsPlanDetailService.listByShipmentOrderId(shipmentsOrderInfo.getId()); | |
| 256 | - if (CollectionUtils.isNotEmpty(detailList)) { | |
| 257 | - continue; | |
| 258 | - } | |
| 259 | - List<String> orderIds = new ArrayList<>(); | |
| 260 | - List<String> orderSpecIds = new ArrayList<>(); | |
| 261 | - List<String> detailIds = new ArrayList<>(); | |
| 262 | - for (ShipmentsPlanDetail shipmentsPlanDetail : detailList) { | |
| 263 | - if (!orderIds.contains(shipmentsPlanDetail.getOrderId())) { | |
| 264 | - orderIds.add(shipmentsPlanDetail.getOrderId()); | |
| 265 | - } | |
| 266 | - if (!orderSpecIds.contains(shipmentsPlanDetail.getOrderSpecId())) { | |
| 267 | - orderSpecIds.add(shipmentsPlanDetail.getOrderSpecId()); | |
| 255 | + try { | |
| 256 | + ShipmentsOrderInfo shipmentsOrderInfo = shipmentsOrderInfoService.findById(orderInfo.getId()); | |
| 257 | + List<ShipmentsPlanDetail> detailList = shipmentsPlanDetailService.listByShipmentOrderId(shipmentsOrderInfo.getId()); | |
| 258 | + if (CollectionUtils.isEmpty(detailList)) { | |
| 259 | + continue; | |
| 268 | 260 | } |
| 269 | - if (!detailIds.contains(shipmentsPlanDetail.getId())) { | |
| 270 | - detailIds.add(shipmentsPlanDetail.getId()); | |
| 261 | + List<String> orderIds = new ArrayList<>(); | |
| 262 | + List<String> orderSpecIds = new ArrayList<>(); | |
| 263 | + List<String> detailIds = new ArrayList<>(); | |
| 264 | + for (ShipmentsPlanDetail shipmentsPlanDetail : detailList) { | |
| 265 | + if (!orderIds.contains(shipmentsPlanDetail.getOrderId())) { | |
| 266 | + orderIds.add(shipmentsPlanDetail.getOrderId()); | |
| 267 | + } | |
| 268 | + if (!orderSpecIds.contains(shipmentsPlanDetail.getOrderSpecId())) { | |
| 269 | + orderSpecIds.add(shipmentsPlanDetail.getOrderSpecId()); | |
| 270 | + } | |
| 271 | + if (!detailIds.contains(shipmentsPlanDetail.getId())) { | |
| 272 | + detailIds.add(shipmentsPlanDetail.getId()); | |
| 273 | + } | |
| 271 | 274 | } |
| 275 | + List<PurchaseOrderInfo> orderInfoList = purchaseOrderInfoService.listByIds(orderIds); | |
| 276 | + shipmentsOrderInfoService.handleData(shipmentsOrderInfo, orderInfoList, orderSpecIds, detailIds); | |
| 277 | + } catch (Exception e) { | |
| 278 | + // 单张发货单处理失败不影响其他发货单 | |
| 279 | + log.error("定时任务处理发货单 [{}] 失败:{}", orderInfo.getId(), e.getMessage(), e); | |
| 272 | 280 | } |
| 273 | - List<PurchaseOrderInfo> orderInfoList = purchaseOrderInfoService.listByIds(orderIds); | |
| 274 | - shipmentsOrderInfoService.handleData(shipmentsOrderInfo, orderInfoList, orderSpecIds, detailIds); | |
| 275 | 281 | } |
| 276 | 282 | } |
| 277 | 283 | return InvokeResultBuilder.success(); | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/shipments/ShipmentsOrderInfoServiceImpl.java
| ... | ... | @@ -705,6 +705,47 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr |
| 705 | 705 | } |
| 706 | 706 | |
| 707 | 707 | @Override |
| 708 | + public List<ShipmentsOrderInfo> queryUnShipmentsByShipmentDate(LocalDate shipmentDate) { | |
| 709 | + // 只查未发货状态 | |
| 710 | + LambdaQueryWrapper<ShipmentsOrderInfo> queryWrapper = Wrappers.lambdaQuery(ShipmentsOrderInfo.class); | |
| 711 | + queryWrapper.eq(ShipmentsOrderInfo::getStatus, "UN_SHIPMENTS"); | |
| 712 | + if (shipmentDate != null) { | |
| 713 | + LocalDate finalShipmentDate = shipmentDate; | |
| 714 | + queryWrapper.and(wrapper -> wrapper | |
| 715 | + .eq(ShipmentsOrderInfo::getShipmentsDate, finalShipmentDate) | |
| 716 | + .or() | |
| 717 | + .eq(ShipmentsOrderInfo::getNewShipmentDate, finalShipmentDate)); | |
| 718 | + } else { | |
| 719 | + shipmentDate = LocalDate.now(); | |
| 720 | + queryWrapper.and(wrapper -> wrapper | |
| 721 | + .lt(ShipmentsOrderInfo::getShipmentsDate, LocalDate.now()) | |
| 722 | + .or() | |
| 723 | + .lt(ShipmentsOrderInfo::getNewShipmentDate, LocalDate.now())); | |
| 724 | + } | |
| 725 | + List<ShipmentsOrderInfo> shipmentsOrderInfos = getBaseMapper().selectList(queryWrapper); | |
| 726 | + if (CollectionUtils.isEmpty(shipmentsOrderInfos)) { | |
| 727 | + return Collections.emptyList(); | |
| 728 | + } | |
| 729 | + // 过滤掉不符合条件的数据 | |
| 730 | + Iterator<ShipmentsOrderInfo> iterator = shipmentsOrderInfos.iterator(); | |
| 731 | + while (iterator.hasNext()) { | |
| 732 | + ShipmentsOrderInfo next = iterator.next(); | |
| 733 | + Boolean onTimeShipment = next.getOnTimeShipment(); | |
| 734 | + if (BooleanUtils.isFalse(onTimeShipment)) { | |
| 735 | + LocalDate newShipmentDate = next.getNewShipmentDate(); | |
| 736 | + if (newShipmentDate == null || newShipmentDate.isAfter(shipmentDate)) { | |
| 737 | + iterator.remove(); | |
| 738 | + } | |
| 739 | + } else { | |
| 740 | + if (next.getShipmentsDate().isAfter(shipmentDate)) { | |
| 741 | + iterator.remove(); | |
| 742 | + } | |
| 743 | + } | |
| 744 | + } | |
| 745 | + return shipmentsOrderInfos; | |
| 746 | + } | |
| 747 | + | |
| 748 | + @Override | |
| 708 | 749 | public String generateSerialNumber(String pre, String key, String format, LocalDateTime startTime, LocalDateTime endTime) { |
| 709 | 750 | // 获取当前时间,并做格式化处理 |
| 710 | 751 | String datePart = LocalDate.now().format(DateTimeFormatter.ofPattern(format)); | ... | ... |
| ... | ... | @@ -130,6 +130,14 @@ public interface ShipmentsOrderInfoService extends BaseMpService<ShipmentsOrderI |
| 130 | 130 | List<ShipmentsOrderInfo> queryByShipmentDate(LocalDate shipmentDate); |
| 131 | 131 | |
| 132 | 132 | /** |
| 133 | + * 根据发货日期获取未发货的数据 | |
| 134 | + * | |
| 135 | + * @param shipmentDate 发货日期 | |
| 136 | + * @return List<ShipmentsOrderInfo> | |
| 137 | + */ | |
| 138 | + List<ShipmentsOrderInfo> queryUnShipmentsByShipmentDate(LocalDate shipmentDate); | |
| 139 | + | |
| 140 | + /** | |
| 133 | 141 | * 生成流水号 |
| 134 | 142 | * |
| 135 | 143 | * @param pre 流水号前缀 | ... | ... |