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