Commit 422ee31db088ba5272e2e9a0a18205c6dfba322f

Authored by yeqianyong
1 parent 20f154b3

楚江erp: 1、要车计划、要成单生成逻辑调整;2、增加发货单编号生成逻辑

... ... @@ -399,9 +399,7 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
399 399 dataMap.put("totalActualQuantity", totalActualQuantity.doubleValue() > 0 ? totalActualQuantity.setScale(2, RoundingMode.HALF_UP) : null);
400 400 dataMap.put("totalNum", totalNum.doubleValue() > 0 ? totalNum.setScale(2, RoundingMode.HALF_UP) : null);
401 401 dataMap.put("totalPrice", totalPrice.doubleValue() > 0 ? totalPrice.setScale(2, RoundingMode.HALF_UP) : null);
402   - // 流水号
403   - String serialNumber = createSerialNumber(null, "SHIPMENT_ORDER_SERIAL_NUMBER");
404   - dataMap.put("serialNumber", serialNumber);
  402 + dataMap.put("serialNumber", orderInfo.getCode());
405 403 // 办事处
406 404 String deptId = orderInfo.getDeptId();
407 405 if (StringUtils.isNotBlank(deptId)) {
... ... @@ -437,7 +435,7 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
437 435 // 处理模板中的占位符
438 436 ExcelUtil.processTemplate(workbook, dataMap);
439 437 // 生成文件名
440   - String fileName = String.format("发货单_%s.xlsx", serialNumber);
  438 + String fileName = String.format("发货单_%s.xlsx", orderInfo.getCode());
441 439 File excelFile = new File(tempDir.toFile(), fileName);
442 440 // 保存Excel文件
443 441 try (FileOutputStream fos = new FileOutputStream(excelFile)) {
... ... @@ -532,36 +530,4 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
532 530 log.warn("清理临时文件失败", e);
533 531 }
534 532 }
535   -
536   -
537   -
538   - /**
539   - * 生成当天流水号
540   - *
541   - * @return String
542   - */
543   - public String createSerialNumber(String pre, String key) {
544   - // 1. 获取当前年月日(格式:yyyyMMdd)
545   - String datePart = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
546   - // 2. Redis自增序列
547   - Long id = redisTemplate.opsForValue().increment(key, 1);
548   - if (id != null && id == 1) {
549   - // 计算到次日零点的秒数
550   - LocalDateTime now = LocalDateTime.now();
551   - LocalDateTime midnight = now.toLocalDate().plusDays(1).atStartOfDay();
552   - long secondsUntilMidnight = Duration.between(now, midnight).getSeconds();
553   -
554   - redisTemplate.expire(key, secondsUntilMidnight, TimeUnit.SECONDS);
555   - }
556   - // 3. 补零到4位
557   - String incrPart = String.format("%04d", id);
558   - // 4. 拼接最终结果
559   - String result = "";
560   - if (StringUtils.isBlank(pre)) {
561   - result = datePart + incrPart;
562   - } else {
563   - result = pre + datePart + incrPart;
564   - }
565   - return result;
566   - }
567 533 }
... ...
... ... @@ -536,17 +536,10 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic
536 536 draftRequestCarTicketService.updateExamineUser(businessId, SecurityUtil.getCurrentUser().getId(), null, null);
537 537 //如果是发货计划生成的草稿要车单-需要生成要车单和要车计划
538 538 DraftRequestCarTicket draftRequestCarTicket = draftRequestCarTicketService.findById(businessId);
539   - if (StringUtils.isNotEmpty(draftRequestCarTicket.getSource()) && "SHIPMENTSPLAN".equals(draftRequestCarTicket.getSource())) {
540   - // 生成要车计划
541   - CreateCarRequestPlanVo planCreateVo = new CreateCarRequestPlanVo();
542   - planCreateVo.setRequestCarDate(LocalDate.now());
543   - planCreateVo.setWorkshopId(draftRequestCarTicket.getWorkshopId());
544   - String requestCarPlanId = carRequestPlanService.create(planCreateVo);
545   - // 生成要车单
546   - CreateRequestCarTicketVo ticketCreateVo = packRequestCarTicket(draftRequestCarTicket, requestCarPlanId, variable);
547   - requestCarTicketService.create(ticketCreateVo);
  539 + if (draftRequestCarTicket != null && "SHIPMENTSPLAN".equals(draftRequestCarTicket.getSource())) {
548 540 // 处理发货单
549   - List<String> orderIds = shipmentsPlanDetailService.getOrderIdByShipmentOrderId(ticketCreateVo.getShipmentsOrderId());
  541 + String shipmentOrderId = (String) redisHandler.get("GET_SHIPMENTS_ORDER_ID_" + draftRequestCarTicket.getId());
  542 + List<String> orderIds = shipmentsPlanDetailService.getOrderIdByShipmentOrderId(shipmentOrderId);
550 543 List<DraftRequestCarTicket> draftRequestCarTicketList = draftRequestCarTicketService.listByOrderId(orderIds);
551 544 if (CollectionUtils.isNotEmpty(draftRequestCarTicketList)) {
552 545 boolean flag = true;
... ... @@ -561,7 +554,7 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic
561 554 }
562 555 if (flag) {
563 556 // 更新订货单状态(草稿转为正常)
564   - shipmentsOrderInfoService.updateStatus(ticketCreateVo.getShipmentsOrderId(), "UN_SHIPMENTS");
  557 + shipmentsOrderInfoService.updateStatus(shipmentOrderId, "UN_SHIPMENTS");
565 558 }
566 559 }
567 560 }
... ...
... ... @@ -37,11 +37,10 @@ import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanService;
37 37 import com.lframework.xingyun.sc.service.shipments.car.CarRequestPlanService;
38 38 import com.lframework.xingyun.sc.service.shipments.car.DraftRequestCarTicketService;
39 39 import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService;
  40 +import com.lframework.xingyun.sc.service.statistics.ShipmentDetailStatisticsService;
