diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeItemVO.java index 3cc52db1..7f82121a 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeItemVO.java @@ -60,6 +60,11 @@ public class ShipmentMaterialCodeItemVO { */ private BigDecimal minPackagingNum; + /** + * 状态,0:未装箱;1:已装箱;5:已安装 + */ + private Integer status; + /** * 创建人 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeQRVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeQRVO.java index 4f2558eb..81f9d8d9 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeQRVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ShipmentMaterialCodeQRVO.java @@ -9,6 +9,11 @@ public class ShipmentMaterialCodeQRVO { private Long id; + /** + * 序号 + */ + private Integer index; + /** * 唯一码 */ @@ -25,10 +30,15 @@ public class ShipmentMaterialCodeQRVO { private String materialDescribe; /** - * 数量 + * 应发数量 */ private BigDecimal num; + /** + * 实发数量 + */ + private BigDecimal actualNum; + /** * 单位 */ @@ -38,4 +48,5 @@ public class ShipmentMaterialCodeQRVO { * 状态,0:未装箱;1:已装箱; */ private Integer status; + } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryMapper.java index 7de37bd5..780302c3 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryMapper.java @@ -13,4 +13,5 @@ import com.nflg.wms.repository.entity.WmsShipmentDelivery; */ public interface WmsShipmentDeliveryMapper extends BaseMapper { + WmsShipmentDelivery getByPackagingCodeId(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentPackagingCodeMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentPackagingCodeMapper.java index f8a4d537..cc85d26a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentPackagingCodeMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentPackagingCodeMapper.java @@ -4,9 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.BoxSearchQO; -import com.nflg.wms.common.pojo.vo.BoxVO; -import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; -import com.nflg.wms.common.pojo.vo.ShipmentPackagingCodeVO; +import com.nflg.wms.common.pojo.qo.ShipmentSiteStockItemQO; +import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.repository.entity.WmsShipmentPackagingCode; import java.util.List; @@ -30,4 +29,6 @@ public interface WmsShipmentPackagingCodeMapper extends BaseMapper searchForUnload(String code); List getForInstall(Long id); + + PageData getItemsVOById(ShipmentSiteStockItemQO qo, Page objectPage); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryService.java index 3791722f..3b4a9d78 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryService.java @@ -16,4 +16,5 @@ import java.util.List; */ public interface IWmsShipmentDeliveryService extends IService { + WmsShipmentDelivery getByPackagingCodeId(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentPackagingCodeService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentPackagingCodeService.java index 6043c487..e4ac5ef5 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentPackagingCodeService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentPackagingCodeService.java @@ -2,11 +2,11 @@ package com.nflg.wms.repository.service; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.BoxSearchQO; -import com.nflg.wms.common.pojo.vo.BoxVO; -import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; -import com.nflg.wms.common.pojo.vo.ShipmentPackagingCodeVO; +import com.nflg.wms.common.pojo.qo.ShipmentSiteStockItemQO; +import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.repository.entity.WmsShipmentPackagingCode; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -33,4 +33,6 @@ public interface IWmsShipmentPackagingCodeService extends IService searchForUnload(String code); List getForInstall(Long id); + + PageData getItemsVOById(ShipmentSiteStockItemQO qo); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryServiceImpl.java index 9d950c76..83a8e545 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryServiceImpl.java @@ -17,4 +17,8 @@ import org.springframework.stereotype.Service; @Service public class WmsShipmentDeliveryServiceImpl extends ServiceImpl implements IWmsShipmentDeliveryService { + @Override + public WmsShipmentDelivery getByPackagingCodeId(Long id) { + return baseMapper.getByPackagingCodeId(id); + } } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentPackagingCodeServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentPackagingCodeServiceImpl.java index 00d481ce..b02c76fa 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentPackagingCodeServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentPackagingCodeServiceImpl.java @@ -4,9 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.BoxSearchQO; -import com.nflg.wms.common.pojo.vo.BoxVO; -import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; -import com.nflg.wms.common.pojo.vo.ShipmentPackagingCodeVO; +import com.nflg.wms.common.pojo.qo.ShipmentSiteStockItemQO; +import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.repository.entity.WmsShipmentPackagingCode; import com.nflg.wms.repository.mapper.WmsShipmentPackagingCodeMapper; import com.nflg.wms.repository.service.IWmsShipmentPackagingCodeService; @@ -55,4 +54,9 @@ public class WmsShipmentPackagingCodeServiceImpl extends ServiceImpl getForInstall(Long id) { return baseMapper.getForInstall(id); } + + @Override + public PageData getItemsVOById(ShipmentSiteStockItemQO qo) { + return baseMapper.getItemsVOById(qo, new Page<>(qo.getPage(), qo.getPageSize())); + } } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryMapper.xml index 3162750e..2f2c1659 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryMapper.xml @@ -2,4 +2,10 @@ + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentPackagingCodeItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentPackagingCodeItemMapper.xml index 4e73729a..67268aa4 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentPackagingCodeItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentPackagingCodeItemMapper.xml @@ -3,11 +3,12 @@ + + diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxController.java deleted file mode 100644 index 23a14794..00000000 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxController.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.nflg.wms.shipment.controller; - -import com.nflg.wms.common.pojo.ApiResult; -import com.nflg.wms.common.pojo.PageData; -import com.nflg.wms.common.pojo.qo.BoxSearchQO; -import com.nflg.wms.common.pojo.vo.BoxVO; -import com.nflg.wms.repository.service.IWmsShipmentPackagingCodeService; -import com.nflg.wms.starter.BaseController; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 装箱清单 - */ -@RestController -@RequestMapping("box") -public class BoxController extends BaseController { - - @Resource - private IWmsShipmentPackagingCodeService packagingCodeService; - - /** - * 搜索 - */ - @PostMapping("search") - public ApiResult> search(@Valid @RequestBody BoxSearchQO qo){ - return ApiResult.success(packagingCodeService.searchInCar(qo)); - } - -} diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxListController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxListController.java new file mode 100644 index 00000000..2f61ecf2 --- /dev/null +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/BoxListController.java @@ -0,0 +1,111 @@ +package com.nflg.wms.shipment.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nflg.wms.common.pojo.ApiResult; +import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.qo.BoxSearchQO; +import com.nflg.wms.common.pojo.qo.ShipmentSiteStockItemQO; +import com.nflg.wms.common.pojo.vo.BoxVO; +import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO; +import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; +import com.nflg.wms.common.util.VUtil; +import com.nflg.wms.repository.entity.WmsShipmentDelivery; +import com.nflg.wms.repository.entity.WmsShipmentMaterialCodeForward; +import com.nflg.wms.repository.entity.WmsShipmentPackagingCode; +import com.nflg.wms.repository.service.IWmsShipmentDeliveryService; +import com.nflg.wms.repository.service.IWmsShipmentMaterialCodeForwardService; +import com.nflg.wms.repository.service.IWmsShipmentPackagingCodeItemService; +import com.nflg.wms.repository.service.IWmsShipmentPackagingCodeService; +import com.nflg.wms.starter.BaseController; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.core.io.ClassPathResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import org.ttzero.excel.entity.TemplateSheet; +import org.ttzero.excel.entity.Workbook; + +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 装箱清单 + */ +@RestController +@RequestMapping("box") +public class BoxListController extends BaseController { + + @Resource + private IWmsShipmentPackagingCodeService packagingCodeService; + + @Resource + private IWmsShipmentMaterialCodeForwardService materialCodeForwardService; + + @Resource + private IWmsShipmentDeliveryService deliveryService; + + @Resource + private IWmsShipmentPackagingCodeItemService packagingCodeItemService; + + /** + * 搜索 + */ + @PostMapping("search") + public ApiResult> search(@Valid @RequestBody BoxSearchQO qo) { + return ApiResult.success(packagingCodeService.searchInCar(qo)); + } + + /** + * 获取明细 + */ + @PostMapping("getItems") + public ApiResult> getItems(@Valid @RequestBody ShipmentSiteStockItemQO qo) { + return ApiResult.success(packagingCodeService.getItemsVOById(qo)); + } + + /** + * 获取代发物料列表 + */ + @PostMapping("getForwards") + public ApiResult> getForwards(@Valid @RequestBody ShipmentSiteStockItemQO qo) { + return ApiResult.success(materialCodeForwardService.lambdaQuery() + .eq(WmsShipmentMaterialCodeForward::getPackagingCodeId, qo.getId()) + .orderByAsc(WmsShipmentMaterialCodeForward::getId) + .page(new Page<>(qo.getPage(), qo.getPageSize())) + ); + } + + /** + * 导出装箱清单 + * @param id 装箱清单id + */ + @GetMapping("export") + public void export(HttpServletResponse response, @RequestParam Long id) throws IOException { + WmsShipmentPackagingCode info = packagingCodeService.getById(id); + VUtil.trueThrowBusinessError(Objects.isNull(info)).throwMessage("包装箱不存在"); + WmsShipmentDelivery delivery = deliveryService.getByPackagingCodeId(id); + VUtil.trueThrowBusinessError(Objects.isNull(delivery)).throwMessage("发货单不存在"); + Map base = new HashMap<>(); + base.put("name", info.getName()); + base.put("materialNo", delivery.getMaterialNo()); + base.put("deviceNo", delivery.getDeviceNo()); + base.put("customerName", delivery.getCustomerName()); + base.put("soNo", delivery.getSoNo()); + List list = packagingCodeItemService.getPackList(id); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("装箱清单-" + info.getName() + ".xlsx", StandardCharsets.UTF_8)); + new Workbook() + .addSheet(new TemplateSheet(new ClassPathResource("template/装箱清单模版.xlsx").getInputStream()) + .setData("base", base) + .setData("list", list) + ).writeTo(response.getOutputStream()); + } + +} diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java index 5ff971a1..73219b1d 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java @@ -10,10 +10,12 @@ import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.*; import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO; +import com.nflg.wms.common.util.EecExcelUtil; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.*; import com.nflg.wms.repository.service.*; +import com.nflg.wms.shipment.pojo.dto.MaterialCodeForwardImportDTO; import com.nflg.wms.shipment.service.BasdeSerialNumberControllerService; import com.nflg.wms.shipment.util.KeyUtil; import com.nflg.wms.starter.BaseController; @@ -28,6 +30,7 @@ import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import org.ttzero.excel.entity.ListSheet; import org.ttzero.excel.entity.TemplateSheet; import org.ttzero.excel.entity.Workbook; import org.ttzero.excel.reader.ExcelReader; @@ -498,6 +501,47 @@ public class MaterialCodeController extends BaseController { return ApiResult.success(info); } + /** + * 代发物料-导出 + */ + @GetMapping("exportForward") + public void exportForward(HttpServletResponse response, @RequestParam Long id) throws IOException { + WmsShipmentMaterialCode materialCode = shipmentMaterialCodeService.getById(id); + VUtil.trueThrowBusinessError(Objects.isNull(materialCode)).throwMessage("清单不存在"); + List list = materialCodeForwardService.lambdaQuery() + .eq(WmsShipmentMaterialCodeForward::getMaterialCodeId, id) + .list(); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("代发物料-" + materialCode.getDeviceNo() + ".xlsx", StandardCharsets.UTF_8)); + new Workbook() + .addSheet(new ListSheet<>(Convert.toList(MaterialCodeForwardImportDTO.class, list))) + .writeTo(response.getOutputStream()); + } + + /** + * 代发物料-导入 + * @param id 清单ID + */ + @PostMapping("importForward") + public ApiResult importForward(@RequestParam("file") MultipartFile file, @RequestParam Long id) throws IOException { + List list = EecExcelUtil.readTo(file.getInputStream(), MaterialCodeForwardImportDTO.class); + list.removeIf(it -> StrUtil.isBlank(it.getMaterialName()) + || Objects.isNull(it.getNum()) + || StrUtil.isBlank(it.getBoxNo())); + if (CollectionUtil.isNotEmpty(list)) { + materialCodeForwardService.saveBatch( + list.stream() + .map(it -> Convert.convert(WmsShipmentMaterialCodeForward.class, it) + .setMaterialCodeId(id) + .setCreateBy(UserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()) + ) + .toList() + ); + } + return ApiResult.success(); + } + /** * 代发物料-添加 */ diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/PackagingCodeController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/PackagingCodeController.java index 18b91534..655fa0dc 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/PackagingCodeController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/PackagingCodeController.java @@ -17,6 +17,7 @@ import com.nflg.wms.repository.entity.WmsShipmentMaterialCodeItemQr; import com.nflg.wms.repository.entity.WmsShipmentPackagingCode; import com.nflg.wms.repository.entity.WmsShipmentPackagingCodeItem; import com.nflg.wms.repository.service.*; +import com.nflg.wms.shipment.service.BasdeSerialNumberControllerService; import com.nflg.wms.shipment.util.KeyUtil; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; @@ -54,6 +55,9 @@ public class PackagingCodeController extends BaseController { @Resource private IDictionaryItemService dictionaryItemService; + @Resource + private BasdeSerialNumberControllerService serialNumberControllerService; + /** * 新增包装码 */ @@ -62,7 +66,7 @@ public class PackagingCodeController extends BaseController { List datas = new ArrayList<>(); IntStream.range(0, count).forEach(i -> { WmsShipmentPackagingCode packagingCode = new WmsShipmentPackagingCode(); - packagingCode.setNo(KeyUtil.next()); + packagingCode.setNo(serialNumberControllerService.generateSerialNumber(28,"",3)); packagingCode.setCreateBy(UserUtil.getUserName()); packagingCode.setCreateTime(LocalDateTime.now()); datas.add(packagingCode); diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/pojo/dto/MaterialCodeForwardImportDTO.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/pojo/dto/MaterialCodeForwardImportDTO.java new file mode 100644 index 00000000..4c8439b8 --- /dev/null +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/pojo/dto/MaterialCodeForwardImportDTO.java @@ -0,0 +1,38 @@ +package com.nflg.wms.shipment.pojo.dto; + +import lombok.Data; +import org.ttzero.excel.annotation.ExcelColumn; + +import java.math.BigDecimal; + +@Data +public class MaterialCodeForwardImportDTO { + + /** + * 物料名称 + */ + @ExcelColumn("物料名称*") + private String materialName; + + /** + * 应发数量 + */ + @ExcelColumn("应发数量*") + private BigDecimal num; + + /** + * 装箱号 + */ + @ExcelColumn("装箱号*") + private String boxNo; + + /** + * 单位 + */ + private String unit; + + /** + * 备注 + */ + private String remark; +} diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/service/BasdeSerialNumberControllerService.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/service/BasdeSerialNumberControllerService.java index 1b18bbcb..e2d5bc46 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/service/BasdeSerialNumberControllerService.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/service/BasdeSerialNumberControllerService.java @@ -22,29 +22,30 @@ public class BasdeSerialNumberControllerService { @Resource private IBasdeSerialNumberService basdeSerialNumberService; + public String generateSerialNumber(Integer businessType) { + return generateSerialNumber(businessType, LocalDate.now().format(DATE_FORMATTER), 4); + } + @Retryable( maxAttempts = MAX_RETRY, // 最大重试次数(包括第一次调用) backoff = @Backoff(delay = 1000) // 重试间隔1秒 ) - public String generateSerialNumber(Integer businessType) { - String currentDate = LocalDate.now().format(DATE_FORMATTER); - + public String generateSerialNumber(Integer businessType, String middle, Integer length) { BasdeSerialNumber serialNumber = basdeSerialNumberService.lambdaQuery() .eq(BasdeSerialNumber::getBusinessType, businessType) .one(); - if (Objects.isNull(serialNumber)) { return null; } int nextSerial = 0; - if (StrUtil.equals(currentDate, serialNumber.getCurrentDateStr())) { + if (StrUtil.equals(middle, serialNumber.getCurrentDateStr())) { nextSerial = serialNumber.getMaxSerial(); } nextSerial = nextSerial + 1; serialNumber.setMaxSerial(nextSerial); - serialNumber.setCurrentDateStr(currentDate); + serialNumber.setCurrentDateStr(middle); basdeSerialNumberService.updateById(serialNumber); // 格式化为4位数字,不足补零 - return serialNumber.getBusinessPrefixNumber() + currentDate + String.format("%04d", nextSerial); + return serialNumber.getBusinessPrefixNumber() + middle + String.format("%0" + length + "d", nextSerial); } } diff --git a/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx b/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx index 8659068c..b646b745 100644 Binary files a/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx and b/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx differ diff --git a/nflg-wms-shipment/src/main/resources/template/装箱清单模版.xlsx b/nflg-wms-shipment/src/main/resources/template/装箱清单模版.xlsx new file mode 100644 index 00000000..8df884a3 Binary files /dev/null and b/nflg-wms-shipment/src/main/resources/template/装箱清单模版.xlsx differ