FeeInnerServiceSMOImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. package com.java110.fee.smo.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.java110.core.base.smo.BaseServiceSMO;
  5. import com.java110.dto.PageDto;
  6. import com.java110.dto.fee.BillDto;
  7. import com.java110.dto.fee.BillOweFeeDto;
  8. import com.java110.dto.fee.FeeAttrDto;
  9. import com.java110.dto.fee.FeeConfigDto;
  10. import com.java110.dto.fee.FeeDto;
  11. import com.java110.fee.dao.IFeeAttrServiceDao;
  12. import com.java110.fee.dao.IFeeServiceDao;
  13. import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
  14. import com.java110.intf.fee.IFeeInnerServiceSMO;
  15. import com.java110.intf.user.IUserInnerServiceSMO;
  16. import com.java110.po.fee.PayFeePo;
  17. import com.java110.utils.util.BeanConvertUtil;
  18. import com.java110.utils.util.DateUtil;
  19. import com.java110.utils.util.StringUtil;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.RequestBody;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * @ClassName FloorInnerServiceSMOImpl
  29. * @Description 费用内部服务实现类
  30. * @Author wuxw
  31. * @Date 2019/4/24 9:20
  32. * @Version 1.0
  33. * add by wuxw 2019/4/24
  34. **/
  35. @RestController
  36. public class FeeInnerServiceSMOImpl extends BaseServiceSMO implements IFeeInnerServiceSMO {
  37. @Autowired
  38. private IFeeServiceDao feeServiceDaoImpl;
  39. @Autowired
  40. private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
  41. @Autowired
  42. private IUserInnerServiceSMO userInnerServiceSMOImpl;
  43. @Autowired
  44. private IFeeAttrServiceDao feeAttrServiceDaoImpl;
  45. @Override
  46. public List<FeeDto> queryFees(@RequestBody FeeDto feeDto) {
  47. //校验是否传了 分页信息
  48. int page = feeDto.getPage();
  49. if (page != PageDto.DEFAULT_PAGE) {
  50. feeDto.setPage((page - 1) * feeDto.getRow());
  51. }
  52. List<FeeDto> fees = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.getFeeInfo(BeanConvertUtil.beanCovertMap(feeDto)), FeeDto.class);
  53. if (fees == null || fees.size() == 0) {
  54. return fees;
  55. }
  56. // String[] userIds = getUserIds(fees);
  57. // //根据 userId 查询用户信息
  58. // List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
  59. for (FeeDto fee : fees) {
  60. refreshFee(fee);
  61. }
  62. List<String> feeIds = new ArrayList<>();
  63. for (FeeDto tmpFeeDto : fees) {
  64. feeIds.add(tmpFeeDto.getFeeId());
  65. }
  66. Map info = new HashMap();
  67. info.put("feeIds", feeIds);
  68. info.put("communityId", feeDto.getCommunityId());
  69. List<Map> attrMaps = feeAttrServiceDaoImpl.getFeeAttrInfo(info);
  70. List<FeeAttrDto> feeAttrDtos = BeanConvertUtil.covertBeanList(attrMaps, FeeAttrDto.class);
  71. List<FeeAttrDto> tmpFeeAttrDtos = null;
  72. for (FeeDto tmpFeeDto : fees) {
  73. tmpFeeAttrDtos = new ArrayList<>();
  74. for (FeeAttrDto feeAttrDto : feeAttrDtos) {
  75. if (tmpFeeDto.getFeeId().equals(feeAttrDto.getFeeId())) {
  76. tmpFeeAttrDtos.add(feeAttrDto);
  77. }
  78. }
  79. tmpFeeDto.setFeeAttrDtos(tmpFeeAttrDtos);
  80. }
  81. return fees;
  82. }
  83. @Override
  84. public List<FeeDto> queryBusinessFees(@RequestBody FeeDto feeDto) {
  85. List<Map> fees = feeServiceDaoImpl.getBusinessFeeInfo(BeanConvertUtil.beanCovertMap(feeDto));
  86. return BeanConvertUtil.covertBeanList(fees, FeeDto.class);
  87. }
  88. /**
  89. * 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中
  90. *
  91. * @param fee 小区费用信息
  92. * //@param users 用户列表
  93. */
  94. private void refreshFee(FeeDto fee) {
  95. // for (UserDto user : users) {
  96. // if (fee.getUserId().equals(user.getUserId())) {
  97. // BeanConvertUtil.covertBean(user, fee);
  98. // }
  99. // }
  100. if (!StringUtil.isEmpty(fee.getImportFeeName())) {
  101. //fee.setFeeName(fee.getImportFeeName() + "(" + fee.getFeeName() + ")");
  102. fee.setFeeName(fee.getImportFeeName());
  103. }
  104. }
  105. /**
  106. * 获取批量userId
  107. *
  108. * @param fees 小区楼信息
  109. * @return 批量userIds 信息
  110. */
  111. private String[] getUserIds(List<FeeDto> fees) {
  112. List<String> userIds = new ArrayList<String>();
  113. for (FeeDto fee : fees) {
  114. userIds.add(fee.getUserId());
  115. }
  116. return userIds.toArray(new String[userIds.size()]);
  117. }
  118. @Override
  119. public int queryFeesCount(@RequestBody FeeDto feeDto) {
  120. return feeServiceDaoImpl.queryFeesCount(BeanConvertUtil.beanCovertMap(feeDto));
  121. }
  122. @Override
  123. public List<FeeDto> queryFeeByAttr(FeeAttrDto feeAttrDto) {
  124. //校验是否传了 分页信息
  125. int page = feeAttrDto.getPage();
  126. if (page != PageDto.DEFAULT_PAGE) {
  127. feeAttrDto.setPage((page - 1) * feeAttrDto.getRow());
  128. }
  129. List<FeeDto> fees = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.queryFeeByAttr(BeanConvertUtil.beanCovertMap(feeAttrDto)), FeeDto.class);
  130. return fees;
  131. }
  132. @Override
  133. public int queryFeeByAttrCount(FeeAttrDto feeAttrDto) {
  134. return feeServiceDaoImpl.queryFeeByAttrCount(BeanConvertUtil.beanCovertMap(feeAttrDto));
  135. }
  136. @Override
  137. public int queryBillCount(@RequestBody BillDto billDto) {
  138. return feeServiceDaoImpl.queryBillCount(BeanConvertUtil.beanCovertMap(billDto));
  139. }
  140. /**
  141. * 查询账期
  142. *
  143. * @param billDto
  144. * @return
  145. */
  146. @Override
  147. public List<BillDto> queryBills(@RequestBody BillDto billDto) {
  148. //校验是否传了 分页信息
  149. int page = billDto.getPage();
  150. if (page != PageDto.DEFAULT_PAGE) {
  151. billDto.setPage((page - 1) * billDto.getRow());
  152. }
  153. List<BillDto> billDtos = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.queryBills(BeanConvertUtil.beanCovertMap(billDto)), BillDto.class);
  154. return billDtos;
  155. }
  156. @Override
  157. public int computeBillOweFeeCount(@RequestBody FeeDto feeDto) {
  158. return feeServiceDaoImpl.computeBillOweFeeCount(BeanConvertUtil.beanCovertMap(feeDto));
  159. }
  160. @Override
  161. public List<FeeDto> computeBillOweFee(@RequestBody FeeDto feeDto) {
  162. int page = feeDto.getPage();
  163. if (page != PageDto.DEFAULT_PAGE) {
  164. feeDto.setPage((page - 1) * feeDto.getRow());
  165. }
  166. List<FeeDto> fees = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.computeBillOweFee(BeanConvertUtil.beanCovertMap(feeDto)), FeeDto.class);
  167. return fees;
  168. }
  169. @Override
  170. public List<FeeDto> computeEveryOweFee(FeeDto feeDto) {
  171. int page = feeDto.getPage();
  172. if (page != PageDto.DEFAULT_PAGE) {
  173. feeDto.setPage((page - 1) * feeDto.getRow());
  174. }
  175. List<FeeDto> fees = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.computeEveryOweFee(BeanConvertUtil.beanCovertMap(feeDto)), FeeDto.class);
  176. return fees;
  177. }
  178. @Override
  179. public int computeEveryOweFeeCount(FeeDto feeDto) {
  180. return feeServiceDaoImpl.computeEveryOweFeeCount(BeanConvertUtil.beanCovertMap(feeDto));
  181. }
  182. @Override
  183. public int queryBillOweFeeCount(@RequestBody BillOweFeeDto billDto) {
  184. return feeServiceDaoImpl.queryBillOweFeeCount(BeanConvertUtil.beanCovertMap(billDto));
  185. }
  186. /**
  187. * 查询账期
  188. *
  189. * @param billDto
  190. * @return
  191. */
  192. @Override
  193. public List<BillOweFeeDto> queryBillOweFees(@RequestBody BillOweFeeDto billDto) {
  194. //校验是否传了 分页信息
  195. int page = billDto.getPage();
  196. if (page != PageDto.DEFAULT_PAGE) {
  197. billDto.setPage((page - 1) * billDto.getRow());
  198. }
  199. List<BillOweFeeDto> billOweFeeDtos = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.queryBillOweFees(BeanConvertUtil.beanCovertMap(billDto)), BillOweFeeDto.class);
  200. return billOweFeeDtos;
  201. }
  202. /**
  203. * 保存欠费
  204. *
  205. * @param billDto
  206. * @return
  207. */
  208. @Override
  209. public int insertBillOweFees(@RequestBody BillOweFeeDto billDto) {
  210. return feeServiceDaoImpl.insertBillOweFees(BeanConvertUtil.beanCovertMap(billDto));
  211. }
  212. @Override
  213. public int updateBillOweFees(@RequestBody BillOweFeeDto billDto) {
  214. return feeServiceDaoImpl.updateBillOweFees(BeanConvertUtil.beanCovertMap(billDto));
  215. }
  216. /**
  217. * 保存账单
  218. *
  219. * @param billDto
  220. * @return
  221. */
  222. @Override
  223. public int insertBill(@RequestBody BillDto billDto) {
  224. return feeServiceDaoImpl.insertBill(BeanConvertUtil.beanCovertMap(billDto));
  225. }
  226. @Override
  227. public int updateFee(@RequestBody PayFeePo payFeePo) {
  228. feeServiceDaoImpl.updateFeeInfoInstance(BeanConvertUtil.beanCovertMap(payFeePo));
  229. return 1;
  230. }
  231. @Override
  232. public int saveFee(@RequestBody List<PayFeePo> payFeePos) {
  233. List<Map> fees = new ArrayList<>();
  234. for (PayFeePo payFeePo : payFeePos) {
  235. fees.add(BeanConvertUtil.beanCovertMap(payFeePo));
  236. }
  237. Map info = new HashMap();
  238. info.put("payFeePos", fees);
  239. return feeServiceDaoImpl.insertFees(info);
  240. }
  241. @Override
  242. public JSONArray getAssetsFee(@RequestBody String communityId) {
  243. JSONArray data = new JSONArray();
  244. FeeConfigDto feeConfigDto = new FeeConfigDto();
  245. feeConfigDto.setCommunityId(communityId);
  246. feeConfigDto.setCurTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
  247. List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
  248. if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
  249. return data;
  250. }
  251. for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
  252. dealFeeConfig(data, tmpFeeConfigDto);
  253. }
  254. return data;
  255. }
  256. private void dealFeeConfig(JSONArray data, FeeConfigDto tmpFeeConfigDto) {
  257. JSONObject config = new JSONObject();
  258. Map info = new HashMap();
  259. info.put("configId", tmpFeeConfigDto.getConfigId());
  260. info.put("communityId", tmpFeeConfigDto.getCommunityId());
  261. info.put("arrearsEndTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
  262. info.put("state", FeeDto.STATE_DOING);
  263. int oweFeeCount = feeServiceDaoImpl.queryFeesCount(info);
  264. config.put("oweFeeCount", oweFeeCount);
  265. info.put("noArrearsEndTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
  266. info.put("state", FeeDto.STATE_DOING);
  267. int feeCount = feeServiceDaoImpl.queryFeesCount(info);
  268. config.put("feeCount", feeCount);
  269. config.put("feeName", tmpFeeConfigDto.getFeeName());
  270. data.add(config);
  271. }
  272. public IFeeServiceDao getFeeServiceDaoImpl() {
  273. return feeServiceDaoImpl;
  274. }
  275. public void setFeeServiceDaoImpl(IFeeServiceDao feeServiceDaoImpl) {
  276. this.feeServiceDaoImpl = feeServiceDaoImpl;
  277. }
  278. public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
  279. return userInnerServiceSMOImpl;
  280. }
  281. public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
  282. this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
  283. }
  284. }