FeeReceiptInnerServiceSMOImpl.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.java110.fee.smo.impl;
  2. import com.java110.core.base.smo.BaseServiceSMO;
  3. import com.java110.dto.PageDto;
  4. import com.java110.dto.community.CommunitySettingDto;
  5. import com.java110.dto.fee.FeeReceiptDto;
  6. import com.java110.dto.fee.FeeReceiptDtoNew;
  7. import com.java110.fee.dao.IFeeReceiptServiceDao;
  8. import com.java110.intf.community.ICommunitySettingInnerServiceSMO;
  9. import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
  10. import com.java110.po.community.CommunitySettingPo;
  11. import com.java110.po.fee.FeeReceiptPo;
  12. import com.java110.utils.lock.DistributedLock;
  13. import com.java110.utils.util.BeanConvertUtil;
  14. import com.java110.utils.util.DateUtil;
  15. import com.java110.utils.util.StringUtil;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * @ClassName FloorInnerServiceSMOImpl
  25. * @Description 收据内部服务实现类
  26. * @Author wuxw
  27. * @Date 2019/4/24 9:20
  28. * @Version 1.0
  29. * add by wuxw 2019/4/24
  30. **/
  31. @RestController
  32. public class FeeReceiptInnerServiceSMOImpl extends BaseServiceSMO implements IFeeReceiptInnerServiceSMO {
  33. @Autowired
  34. private IFeeReceiptServiceDao feeReceiptServiceDaoImpl;
  35. @Autowired
  36. private ICommunitySettingInnerServiceSMO communitySettingInnerServiceSMOImpl;
  37. @Override
  38. public int saveFeeReceipt(@RequestBody FeeReceiptPo feeReceiptPo) {
  39. int saveFlag = 1;
  40. feeReceiptServiceDaoImpl.saveFeeReceiptInfo(BeanConvertUtil.beanCovertMap(feeReceiptPo));
  41. return saveFlag;
  42. }
  43. @Override
  44. public int saveFeeReceipts(@RequestBody List<FeeReceiptPo> feeReceiptPos) {
  45. List<Map> fees = new ArrayList<>();
  46. for (FeeReceiptPo feeReceiptPo : feeReceiptPos) {
  47. fees.add(BeanConvertUtil.beanCovertMap(feeReceiptPo));
  48. }
  49. Map info = new HashMap();
  50. info.put("feeReceiptPos", fees);
  51. feeReceiptServiceDaoImpl.saveFeeReceipts(info);
  52. return 1;
  53. }
  54. @Override
  55. public int updateFeeReceipt(@RequestBody FeeReceiptPo feeReceiptPo) {
  56. int saveFlag = 1;
  57. feeReceiptServiceDaoImpl.updateFeeReceiptInfo(BeanConvertUtil.beanCovertMap(feeReceiptPo));
  58. return saveFlag;
  59. }
  60. @Override
  61. public int deleteFeeReceipt(@RequestBody FeeReceiptPo feeReceiptPo) {
  62. int saveFlag = 1;
  63. feeReceiptPo.setStatusCd("1");
  64. feeReceiptServiceDaoImpl.updateFeeReceiptInfo(BeanConvertUtil.beanCovertMap(feeReceiptPo));
  65. return saveFlag;
  66. }
  67. @Override
  68. public List<FeeReceiptDto> queryFeeReceipts(@RequestBody FeeReceiptDto feeReceiptDto) {
  69. //校验是否传了 分页信息
  70. int page = feeReceiptDto.getPage();
  71. if (page != PageDto.DEFAULT_PAGE) {
  72. feeReceiptDto.setPage((page - 1) * feeReceiptDto.getRow());
  73. }
  74. List<FeeReceiptDto> feeReceipts = BeanConvertUtil.covertBeanList(feeReceiptServiceDaoImpl.getFeeReceiptInfo(BeanConvertUtil.beanCovertMap(feeReceiptDto)), FeeReceiptDto.class);
  75. return feeReceipts;
  76. }
  77. @Override
  78. public List<FeeReceiptDtoNew> queryFeeReceiptsNew(FeeReceiptDtoNew feeReceiptDto) {
  79. //校验是否传了 分页信息
  80. int page = feeReceiptDto.getPage();
  81. if (page != PageDto.DEFAULT_PAGE) {
  82. feeReceiptDto.setPage((page - 1) * feeReceiptDto.getRow());
  83. }
  84. List<FeeReceiptDtoNew> feeReceipts = BeanConvertUtil.covertBeanList(feeReceiptServiceDaoImpl.getFeeReceiptInfoNew(BeanConvertUtil.beanCovertMap(feeReceiptDto)), FeeReceiptDtoNew.class);
  85. return feeReceipts;
  86. }
  87. @Override
  88. public int queryFeeReceiptsCount(@RequestBody FeeReceiptDto feeReceiptDto) {
  89. return feeReceiptServiceDaoImpl.queryFeeReceiptsCount(BeanConvertUtil.beanCovertMap(feeReceiptDto));
  90. }
  91. /**
  92. * 生成收据编号
  93. *
  94. * @param communityId 小区ID
  95. * @return 收据编号
  96. */
  97. @Override
  98. public String generatorReceiptCode(@RequestBody String communityId) {
  99. // todo 枷锁
  100. String requestId = DistributedLock.getLockUUID();
  101. String key = this.getClass().getSimpleName() + communityId;
  102. String receiptCode = "";
  103. String preReceiptCode = "";
  104. String startCode = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_M);
  105. try {
  106. DistributedLock.waitGetDistributedLock(key, requestId);
  107. CommunitySettingDto communitySettingDto = new CommunitySettingDto();
  108. communitySettingDto.setCommunityId(communityId);
  109. communitySettingDto.setSettingType(CommunitySettingDto.SETTING_TYPE_FEE);
  110. communitySettingDto.setSettingKey(CommunitySettingDto.SETTING_KEY_RECEIPT_CODE);
  111. List<CommunitySettingDto> communitySettingDtos = communitySettingInnerServiceSMOImpl.queryCommunitySettings(communitySettingDto);
  112. //todo 没有设置 自动生成
  113. if (communitySettingDtos == null || communitySettingDtos.size() < 1) {
  114. saveReceiptCode(communityId);
  115. communitySettingDtos = communitySettingInnerServiceSMOImpl.queryCommunitySettings(communitySettingDto);
  116. }
  117. preReceiptCode = communitySettingDtos.get(0).getSettingValue();
  118. if (!StringUtil.isNumber(preReceiptCode)) {
  119. return startCode + preReceiptCode;
  120. }
  121. if(preReceiptCode.length() > 24){
  122. receiptCode = String.format("%024d", (Long.parseLong(preReceiptCode) + 1));
  123. }else{
  124. receiptCode = String.format("%0" + preReceiptCode.length() + "d", (Long.parseLong(preReceiptCode) + 1));
  125. }
  126. CommunitySettingPo communitySettingPo = new CommunitySettingPo();
  127. communitySettingPo.setCsId(communitySettingDtos.get(0).getCsId());
  128. communitySettingPo.setSettingValue(receiptCode);
  129. communitySettingInnerServiceSMOImpl.updateCommunitySetting(communitySettingPo);
  130. } finally {
  131. DistributedLock.releaseDistributedLock(key, requestId);
  132. }
  133. return startCode + receiptCode;
  134. }
  135. private void saveReceiptCode(String communityId) {
  136. }
  137. public IFeeReceiptServiceDao getFeeReceiptServiceDaoImpl() {
  138. return feeReceiptServiceDaoImpl;
  139. }
  140. public void setFeeReceiptServiceDaoImpl(IFeeReceiptServiceDao feeReceiptServiceDaoImpl) {
  141. this.feeReceiptServiceDaoImpl = feeReceiptServiceDaoImpl;
  142. }
  143. }