diff --git a/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/StringUtils.java b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/StringUtils.java index 7491ffc..7164338 100644 --- a/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/StringUtils.java +++ b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/StringUtils.java @@ -1,10 +1,8 @@ package com.bonus.sgzb.common.core.utils; import java.security.SecureRandom; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; + import com.bonus.sgzb.common.core.constant.Constants; import com.bonus.sgzb.common.core.text.StrFormatter; import lombok.extern.slf4j.Slf4j; @@ -24,7 +22,18 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** 下划线 */ private static final char SEPARATOR = '_'; - private static SecureRandom random = null; + private static final Map CAT_MAP; + + static { + CAT_MAP = new HashMap<>(); + CAT_MAP.put("线路施工类", "A"); + CAT_MAP.put("变电施工类", "B"); + CAT_MAP.put("特种及其他设备", "C"); + CAT_MAP.put("检修试验", "D"); + CAT_MAP.put("创新装备", "E"); + } + + /** * 获取参数不为空值 @@ -557,29 +566,19 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils return sb.toString(); } -// public static String getDeviceCode() { -// String randomNum = null; -// try { -// random = SecureRandom.getInstance("SHA1PRNG"); -// randomNum = String.format("%02d", random.nextInt(100)); -// } catch (NoSuchAlgorithmException e) { -// log.error("生成随机数失败,", e); -// } -// String deviceCode = "CSG-A101-" + DateUtils.dateTime() + randomNum; //like CSG-A101-2024061900001, need save it -// return deviceCode; -// } - - public static String getDeviceCode(Date date, String maId) { + /** 生成工器具编码: 类似CSG-A101-2024061900001 */ + public static String getDeviceCode(String ownerCode, String typeName, String typeId, Date date, String maId) { int number = Integer.parseInt(maId); - if (number > 50000) { - number = number % 50000; + if (number > 30000) { + number = number % 30000; } String numberStr = String.format("%05d", number); - String deviceCode = "CSG-A101-" + DateUtils.getDateTimeString(date) + numberStr; //like CSG-A101-2024061900001 + String deviceCode = ownerCode + "-" + CAT_MAP.get(typeName) + typeId + "-" + DateUtils.getDateTimeString(date) + numberStr; return deviceCode; } // public static void main(String[] args) { -// System.out.println(getDeviceCode(new Date(), "500322")); +// System.out.println(getDeviceCode("CSG", "线路施工类", "102", new Date(), "500322")); // } + } diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java index 1070173..7279d52 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java @@ -1417,7 +1417,8 @@ public class TmTaskServiceImpl implements TmTaskService { intelVO.setSpecificationType(""); intelVO.setValidityDate(new Date()); //每个设备不同点的设置 - intelVO.setDeviceCode(StringUtils.getDeviceCode(subTask.getCreateTime(), subTask.getMaId())); + String ownerCode = loginUser.getSysUser().getDept().getEnterpriseOwnershipCode(); + intelVO.setDeviceCode(StringUtils.getDeviceCode(ownerCode, subTask.getTypeName(), subTask.getTypeId(), subTask.getCreateTime(), subTask.getMaId())); intelVO.setFactoryDate(subTask.getOutFacTime()); intelVO.setMachineryCode(subTask.getMaId()); intelVO.setTrialDate(subTask.getThisCheckTime()); diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/app/TmTaskMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/app/TmTaskMapper.xml index d2f4f0d..e442ce3 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/app/TmTaskMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/app/TmTaskMapper.xml @@ -1176,14 +1176,21 @@