OrderBillsPlansServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. package com.ruoyi.system.service.impl;
  2. import com.ruoyi.common.annotation.DataSource;
  3. import com.ruoyi.common.core.domain.AjaxResult;
  4. import com.ruoyi.common.core.redis.RedisCache;
  5. import com.ruoyi.common.enums.DataSourceType;
  6. import com.ruoyi.common.utils.SecurityUtils;
  7. import com.ruoyi.common.utils.SnowFlakeUtil;
  8. import com.ruoyi.system.domain.*;
  9. import com.ruoyi.system.domain.vo.ImgVo;
  10. import com.ruoyi.system.domain.vo.ItemsVo;
  11. import com.ruoyi.system.domain.vo.LoadFeeItemsVo;
  12. import com.ruoyi.system.domain.vo.OrderBillsPlansVo;
  13. import com.ruoyi.system.mapper.EmplsMapper;
  14. import com.ruoyi.system.mapper.OrderBillsPlansMapper;
  15. import com.ruoyi.system.mapper.SysConfigMapper;
  16. import com.ruoyi.system.service.IOrderBillsPlansService;
  17. import org.springframework.beans.BeanUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import javax.servlet.http.HttpServletRequest;
  21. import java.beans.Transient;
  22. import java.text.SimpleDateFormat;
  23. import java.util.*;
  24. /**
  25. * 火烈鸟数据库
  26. */
  27. @Service
  28. @DataSource(value = DataSourceType.SLAVE)
  29. public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
  30. /**
  31. * 业务表
  32. */
  33. @Autowired
  34. private OrderBillsPlansMapper orderBillsPlansMapper;
  35. /**
  36. * Empls表
  37. */
  38. @Autowired
  39. private EmplsMapper emplsMapper;
  40. @Autowired
  41. private RedisCache redisCache;
  42. /**
  43. * 查询业务表数据List
  44. *
  45. * @param dataStart 日期起
  46. * @param dataEnd 日期止
  47. * @return
  48. */
  49. @Override
  50. public List<WfTaskList> getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo) {
  51. // 根据登录名去匹配EMPLS 里面的EMPL 找到 EMPLID
  52. String userName = SecurityUtils.getLoginUser().getUsername();
  53. Long emplId = emplsMapper.getByEmpl(userName);
  54. // Long emplId = 0L;
  55. Map<String, Object> map = new HashMap<>();
  56. if (dataEnd != null && !"".equals(dataEnd)) {
  57. dataStart += " 00:00:00";
  58. dataEnd += " 23:59:59";
  59. }
  60. if (orderNo != null && !"".equals(orderNo)) {
  61. orderNo = "%" + orderNo + "%";
  62. }
  63. Object actId = redisCache.getCacheObject("sys_config:risk.actId");
  64. map.put("emplId", emplId);
  65. map.put("dataStart", dataStart);
  66. map.put("dataEnd", dataEnd);
  67. map.put("orderNo", orderNo);
  68. map.put("actId", actId.toString());
  69. List<WfTaskList> orderBillsPlansList = orderBillsPlansMapper.getOrderBillsPlansLsit(map);
  70. for (WfTaskList wfTaskList : orderBillsPlansList) {
  71. Long status317 = wfTaskList.getStatus317();
  72. Long status376 = wfTaskList.getStatus376();
  73. if (status317 == null || status376 == null) {
  74. break;
  75. }
  76. if (status317 == 2) {
  77. wfTaskList.setBillStatusName("里程待提交");
  78. } else if (status376 == 2 || status376 == 0) {
  79. wfTaskList.setBillStatusName("费用待提交");
  80. } else if (status376 == 6) {
  81. wfTaskList.setBillStatusName("报单完成");
  82. }
  83. }
  84. return orderBillsPlansList;
  85. }
  86. /**
  87. * 根据orderNo查询
  88. *
  89. * @param orderNo orderNo
  90. * @return 详情
  91. */
  92. @Override
  93. public OrderBillsPlansVo getOrderBillsPlansByid(Long orderNo, HttpServletRequest request) {
  94. OrderBillsPlans orderBillsPlans = orderBillsPlansMapper.getOrderBillsPlansByid(orderNo);
  95. OrderBillsPlansVo vo = new OrderBillsPlansVo();
  96. BeanUtils.copyProperties(orderBillsPlans, vo);
  97. SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  98. Date loadDate = orderBillsPlans.getLoadDate();
  99. if (loadDate != null) {
  100. vo.setLoadDateString(ft.format(loadDate));
  101. }
  102. Date unLoadDate = orderBillsPlans.getUnLoadDate();
  103. if (unLoadDate != null) {
  104. vo.setUnLoadDateString(ft.format(unLoadDate));
  105. }
  106. Object actId = redisCache.getCacheObject("sys_config:risk.actId");
  107. orderBillsPlans.setActId(Long.valueOf(actId.toString()));
  108. // 查找照片List
  109. List<Long> attachIdList = orderBillsPlansMapper.getAttachMngsAttachIdBySysIdAndEntityIdAndActId(orderBillsPlans);
  110. List<ImgVo> fileList1 = new ArrayList<>();
  111. for (Long attachId : attachIdList) {
  112. ImgVo imgVo = new ImgVo();
  113. String serverName = request.getServerName();
  114. int serverPort = request.getServerPort();
  115. String url = "http://" + serverName + ":" + serverPort + "/attachmngs/img/" + attachId;
  116. imgVo.setUrl(url);
  117. fileList1.add(imgVo);
  118. }
  119. vo.setFileList1(fileList1);
  120. return vo;
  121. }
  122. /**
  123. * 保存保单信息
  124. *
  125. * @param orderBillsPlansVo
  126. * @return
  127. */
  128. @Override
  129. public AjaxResult putOrderBillsPlansByid(OrderBillsPlansVo orderBillsPlansVo) {
  130. OrderBillsPlans orderBillsPlans = new OrderBillsPlans();
  131. BeanUtils.copyProperties(orderBillsPlansVo, orderBillsPlans);
  132. // 日期转换
  133. SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  134. try {
  135. String loadDateString = orderBillsPlansVo.getLoadDateString();
  136. String unLoadDateString = orderBillsPlansVo.getUnLoadDateString();
  137. if (loadDateString != null && !"".equals(loadDateString)) {
  138. orderBillsPlans.setLoadDate(ft.parse(loadDateString));
  139. } else {
  140. orderBillsPlans.setLoadDate(null);
  141. }
  142. if (unLoadDateString != null && !"".equals(unLoadDateString)) {
  143. orderBillsPlans.setUnLoadDate(ft.parse(unLoadDateString));
  144. } else {
  145. orderBillsPlans.setUnLoadDate(null);
  146. }
  147. } catch (Exception e) {
  148. System.out.println(e.getMessage());
  149. }
  150. Integer i = orderBillsPlansMapper.updateOrderBillsPlansByid(orderBillsPlans);
  151. if (i == 1) {
  152. return AjaxResult.success();
  153. } else {
  154. return AjaxResult.error();
  155. }
  156. }
  157. /**
  158. * 获取报销费用list
  159. *
  160. * @return
  161. */
  162. @Override
  163. public List<ItemsVo> getItemsList() {
  164. return orderBillsPlansMapper.getItemsList();
  165. }
  166. /**
  167. * 报销
  168. *
  169. * @param orderBillsPlansVo
  170. * @return 操作结果
  171. */
  172. @Transient
  173. @Override
  174. public AjaxResult insertLoadFeeItems(OrderBillsPlansVo orderBillsPlansVo) {
  175. // 更新业务表
  176. Integer i = orderBillsPlansMapper.updateOrderBillsPlansByOrderNo(orderBillsPlansVo);
  177. // 更新LoadBills
  178. Integer y = orderBillsPlansMapper.updateLoadBillsByEntityID(orderBillsPlansVo);
  179. // 根据登录名去匹配EMPLS 里面的EMPL 找到 EMPLID
  180. String userName = SecurityUtils.getLoginUser().getUsername();
  181. Empls empls = emplsMapper.getEmplsByEmpl(userName);
  182. // 更新明细
  183. List<ItemsVo> itemsVoList = orderBillsPlansVo.getItemsVoList();
  184. // if (itemsVoList == null || itemsVoList.size() == 0) {
  185. // return AjaxResult.success();
  186. // }
  187. // 删除所有明细
  188. // Integer t = orderBillsPlansMapper.deleteLoadFeeItemsByEntityId(orderBillsPlansVo.getLoadBillsEntityId());
  189. //
  190. // Long lineNo = 1L;
  191. // for (ItemsVo itemsVo : itemsVoList) {
  192. // itemsVo.setLineNo(lineNo);
  193. // Integer x = orderBillsPlansMapper.insertLoadFeeItems(orderBillsPlansVo, itemsVo, empls);
  194. // lineNo++;
  195. // }
  196. for (LoadFeeItems loadFeeItems : orderBillsPlansVo.getLoadFeeItemsList()) {
  197. if (loadFeeItems.getAmt() == 0)
  198. break;
  199. orderBillsPlansMapper.updateOrderBillsPlansBySysidEntityidLineno(loadFeeItems);
  200. }
  201. return AjaxResult.success();
  202. }
  203. /**
  204. * 查询报销费用报销金额下拉选
  205. *
  206. * @return
  207. */
  208. @Override
  209. public AjaxResult getGasStations() {
  210. return AjaxResult.success(orderBillsPlansMapper.getGasStations());
  211. }
  212. /**
  213. * 查询报销信息
  214. *
  215. * @param
  216. * @return 数据
  217. */
  218. @Override
  219. public OrderBillsPlansVo getLoadFeeItems(Long orderNo, HttpServletRequest request) {
  220. OrderBillsPlansVo data = orderBillsPlansMapper.getOrderBillsPlansByOrder(orderNo);
  221. // 图片
  222. Object actId = redisCache.getCacheObject("sys_config:risk.actId");
  223. data.setActId(Long.valueOf(actId.toString()));
  224. // 查找照片List
  225. List<Long> attachIdList = orderBillsPlansMapper.getAttachMngsAttachIdBySysIdAndEntityIdAndActId(data);
  226. List<ImgVo> fileList1 = new ArrayList<>();
  227. for (Long attachId : attachIdList) {
  228. ImgVo imgVo = new ImgVo();
  229. String serverName = request.getServerName();
  230. int serverPort = request.getServerPort();
  231. String url = "http://" + serverName + ":" + serverPort + "/attachmngs/img/" + attachId;
  232. imgVo.setUrl(url);
  233. fileList1.add(imgVo);
  234. }
  235. data.setFileList1(fileList1);
  236. List<LoadFeeItems> loadFeeItemsList = orderBillsPlansMapper.getLoadFeeItemsByEntityId(data.getLoadBillsEntityId());
  237. data.setLoadFeeItemsList(loadFeeItemsList);
  238. return data;
  239. }
  240. /**
  241. * 插入主库图片数据
  242. *
  243. * @param tmsAttachMngs
  244. * @return
  245. */
  246. @Override
  247. public AjaxResult insertAttachMngs(TmsAttachMngs tmsAttachMngs) {
  248. // 查询最大的lineNo进行+1赋值
  249. Long lineNo = orderBillsPlansMapper.getAttachMngsBySysIdEntityId(tmsAttachMngs);
  250. String username = SecurityUtils.getLoginUser().getUsername();
  251. tmsAttachMngs.setActId(375L);
  252. String replace = UUID.randomUUID().toString().replace("-", "");
  253. tmsAttachMngs.setAttachName(replace + ".jpg");
  254. tmsAttachMngs.setLineNo(lineNo == null ? 1L : lineNo + 1);
  255. tmsAttachMngs.setUserName(username);
  256. // 插入照片表
  257. Integer i = orderBillsPlansMapper.insertAttachMngs(tmsAttachMngs);
  258. // 查询AttachtypeId返回前端在照片库中插入
  259. Long attachId = orderBillsPlansMapper.getAttachMngsAttachtypeIdBySysIdAndEntityIdAndLineNo(tmsAttachMngs);
  260. return AjaxResult.success(attachId);
  261. }
  262. /**
  263. * 根据attachId在Tms库的AttachMngs表删除数据
  264. *
  265. * @param attachId
  266. * @return
  267. */
  268. @Override
  269. public AjaxResult deleteTmsAttachMngs(Long attachId) {
  270. Integer i = orderBillsPlansMapper.deleteTmsAttachMngsByAttachId(attachId);
  271. if (i == 1) {
  272. return AjaxResult.success();
  273. }
  274. return AjaxResult.error();
  275. }
  276. }