diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/PartSpareController.java b/src/main/java/com/xujie/sys/modules/pms/controller/PartSpareController.java index 862dfb1b..46d4727f 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/PartSpareController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/PartSpareController.java @@ -80,6 +80,18 @@ public class PartSpareController { return R.ok(); } + /** + * @author: sxm + * @description: 获取当前BU下备品备件编码最大值+1 + * @param + * @return: com.xujie.common.utils.R + */ + @RequestMapping("/getMaxPartNo") + public R getMaxPartNo(@RequestBody PartSpareEntity partSpare) { + String maxPartNo = partSpareService.getMaxPartNo(partSpare); + return R.ok().put("maxPartNo", maxPartNo); + } + /** * @author: sxm * @description: 修改备品备件信息 diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/PartSpareMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/PartSpareMapper.java index 48cc3420..3e74bf38 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/PartSpareMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/PartSpareMapper.java @@ -43,5 +43,7 @@ public interface PartSpareMapper extends BaseMapper { List selectInventoryStock(InventoryStockData inData); + List listPartNoByBu(@Param("site") String site, @Param("buNo") String buNo); + void insertInventoryStock(InventoryStockData inData); } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/PartSpareServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/PartSpareServiceImpl.java index 7c7fe552..4228e745 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/PartSpareServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/PartSpareServiceImpl.java @@ -33,6 +33,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Service("partSpareService") @@ -127,6 +129,39 @@ public class PartSpareServiceImpl extends ServiceImpl codes = partSpareMapper.listPartNoByBu(site, buNo); + Pattern pattern = Pattern.compile("^(\\D*?)(\\d+)$"); + String prefix = "R"; + int digits = 4; + long maxNum = -1L; + for (String code : codes) { + if (code == null) { + continue; + } + Matcher matcher = pattern.matcher(code.trim()); + if (!matcher.matches()) { + continue; + } + long num = Long.parseLong(matcher.group(2)); + if (num > maxNum) { + maxNum = num; + prefix = matcher.group(1); + digits = matcher.group(2).length(); + } + } + long next = (maxNum < 0) ? 1L : maxNum + 1; + return prefix + String.format("%0" + digits + "d", next); + } + @Override public void deletePartSpare(PartSpareEntity partSpare) { // 校验备品备件是否在被使用 diff --git a/src/main/java/com/xujie/sys/modules/pms/service/PartSpareService.java b/src/main/java/com/xujie/sys/modules/pms/service/PartSpareService.java index b0719e50..365c8023 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/PartSpareService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/PartSpareService.java @@ -57,6 +57,13 @@ public interface PartSpareService extends IService { */ void savePartSpare(PartSpareEntity partSpare); + /** + * @description: 获取当前BU下备品备件编码最大值+1 + * @param [partSpare] + * @return: java.lang.String + */ + String getMaxPartNo(PartSpareEntity partSpare); + /** * @author: sxm * @description: 修改在途信息 diff --git a/src/main/resources/mapper/pms/PartSpareMapper.xml b/src/main/resources/mapper/pms/PartSpareMapper.xml index 86f4c9b9..d5bef519 100644 --- a/src/main/resources/mapper/pms/PartSpareMapper.xml +++ b/src/main/resources/mapper/pms/PartSpareMapper.xml @@ -128,7 +128,7 @@ and A.coreFlag = #{query.coreFlag} - order by A.create_date desc + order by A.part_no desc, A.create_date desc + + + UPDATE part_spare SET part_description = #{partDescription},