Commit 13d0ec0fffee386691e0c0c8519b991c0d400f8f

Authored by yeqianyong
1 parent d7622ce5

楚江erp: 发货单编号生成逻辑调整

... ... @@ -824,15 +824,6 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
824 824 // 封装发货单数据
825 825 ShipmentsOrderInfo shipmentsOrderInfo = new ShipmentsOrderInfo();
826 826 shipmentsOrderInfo.setId(id);
827   - // 发货单编号处理
828   - // 获取当月最后一天的23:59:59
829   - LocalDateTime monthEnd = LocalDateTime.now()
830   - .with(TemporalAdjusters.lastDayOfMonth())
831   - .withHour(23)
832   - .withMinute(59)
833   - .withSecond(59);
834   - String serialNumber = generateSerialNumber(null, "", "yyMM", LocalDateTime.now(), monthEnd);
835   - shipmentsOrderInfo.setCode(serialNumber);
836 827 shipmentsOrderInfo.setPlanId(planId);
837 828 shipmentsOrderInfo.setCustomerId(customerId);
838 829 shipmentsOrderInfo.setWorkshopId(plan.getWorkshopId());
... ... @@ -867,6 +858,19 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
867 858 // todo 后续如果数据量过大,则此处需要优化
868 859 // 生成要车相关数据
869 860 generateRequestCarData(orderInfoList, orderIds, plan, quantityMap, shipmentsOrderIdMap);
  861 + // 生成发货单编号
  862 + // 获取当月最后一天的23:59:59
  863 + LocalDateTime monthEnd = LocalDateTime.now()
  864 + .with(TemporalAdjusters.lastDayOfMonth())
  865 + .withHour(23)
  866 + .withMinute(59)
  867 + .withSecond(59);
  868 + LocalDateTime now = LocalDateTime.now();
  869 + for (ShipmentsOrderInfo shipmentsOrderInfo : shipmentsOrderInfoList) {
  870 + String serialNumber = generateSerialNumber(null, "SHIPMENT_ORDER_SERIAL_NUMBER", "yyMM", now, monthEnd);
  871 + shipmentsOrderInfo.setCode(serialNumber);
  872 + }
  873 + getBaseMapper().setShipmentOrderCode(shipmentsOrderInfoList);
870 874 }
871 875
872 876
... ... @@ -972,4 +976,15 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
972 976 }
973 977 }
974 978 }
  979 +
  980 +
  981 + /**
  982 + *
  983 + */
  984 + private void rollbackRedisIncrement(String key) {
  985 + Long current = (Long) redisTemplate.opsForValue().get(key);
  986 + if (current != null && current > 0) {
  987 + redisTemplate.opsForValue().decrement(key, 1);
  988 + }
  989 + }
975 990 }
... ...
... ... @@ -55,4 +55,11 @@ public interface ShipmentsOrderInfoMapper extends BaseMapper<ShipmentsOrderInfo>
55 55 * @return Map<Integer, Integer>
56 56 */
57 57 List<Map<String, Object>> countWaitDeliveredOrder(@Param("customerNames") List<String> customerNames);
  58 +
  59 + /**
  60 + * 设置发货单编号
  61 + *
  62 + * @param shipmentsOrderInfos 发货单数据
  63 + */
  64 + void setShipmentOrderCode(@Param("shipmentsOrderInfos") List<ShipmentsOrderInfo> shipmentsOrderInfos);
58 65 }
... ...
... ... @@ -158,4 +158,18 @@
158 158 </if>
159 159 group by c.name
160 160 </select>
  161 +
  162 + <update id="setShipmentOrderCode">
  163 + UPDATE shipments_order_info
  164 + SET code = CASE id
  165 + <foreach collection="shipmentsOrderInfos" item="item">
  166 + WHEN #{item.id} THEN #{item.code}
  167 + </foreach>
  168 + ELSE code
  169 + END
  170 + WHERE id IN
  171 + <foreach collection="shipmentsOrderInfos" item="item" open="(" close=")" separator=",">
  172 + #{item.id}
  173 + </foreach>
  174 + </update>
161 175 </mapper>
... ...