40 41 import com.lframework.xingyun.sc.utils.CommonUtil;
41 42 import com.lframework.xingyun.sc.vo.sample.tracking.CreateSampleResultTrackingVo;
42   -import com.lframework.xingyun.sc.vo.shipments.car.CreateCarRequestPlanVo;
43 43 import com.lframework.xingyun.sc.vo.shipments.car.CreateDraftRequestCarTicketVo;
44   -import com.lframework.xingyun.sc.vo.shipments.car.CreateRequestCarTicketVo;
45 44 import com.lframework.xingyun.sc.vo.shipments.order.*;
46 45 import com.lframework.xingyun.sc.vo.shipments.plan.QueryShipmentsPlanDetailVo;
47 46 import lombok.extern.slf4j.Slf4j;
... ... @@ -59,7 +58,7 @@ import java.math.BigDecimal;
59 58 import java.time.LocalDate;
60 59 import java.time.LocalDateTime;
61 60 import java.time.LocalTime;
62   -import java.time.format.DateTimeFormatter;
  61 +import java.time.temporal.TemporalAdjusters;
63 62 import java.util.*;
64 63 import java.util.function.Function;
65 64 import java.util.stream.Collectors;
... ... @@ -102,6 +101,8 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
102 101 private SampleResultTrackingService sampleResultTrackingService;
103 102 @Resource
104 103 private SampleResultFeedbackService sampleResultFeedbackService;
  104 + @Resource
  105 + private ShipmentDetailStatisticsService shipmentDetailStatisticsService;
