Jelajahi Sumber

1.资产项目编号生成规则修改

GouGengquan 6 bulan lalu
induk
melakukan
a352a3abaf

+ 8 - 0
service/src/main/java/com/dayou/service/IBusinessNumberService.java

@@ -80,4 +80,12 @@ public interface IBusinessNumberService extends IService<BusinessNumber> {
      * @return
      */
     List<IdNameVO> takeLetterSubNumber(String orderId, TakeNumberEnum takeNumberEnum,String mainNumber,List<IdNameVO> targets );
+
+    /**
+     * 取项目编号
+     * 资产项目订单号取号:年份4位 + 月份2位 + 序号3位(当月下单量)
+     * 如: 2025010001
+     * @return String
+     */
+    String takeAssetsOrderNumber();
 }

+ 1 - 1
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -218,7 +218,7 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
     @Transactional(rollbackFor = Exception.class)
     public WorkNodeCommit add(Assets assets) {
         //获取项目编号
-        assets.setOrderId(businessNumberService.takeOrderNumber());
+        assets.setOrderId(businessNumberService.takeAssetsOrderNumber());
         //获取下单部门id
         assets.setMarketDepartmentId(assetsMapper.getManagerDepId(assets.getClientManagerId()));
         // 判断分单类型

+ 33 - 0
service/src/main/java/com/dayou/service/impl/BusinessNumberServiceImpl.java

@@ -22,6 +22,7 @@ import java.util.List;
 
 import static com.dayou.common.Constants.*;
 import static com.dayou.enums.MainBusinessEnum.ALL_BUSINESS;
+import static com.dayou.enums.MainBusinessEnum.ASSET_BUSINESS;
 import static com.dayou.enums.TakeNumberEnum.ORDER_NUMBER;
 
 /**
@@ -156,6 +157,38 @@ public class BusinessNumberServiceImpl extends ServiceImpl<BusinessNumberMapper,
     }
 
     /**
+     * 取项目编号
+     * 资产项目订单号取号:年份4位 + 月份2位 + 序号3位(当月下单量)
+     * 如: 2025010001
+     * @return String
+     */
+    @Override
+    public synchronized String takeAssetsOrderNumber() {
+        Date now = new Date();
+        int year = DateUtils.getYear(now);
+        int month = DateUtils.getMonth(now);
+        BusinessNumber exist = null;
+        int number;
+        //
+        exist = this.getOne(new LambdaQueryWrapper<BusinessNumber>().eq(BusinessNumber::getTakeType, ORDER_NUMBER).eq(BusinessNumber::getBusinessType, ASSET_BUSINESS)
+                .eq(BusinessNumber::getYear, year).eq(BusinessNumber::getMonth, month).eq(BaseEntity::getDeleted, Boolean.FALSE));
+        if (exist==null){
+            exist = new BusinessNumber();
+            exist.setTakeType(ORDER_NUMBER.name());
+            exist.setBusinessType(ASSET_BUSINESS.name());
+            exist.setYear(year);
+            exist.setNextNo(1);
+            exist.setMonth(month);
+            this.save(exist);
+            number = exist.getNextNo();
+        }
+        number = exist.getNextNo();
+        this.update(new LambdaUpdateWrapper<BusinessNumber>().set(BusinessNumber::getNextNo,(number+1)).eq(BaseEntity::getId,exist.getId()));
+        // 格式化
+        return new StringBuffer().append(year).append(zero2.format(month)).append(zero3.format(number)).toString();
+    }
+
+    /**
      * 根据主号生成字号
      * @param mainNumber
      * @param targets