From 5f83dbf4942e7f2e67963ae4ece013c22f091b72 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期五, 25 八月 2023 09:18:26 +0800
Subject: [PATCH] 优化物品

---
 service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java |  111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 109 insertions(+), 2 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index 564dce3..060664d
--- a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java
@@ -2,17 +2,28 @@
 
 
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.PageDto;
-import com.java110.dto.feeReceipt.FeeReceiptDto;
+import com.java110.dto.community.CommunitySettingDto;
+import com.java110.dto.fee.FeeReceiptDto;
+import com.java110.dto.fee.FeeReceiptDtoNew;
 import com.java110.fee.dao.IFeeReceiptServiceDao;
+import com.java110.intf.community.ICommunitySettingInnerServiceSMO;
 import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
-import com.java110.po.feeReceipt.FeeReceiptPo;
+import com.java110.po.community.CommunitySettingPo;
+import com.java110.po.fee.FeeReceiptPo;
+import com.java110.utils.lock.DistributedLock;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -28,12 +39,29 @@
     @Autowired
     private IFeeReceiptServiceDao feeReceiptServiceDaoImpl;
 
+    @Autowired
+    private ICommunitySettingInnerServiceSMO communitySettingInnerServiceSMOImpl;
+
 
     @Override
     public int saveFeeReceipt(@RequestBody FeeReceiptPo feeReceiptPo) {
         int saveFlag = 1;
         feeReceiptServiceDaoImpl.saveFeeReceiptInfo(BeanConvertUtil.beanCovertMap(feeReceiptPo));
         return saveFlag;
+    }
+
+    @Override
+    public int saveFeeReceipts(@RequestBody List<FeeReceiptPo> feeReceiptPos) {
+
+        List<Map> fees = new ArrayList<>();
+        for (FeeReceiptPo feeReceiptPo : feeReceiptPos) {
+            fees.add(BeanConvertUtil.beanCovertMap(feeReceiptPo));
+        }
+
+        Map info = new HashMap();
+        info.put("feeReceiptPos", fees);
+        feeReceiptServiceDaoImpl.saveFeeReceipts(info);
+        return 1;
     }
 
     @Override
@@ -69,10 +97,89 @@
 
 
     @Override
+    public List<FeeReceiptDtoNew> queryFeeReceiptsNew(FeeReceiptDtoNew feeReceiptDto) {
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+        int page = feeReceiptDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            feeReceiptDto.setPage((page - 1) * feeReceiptDto.getRow());
+        }
+
+        List<FeeReceiptDtoNew> feeReceipts = BeanConvertUtil.covertBeanList(feeReceiptServiceDaoImpl.getFeeReceiptInfoNew(BeanConvertUtil.beanCovertMap(feeReceiptDto)), FeeReceiptDtoNew.class);
+
+        return feeReceipts;
+    }
+
+
+    @Override
     public int queryFeeReceiptsCount(@RequestBody FeeReceiptDto feeReceiptDto) {
         return feeReceiptServiceDaoImpl.queryFeeReceiptsCount(BeanConvertUtil.beanCovertMap(feeReceiptDto));
     }
 
+    /**
+     * 鐢熸垚鏀舵嵁缂栧彿
+     *
+     * @param communityId 灏忓尯ID
+     * @return 鏀舵嵁缂栧彿
+     */
+    @Override
+    public String generatorReceiptCode(@RequestBody String communityId) {
+
+        // todo 鏋烽攣
+        String requestId = DistributedLock.getLockUUID();
+        String key = this.getClass().getSimpleName() + communityId;
+        String receiptCode = "";
+        String preReceiptCode = "";
+        String startCode = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_M);
+        try {
+            DistributedLock.waitGetDistributedLock(key, requestId);
+            CommunitySettingDto communitySettingDto = new CommunitySettingDto();
+            communitySettingDto.setCommunityId(communityId);
+            communitySettingDto.setSettingType(CommunitySettingDto.SETTING_TYPE_FEE);
+            communitySettingDto.setSettingKey(CommunitySettingDto.SETTING_KEY_RECEIPT_CODE);
+            List<CommunitySettingDto> communitySettingDtos = communitySettingInnerServiceSMOImpl.queryCommunitySettings(communitySettingDto);
+            //todo 娌℃湁璁剧疆 鑷姩鐢熸垚
+            if (communitySettingDtos == null || communitySettingDtos.size() < 1) {
+                saveReceiptCode(communityId);
+                communitySettingDtos = communitySettingInnerServiceSMOImpl.queryCommunitySettings(communitySettingDto);
+            }
+
+            preReceiptCode = communitySettingDtos.get(0).getSettingValue().trim();
+            if (!StringUtil.isNumber(preReceiptCode)) {
+                return startCode + preReceiptCode;
+            }
+
+            if (preReceiptCode.length() > 24) {
+                receiptCode = String.format("%024d", (Long.parseLong(preReceiptCode) + 1));
+            } else {
+                receiptCode = String.format("%0" + preReceiptCode.length() + "d", (Long.parseLong(preReceiptCode) + 1));
+            }
+
+            CommunitySettingPo communitySettingPo = new CommunitySettingPo();
+            communitySettingPo.setCsId(communitySettingDtos.get(0).getCsId());
+            communitySettingPo.setSettingValue(receiptCode);
+            communitySettingInnerServiceSMOImpl.updateCommunitySetting(communitySettingPo);
+
+        } finally {
+            DistributedLock.releaseDistributedLock(key, requestId);
+        }
+
+        return startCode + receiptCode;
+    }
+
+    private void saveReceiptCode(String communityId) {
+        CommunitySettingPo communitySettingPo = new CommunitySettingPo();
+        communitySettingPo.setCommunityId(communityId);
+        communitySettingPo.setCsId(GenerateCodeFactory.getGeneratorId("10"));
+        communitySettingPo.setSettingType(CommunitySettingDto.SETTING_TYPE_FEE);
+        communitySettingPo.setSettingKey(CommunitySettingDto.SETTING_KEY_RECEIPT_CODE);
+        communitySettingPo.setSettingValue("001");
+        communitySettingPo.setSettingName("鏀舵嵁寮�濮嬬紪鍙�");
+        communitySettingPo.setRemark("绯荤粺鑷姩鐢熸垚");
+        communitySettingInnerServiceSMOImpl.saveCommunitySetting(communitySettingPo);
+    }
+
     public IFeeReceiptServiceDao getFeeReceiptServiceDaoImpl() {
         return feeReceiptServiceDaoImpl;
     }

--
Gitblit v1.8.0