105 106
106 107
107 108 @Override
... ... @@ -462,6 +463,11 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
462 463 if (BooleanUtils.isTrue(vo.getOnTimeShipment()) && !now.isBefore(shipmentsDate)) {
463 464 // 生成应收款台账明细数据
464 465 receiptLedgerInfoService.generateLedgerInfo(Collections.singletonList(orderInfo));
  466 + // 生成发货明细报表数据
  467 + shipmentDetailStatisticsService.generateStatisticsData(detailIds);
  468 + // 生成要车计划、要车单数据
  469 + ShipmentsOrderInfo shipmentsOrderInfo = findById(shipmentsOrderId);
  470 + carRequestPlanService.generate(orderInfoList, shipmentsOrderInfo);
465 471 }
466 472 //生成产品试样结果跟踪单
467 473 if (CollectionUtils.isNotEmpty(orderIds)) {
... ... @@ -782,6 +788,15 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
782 788 // 封装发货单数据
783 789 ShipmentsOrderInfo shipmentsOrderInfo = new ShipmentsOrderInfo();
784 790 shipmentsOrderInfo.setId(id);
  791 + // 发货单编号处理
  792 + // 获取当月最后一天的23:59:59
  793 + LocalDateTime monthEnd = LocalDateTime.now()
  794 + .with(TemporalAdjusters.lastDayOfMonth())
  795 + .withHour(23)
  796 + .withMinute(59)
  797 + .withSecond(59);
  798 + String serialNumber = CommonUtil.generateSerialNumber(null, "", "yyMM", LocalDateTime.now(), monthEnd);
  799 + shipmentsOrderInfo.setCode(serialNumber);
785 800 shipmentsOrderInfo.setPlanId(planId);
786 801 shipmentsOrderInfo.setCustomerId(customerId);
787 802 shipmentsOrderInfo.setWorkshopId(plan.getWorkshopId());
... ... @@ -859,20 +874,6 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
859 874 mqProducerService.createSysSiteMessage(messageDto);
860 875 // 更新发货单状态为草稿
861 876 updateStatus(shipmentsOrderId, "DRAFT");
862   - continue;
863   - }
864   - if ("PASS".equals(draftTicket.getStatus())) {
865   - // 生成要车计划
866   - CreateCarRequestPlanVo planCreateVo = new CreateCarRequestPlanVo();
867   - planCreateVo.setRequestCarDate(LocalDate.now());
868   - planCreateVo.setWorkshopId(orderInfo.getWorkshopId());
869   - String requestCarPlanId = carRequestPlanService.create(planCreateVo);
870   - // 生成要车单
871   - CreateRequestCarTicketVo ticketCreateVo = packRequestCarTicket(orderInfo, requestCarPlanId, draftTicket,
872   - plan.getTomoPreShipDate(), quantity, shipmentsOrderId);
873   - requestCarTicketService.create(ticketCreateVo);
874   - } else {
875   - throw new DefaultClientException("请先补充草稿要车单数据!");
876 877 }
877 878 }
878 879 }
... ... @@ -901,51 +902,6 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
901 902 return draftTicketVo;
902 903 }
903 904
904   - /**
905   - * 封装要车单数据
906   - *
907   - * @param orderInfo 订货单数据
908   - * @return CreateRequestCarTicketVo
909   - */
910   - private CreateRequestCarTicketVo packRequestCarTicket(PurchaseOrderInfo orderInfo, String planId, DraftRequestCarTicket draftTicket,
911   - LocalDate shipmentsDate, BigDecimal quantity, String shipmentsOrderId) {
912   - QueryShipmentsPlanDetailVo vo = new QueryShipmentsPlanDetailVo();
913   - vo.setShipmentsOrderId(shipmentsOrderId);
914   - vo.setOrderId(orderInfo.getId());
915   - List<ShipmentsPlanDetail> details = shipmentsPlanDetailService.query(vo);
916   - LocalTime minTime = details.stream()
917   - .map(ShipmentsPlanDetail::getShipmentsTime)
918   - .min(LocalTime::compareTo)
919   - .orElse(null);
920   - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
921   - String loadingTime = minTime.format(formatter);
922   -
923   - CreateRequestCarTicketVo ticketVo = new CreateRequestCarTicketVo();
924   - ticketVo.setDraftId(draftTicket.getId());
925   - ticketVo.setPlanId(planId);
926   - ticketVo.setPurchaseOrderId(orderInfo.getId());
927   - ticketVo.setRequestCarDate(LocalDate.now());
928   - ticketVo.setDeptId(orderInfo.getDeptId());
929   - ticketVo.setDeliveryDate(shipmentsDate);
930   - ticketVo.setWorkshopId(orderInfo.getWorkshopId());
931   - ticketVo.setOrderNo(orderInfo.getOrderNo());
932   - ticketVo.setOrderingUnit(orderInfo.getOrderingUnit());
933   - ticketVo.setQuantity(quantity);
934   - ticketVo.setShipmentsOrderId(shipmentsOrderId);
935   - //外办审核人(草稿要车单审核人)
936   - ticketVo.setExternalAuditor(draftTicket.getExternalAuditor());
937   - //经营办审核人(发货计划提交人)
938   - ticketVo.setBusinessOfficeAuditor(SecurityUtil.getCurrentUser().getId());
939   - ticketVo.setDestination(draftTicket.getDestination());
940   - ticketVo.setConsignee(draftTicket.getConsignee());
941   - ticketVo.setPhone(draftTicket.getPhone());
942   - ticketVo.setReturnPlanArrangement(draftTicket.getReturnPlanArrangement());
943   - ticketVo.setOther(draftTicket.getOther());
944   - ticketVo.setSpecialLoadingRequirement(draftTicket.getSpecialLoadingRequirement());
945   - ticketVo.setLoadingTime(loadingTime);
946   - return ticketVo;
947   - }
948   -
949 905
950 906 /**
951 907 * 数据过滤
... ...
... ... @@ -18,27 +18,31 @@ import com.lframework.starter.web.core.annotations.oplog.OpLog;
18 18 import com.lframework.starter.web.core.utils.PageHelperUtil;
19 19 import com.lframework.starter.common.utils.Assert;
20 20 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
21   -import com.lframework.xingyun.sc.entity.CarRequestPlan;
22   -import com.lframework.xingyun.sc.entity.RequestCarTicket;
  21 +import com.lframework.xingyun.sc.entity.*;
23 22 import com.lframework.xingyun.sc.mappers.CarRequestPlanMapper;
24 23 import com.lframework.xingyun.sc.service.shipments.car.CarRequestPlanService;
  24 +import com.lframework.xingyun.sc.service.shipments.car.DraftRequestCarTicketService;
25 25 import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService;
26   -import com.lframework.xingyun.sc.vo.shipments.car.CreateCarRequestPlanVo;
27   -import com.lframework.xingyun.sc.vo.shipments.car.QueryCarRequestPlanVo;
28   -import com.lframework.xingyun.sc.vo.shipments.car.QueryRequestCarTicketVo;
29   -import com.lframework.xingyun.sc.vo.shipments.car.UpdateCarRequestPlanVo;
  26 +import com.lframework.xingyun.sc.vo.shipments.car.*;
  27 +import org.apache.commons.collections4.CollectionUtils;
  28 +import org.apache.commons.lang3.BooleanUtils;
30 29 import org.springframework.transaction.annotation.Transactional;
31 30 import org.springframework.stereotype.Service;
32 31 import javax.annotation.Resource;
33 32 import java.time.LocalDate;
  33 +import java.time.LocalTime;
34 34 import java.time.format.DateTimeFormatter;
35 35 import java.util.List;
  36 +import java.util.Map;
  37 +import java.util.function.Function;
36 38 import java.util.stream.Collectors;
37 39
38 40 @Service
39 41 public class CarRequestPlanServiceImpl extends BaseMpServiceImpl<CarRequestPlanMapper, CarRequestPlan> implements CarRequestPlanService {
40 42 @Resource
41 43 private RequestCarTicketService requestCarTicketService;
  44 + @Resource
  45 + private DraftRequestCarTicketService draftRequestCarTicketService;
42 46
43 47 @Override
44 48 public PageResult<CarRequestPlan> query(Integer pageIndex, Integer pageSize, QueryCarRequestPlanVo vo) {
... ... @@ -145,6 +149,68 @@ public class CarRequestPlanServiceImpl extends BaseMpServiceImpl<CarRequestPlanM
145 149 }
146 150
147 151 @Override
  152 + @Transactional(rollbackFor = Exception.class)
  153 + public void generate(List<PurchaseOrderInfo> orderInfoList, ShipmentsOrderInfo shipmentsOrderInfo) {
  154 + if (CollectionUtils.isEmpty(orderInfoList) || shipmentsOrderInfo == null) {
  155 + return;
  156 + }
  157 + List<String> orderIds = orderInfoList.stream().map(PurchaseOrderInfo::getId).collect(Collectors.toList());
  158 + // 根据订货单获取草稿要车单
  159 + List<DraftRequestCarTicket> draftTickets = draftRequestCarTicketService.listByOrderId(orderIds);
  160 + Map<String, DraftRequestCarTicket> draftTicketMap = draftTickets.stream().collect(Collectors.toMap(DraftRequestCarTicket::getPurchaseOrderId, Function.identity()
  161 + , (v1, v2) -> v2));
  162 + for (PurchaseOrderInfo orderInfo : orderInfoList) {
  163 + // 生成要车计划
  164 + CreateCarRequestPlanVo planCreateVo = new CreateCarRequestPlanVo();
  165 + planCreateVo.setRequestCarDate(LocalDate.now());
  166 + planCreateVo.setWorkshopId(orderInfo.getWorkshopId());
  167 + String requestCarPlanId = create(planCreateVo);
  168 + // 生成要车单
  169 + DraftRequestCarTicket draftTicket = draftTicketMap.get(orderInfo.getId());
  170 + if (draftTicket == null) {
  171 + throw new DefaultClientException("请先补充草稿要车单数据!");
  172 + }
  173 + CreateRequestCarTicketVo ticketVo = new CreateRequestCarTicketVo();
  174 + ticketVo.setDraftId(draftTicket.getId());
  175 + ticketVo.setPlanId(requestCarPlanId);
  176 + ticketVo.setPurchaseOrderId(orderInfo.getId());
  177 + ticketVo.setRequestCarDate(LocalDate.now());
  178 + ticketVo.setDeptId(orderInfo.getDeptId());
  179 + if (BooleanUtils.isFalse(shipmentsOrderInfo.getOnTimeShipment())) {
  180 + ticketVo.setDeliveryDate(shipmentsOrderInfo.getNewShipmentDate());
  181 + } else {
  182 + ticketVo.setDeliveryDate(shipmentsOrderInfo.getShipmentsDate());
  183 + }
  184 + ticketVo.setWorkshopId(orderInfo.getWorkshopId());
  185 + ticketVo.setOrderNo(orderInfo.getOrderNo());
  186 + ticketVo.setOrderingUnit(orderInfo.getOrderingUnit());
  187 + ticketVo.setQuantity(orderInfo.getTotalQuantity());
  188 + ticketVo.setShipmentsOrderId(shipmentsOrderInfo.getId());
  189 + //外办审核人(草稿要车单审核人)
  190 + ticketVo.setExternalAuditor(draftTicket.getExternalAuditor());
  191 + //经营办审核人(发货计划提交人)
  192 + ticketVo.setBusinessOfficeAuditor(SecurityUtil.getCurrentUser().getId());
  193 + ticketVo.setDestination(draftTicket.getDestination());
  194 + ticketVo.setConsignee(draftTicket.getConsignee());
  195 + ticketVo.setPhone(draftTicket.getPhone());
  196 + ticketVo.setReturnPlanArrangement(draftTicket.getReturnPlanArrangement());
  197 + ticketVo.setOther(draftTicket.getOther());
  198 + ticketVo.setSpecialLoadingRequirement(draftTicket.getSpecialLoadingRequirement());
  199 + // 装货时间处理
  200 + LocalTime minTime = shipmentsOrderInfo.getDetailList().stream()
  201 + .map(ShipmentsPlanDetail::getShipmentsTime)
  202 + .min(LocalTime::compareTo)
  203 + .orElse(null);
  204 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
  205 + if (minTime != null) {
  206 + String loadingTime = minTime.format(formatter);
  207 + ticketVo.setLoadingTime(loadingTime);
  208 + }
  209 + requestCarTicketService.create(ticketVo);
  210 + }
  211 + }
  212 +
  213 + @Override
148 214 public void cleanCacheByKey(Serializable key) {
149 215
150 216 }
... ...
... ... @@ -3,6 +3,8 @@ package com.lframework.xingyun.sc.service.shipments.car;
3 3 import com.lframework.starter.web.core.service.BaseMpService;
4 4 import com.lframework.starter.web.core.components.resp.PageResult;
5 5 import com.lframework.xingyun.sc.entity.CarRequestPlan;
  6 +import com.lframework.xingyun.sc.entity.PurchaseOrderInfo;
  7 +import com.lframework.xingyun.sc.entity.ShipmentsOrderInfo;
6 8 import com.lframework.xingyun.sc.vo.shipments.car.CreateCarRequestPlanVo;
7 9 import com.lframework.xingyun.sc.vo.shipments.car.QueryCarRequestPlanVo;
8 10 import com.lframework.xingyun.sc.vo.shipments.car.UpdateCarRequestPlanVo;
... ... @@ -52,4 +54,12 @@ public interface CarRequestPlanService extends BaseMpService<CarRequestPlan> {
52 54 * @return
53 55 */
54 56 void deleteById(String id);
  57 +
  58 + /**
  59 + * 生成要车计划、要车单数据
  60 + *
  61 + * @param orderInfoList 订货单数据
  62 + * @param shipmentsOrderInfo 发货单信息
  63 + */
  64 + void generate(List<PurchaseOrderInfo> orderInfoList, ShipmentsOrderInfo shipmentsOrderInfo);
