From 7958f1dddb8a7f4e70d232b07a7703955ecedae0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期六, 26 八月 2023 12:45:33 +0800
Subject: [PATCH] 优化diamante
---
service-fee/src/main/java/com/java110/fee/smo/impl/FeeReceiptInnerServiceSMOImpl.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 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
index 43c1daf..060664d 100755
--- 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,13 +2,20 @@
import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.PageDto;
+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.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;
@@ -31,6 +38,9 @@
@Autowired
private IFeeReceiptServiceDao feeReceiptServiceDaoImpl;
+
+ @Autowired
+ private ICommunitySettingInnerServiceSMO communitySettingInnerServiceSMOImpl;
@Override
@@ -107,6 +117,69 @@
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