55 65 }
... ...
1 1 package com.lframework.xingyun.sc.utils;
2 2
3 3 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
  4 +import com.lframework.starter.web.core.utils.ApplicationUtil;
4 5 import lombok.extern.slf4j.Slf4j;
5 6 import org.apache.commons.collections4.CollectionUtils;
  7 +import org.apache.commons.lang3.StringUtils;
  8 +import org.springframework.data.redis.core.RedisTemplate;
6 9
7 10 import java.io.*;
8 11 import java.math.BigDecimal;
9 12 import java.math.RoundingMode;
10   -import java.time.LocalDate;
11   -import java.time.LocalDateTime;
12   -import java.time.Year;
13   -import java.time.YearMonth;
  13 +import java.time.*;
14 14 import java.time.format.DateTimeFormatter;
15 15 import java.util.ArrayList;
16 16 import java.util.Collections;
17 17 import java.util.List;
  18 +import java.util.concurrent.TimeUnit;
18 19
19 20 @Slf4j
20 21 public class CommonUtil {
... ... @@ -169,4 +170,38 @@ public class CommonUtil {
169 170 }
170 171 return String.valueOf(num);
171 172 }
  173 +
  174 +
  175 + /**
  176 + * 生成流水号
  177 + *
  178 + * @param pre 流水号前缀
  179 + * @param key 缓存key
  180 + * @param format 时间格式
  181 + * @param startTime 缓存开始时间
  182 + * @param endTime 缓存到期时间
  183 + * @return String
  184 + */
  185 + public static String generateSerialNumber(String pre, String key, String format, LocalDateTime startTime, LocalDateTime endTime) {
  186 + // 1. 获取当前时间,并做格式化处理
  187 + String datePart = LocalDate.now().format(DateTimeFormatter.ofPattern(format));
  188 + // 2. Redis自增序列
  189 + RedisTemplate redisTemplate = ApplicationUtil.getBean(RedisTemplate.class);
  190 + Long id = redisTemplate.opsForValue().increment(key, 1);
  191 + if (id != null && id == 1) {
  192 + // 计算时间差(秒)
  193 + long secondsUntilMidnight = Duration.between(startTime, endTime).getSeconds();
  194 + redisTemplate.expire(key, secondsUntilMidnight, TimeUnit.SECONDS);
  195 + }
  196 + // 3. 补零到4位
  197 + String incrPart = String.format("%04d", id);
  198 + // 4. 拼接最终结果
  199 + String result = "";
  200 + if (StringUtils.isBlank(pre)) {
  201 + result = datePart + incrPart;
  202 + } else {
  203 + result = pre + datePart + incrPart;
  204 + }
  205 + return result;
  206 + }
172 207 }
... ...
... ... @@ -83,6 +83,7 @@
83 83 <insert id="batchAdd">
84 84 INSERT INTO shipments_order_info (
85 85 id,
  86 + code,
86 87 plan_id,
87 88 customer_id,
88 89 workshop_id,
... ... @@ -99,6 +100,7 @@
99 100 <foreach collection="list" item="item" separator=",">
100 101 (
101 102 #{item.id},
  103 + #{item.code},
102 104 #{item.planId},
103 105 #{item.customerId},
104 106 #{item.workshopId},
... ...