AmsDispatchSaleOrderServiceImpl.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper;
  3. import com.steerinfo.dil.model.AmsDispatchSaleOrder;
  4. import com.steerinfo.dil.service.IAmsDispatchSaleOrderService;
  5. import com.steerinfo.dil.util.MapRemoveUtil;
  6. import com.steerinfo.framework.mapper.IBaseMapper;
  7. import com.steerinfo.framework.service.impl.BaseServiceImpl;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.math.BigDecimal;
  11. import java.util.*;
  12. /**
  13. * AmsDispatchSaleOrder服务实现:
  14. * @author generator
  15. * @version 1.0-SNAPSHORT 2021-09-10 03:59
  16. * 类描述
  17. * 修订历史:
  18. * 日期:2021-09-10
  19. * 作者:generator
  20. * 参考:
  21. * 描述:AmsDispatchSaleOrder服务实现
  22. * @see null
  23. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  24. */
  25. @Service(value = "amsDispatchSaleOrderService")
  26. public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatchSaleOrder, BigDecimal> implements IAmsDispatchSaleOrderService {
  27. @Autowired
  28. private AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper;
  29. @Override
  30. protected IBaseMapper<AmsDispatchSaleOrder, BigDecimal> getMapper() {
  31. return amsDispatchSaleOrderMapper;
  32. }
  33. public List<Map<String, Object>> getOpenDispatchSaleOrder(Map<String, Object> mapValue) {
  34. return amsDispatchSaleOrderMapper.getOpenDispatchSaleOrder(mapValue);
  35. }
  36. /**
  37. * 查询最大id
  38. * @return
  39. */
  40. @Override
  41. public BigDecimal selectMaxId() {
  42. return amsDispatchSaleOrderMapper.selectOtherId();
  43. }
  44. public int insert(AmsDispatchSaleOrder ad) {
  45. ad.setDispatchTime(new Date());
  46. ad.setInsertTime(new Date());
  47. ad.setInsertUsername("admin");
  48. return amsDispatchSaleOrderMapper.insertSelective(ad);
  49. }
  50. /**
  51. * 查询app端公开抢单
  52. * @return
  53. */
  54. @Override
  55. public List<Map<String, Object>> getDispatchSaleOrderList() {
  56. List<Map<String, Object>> dispatchSaleOrderList = amsDispatchSaleOrderMapper.getDispatchSaleOrderList();
  57. for (Map<String,Object> map: dispatchSaleOrderList) {
  58. Date dispatchDealTime = (Date) map.get("dispatchDealTime");
  59. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  60. String isDeal;
  61. if (dispatchDealTime == null) {
  62. isDeal = "已成交";
  63. }
  64. else {
  65. isDeal = "未成交";
  66. }
  67. map.put("isDeal",isDeal);
  68. // // 先把map中的key-value放到新的saleMap里面
  69. // Map<String,Object> saleMap = new HashMap<>();
  70. // saleMap.putAll(map);
  71. // 使用Map清空工具迭代删除map中的所有key-value
  72. // MapRemoveUtil.removeMap(map);
  73. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  74. String allMaterialName = "";
  75. String allMaterialNumber = "";
  76. String allMaterialTheoreticalWeight = "";
  77. String allMaterialSpecificationModel = "";
  78. for (Map<String,Object> materialMap : materialMessages) {
  79. if (materialMap != null) {
  80. String materialName = (String) materialMap.get("materialName");
  81. allMaterialName += materialName + "/";
  82. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  83. if (materialTheoreticalWeight != null) {
  84. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  85. }
  86. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  87. allMaterialNumber += saleOrderMaterialNumber + "/";
  88. String specificationModel = materialMap.get("specificationModel").toString();
  89. if (specificationModel != null) {
  90. allMaterialSpecificationModel += specificationModel + "/";
  91. }
  92. }
  93. }
  94. String subMaterialName = null;
  95. String subMaterialNumber = null;
  96. String subMaterialTheoreticalWeight = null;
  97. String subMaterialSpecificationModel = null;
  98. if (allMaterialName.length() >= 2) {
  99. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 2);
  100. }
  101. if (allMaterialName.length() < 2) {
  102. subMaterialName = allMaterialName;
  103. }
  104. if (allMaterialNumber.length() >= 2) {
  105. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 2);
  106. }
  107. if (allMaterialNumber.length() < 2) {
  108. subMaterialNumber = allMaterialNumber;
  109. }
  110. if (allMaterialTheoreticalWeight.length() >= 2) {
  111. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 2);
  112. }
  113. if (allMaterialTheoreticalWeight.length() < 2) {
  114. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  115. }
  116. if (allMaterialSpecificationModel.length() >= 2) {
  117. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 2);
  118. }
  119. if (allMaterialSpecificationModel.length() < 2) {
  120. subMaterialSpecificationModel = allMaterialSpecificationModel;
  121. }
  122. map.put("allMaterialName",subMaterialName);
  123. map.put("allMaterialNumber",subMaterialNumber);
  124. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  125. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  126. }
  127. return dispatchSaleOrderList;
  128. }
  129. /**
  130. * 抢单/接收订单
  131. * @param dispatchId
  132. * @param carrierId
  133. * @return
  134. */
  135. @Override
  136. public int lockDispatchSaleOrder(BigDecimal dispatchId, BigDecimal carrierId) {
  137. AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId);
  138. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  139. amsDispatchSaleOrder.setCarrierId(carrierId);
  140. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
  141. amsDispatchSaleOrder.setUpdateTime(new Date());
  142. int result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
  143. return result;
  144. }
  145. /**
  146. * 查询app端已抢的销售订单
  147. * @param carrierId
  148. * @return
  149. */
  150. @Override
  151. public List<Map<String, Object>> getLockDispatchSaleOrderList(Integer carrierId) {
  152. List<Map<String,Object>> mapList = amsDispatchSaleOrderMapper.getLockDispatchSaleOrderList(new BigDecimal(carrierId));
  153. if (mapList == null) {
  154. return null;
  155. }
  156. for (Map<String, Object> map : mapList) {
  157. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  158. List<BigDecimal> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
  159. if (orderIdList != null || orderIdList.size() != 0) {
  160. mapList.remove(map);
  161. }
  162. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  163. String allMaterialName = "";
  164. String allMaterialNumber = "";
  165. String allMaterialTheoreticalWeight = "";
  166. String allMaterialSpecificationModel = "";
  167. if (materialMessages != null) {
  168. for (Map<String, Object> materialMap : materialMessages) {
  169. if (materialMap != null) {
  170. String materialName = (String) materialMap.get("materialName");
  171. allMaterialName += materialName + "/";
  172. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  173. if (materialTheoreticalWeight != null) {
  174. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  175. }
  176. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  177. allMaterialNumber += saleOrderMaterialNumber + "/";
  178. String specificationModel = materialMap.get("specificationModel").toString();
  179. if (specificationModel != null) {
  180. allMaterialSpecificationModel += specificationModel + "/";
  181. }
  182. }
  183. }
  184. String subMaterialName = null;
  185. String subMaterialNumber = null;
  186. String subMaterialTheoreticalWeight = null;
  187. String subMaterialSpecificationModel = null;
  188. if (allMaterialName.length() >= 2) {
  189. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 2);
  190. }
  191. if (allMaterialName.length() < 2) {
  192. subMaterialName = allMaterialName;
  193. }
  194. if (allMaterialNumber.length() >= 2) {
  195. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 2);
  196. }
  197. if (allMaterialNumber.length() < 2) {
  198. subMaterialNumber = allMaterialNumber;
  199. }
  200. if (allMaterialTheoreticalWeight.length() >= 2) {
  201. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 2);
  202. }
  203. if (allMaterialTheoreticalWeight.length() < 2) {
  204. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  205. }
  206. if (allMaterialSpecificationModel.length() >= 2) {
  207. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 2);
  208. }
  209. if (allMaterialSpecificationModel.length() < 2) {
  210. subMaterialSpecificationModel = allMaterialSpecificationModel;
  211. }
  212. map.put("allMaterialName",subMaterialName);
  213. map.put("allMaterialNumber",subMaterialNumber);
  214. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  215. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  216. }
  217. // // 将已经清空的map里面put进一个map和一个list<Map>
  218. // map.put("materialMessages",materialMessages);
  219. // map.put("saleMap",saleMap);
  220. else {
  221. map.put("allMaterialName",allMaterialName);
  222. map.put("allMaterialNumber",allMaterialNumber);
  223. map.put("allMaterialTheoreticalWeight",allMaterialTheoreticalWeight);
  224. map.put("allMaterialSpecificationModel",allMaterialSpecificationModel);
  225. }
  226. }
  227. return mapList;
  228. }
  229. /**
  230. * 展示pc端司机已经抢到的订单
  231. * @param mapValue
  232. * @return
  233. */
  234. @Override
  235. public List<Map<String, Object>> getLockDispatchSaleOrderListForPc(Map<String,Object> mapValue) {
  236. List<Map<String, Object>> mapList = amsDispatchSaleOrderMapper.getLockDispatchSaleOrderListForPc(mapValue);
  237. if (mapList == null) {
  238. return null;
  239. }
  240. for (Map<String, Object> map : mapList) {
  241. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  242. List<BigDecimal> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
  243. if (orderIdList != null || orderIdList.size() != 0) {
  244. mapList.remove(map);
  245. }
  246. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  247. String allMaterialName = "";
  248. String allMaterialNumber = "";
  249. String allMaterialTheoreticalWeight = "";
  250. String allMaterialSpecificationModel = "";
  251. if (materialMessages != null) {
  252. for (Map<String, Object> materialMap : materialMessages) {
  253. if (materialMap != null) {
  254. String materialName = (String) materialMap.get("materialName");
  255. allMaterialName += materialName + "/";
  256. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  257. if (materialTheoreticalWeight != null) {
  258. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  259. }
  260. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  261. allMaterialNumber += saleOrderMaterialNumber + "/";
  262. String specificationModel = materialMap.get("specificationModel").toString();
  263. if (specificationModel != null) {
  264. allMaterialSpecificationModel += specificationModel + "/";
  265. }
  266. }
  267. }
  268. String subMaterialName = null;
  269. String subMaterialNumber = null;
  270. String subMaterialTheoreticalWeight = null;
  271. String subMaterialSpecificationModel = null;
  272. if (allMaterialName.length() >= 2) {
  273. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 2);
  274. }
  275. if (allMaterialName.length() < 2) {
  276. subMaterialName = allMaterialName;
  277. }
  278. if (allMaterialNumber.length() >= 2) {
  279. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 2);
  280. }
  281. if (allMaterialNumber.length() < 2) {
  282. subMaterialNumber = allMaterialNumber;
  283. }
  284. if (allMaterialTheoreticalWeight.length() >= 2) {
  285. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 2);
  286. }
  287. if (allMaterialTheoreticalWeight.length() < 2) {
  288. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  289. }
  290. if (allMaterialSpecificationModel.length() >= 2) {
  291. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 2);
  292. }
  293. if (allMaterialSpecificationModel.length() < 2) {
  294. subMaterialSpecificationModel = allMaterialSpecificationModel;
  295. }
  296. map.put("allMaterialName",subMaterialName);
  297. map.put("allMaterialNumber",subMaterialNumber);
  298. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  299. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  300. }
  301. // // 将已经清空的map里面put进一个map和一个list<Map>
  302. // map.put("materialMessages",materialMessages);
  303. // map.put("saleMap",saleMap);
  304. else {
  305. map.put("allMaterialName",allMaterialName);
  306. map.put("allMaterialNumber",allMaterialNumber);
  307. map.put("allMaterialTheoreticalWeight",allMaterialTheoreticalWeight);
  308. map.put("allMaterialSpecificationModel",allMaterialSpecificationModel);
  309. }
  310. }
  311. return mapList;
  312. }
  313. /**
  314. * 查询PC端公开抢单
  315. * @param mapValue
  316. * @return
  317. */
  318. @Override
  319. public List<Map<String, Object>> getPCDispatchSaleOrderList(Map<String, Object> mapValue) {
  320. List<Map<String, Object>> dispatchSaleOrderList = amsDispatchSaleOrderMapper.getPCDispatchSaleOrderList(mapValue);
  321. for (Map<String,Object> map: dispatchSaleOrderList) {
  322. // Date dispatchDealTime = (Date) map.get("dispatchDealTime");
  323. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  324. // String isDeal;
  325. // if (dispatchDealTime == null) {
  326. // isDeal = "已成交";
  327. // }
  328. // else {
  329. // isDeal = "未成交";
  330. // }
  331. // map.put("isDeal",isDeal);
  332. // // 先把map中的key-value放到新的saleMap里面
  333. // Map<String,Object> saleMap = new HashMap<>();
  334. // saleMap.putAll(map);
  335. // 使用Map清空工具迭代删除map中的所有key-value
  336. // MapRemoveUtil.removeMap(map);
  337. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  338. String allMaterialName = "";
  339. String allMaterialNumber = "";
  340. String allMaterialTheoreticalWeight = "";
  341. String allMaterialSpecificationModel = "";
  342. for (Map<String,Object> materialMap : materialMessages) {
  343. if (materialMap != null) {
  344. String materialName = (String) materialMap.get("materialName");
  345. allMaterialName += materialName + "/";
  346. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  347. if (materialTheoreticalWeight != null) {
  348. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  349. }
  350. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  351. allMaterialNumber += saleOrderMaterialNumber + "/";
  352. String specificationModel = materialMap.get("specificationModel").toString();
  353. if (specificationModel != null) {
  354. allMaterialSpecificationModel += specificationModel + "/";
  355. }
  356. }
  357. }
  358. String subMaterialName = null;
  359. String subMaterialNumber = null;
  360. String subMaterialTheoreticalWeight = null;
  361. String subMaterialSpecificationModel = null;
  362. if (allMaterialName.length() >= 2) {
  363. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 2);
  364. }
  365. if (allMaterialName.length() < 2) {
  366. subMaterialName = allMaterialName;
  367. }
  368. if (allMaterialNumber.length() >= 2) {
  369. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 2);
  370. }
  371. if (allMaterialNumber.length() < 2) {
  372. subMaterialNumber = allMaterialNumber;
  373. }
  374. if (allMaterialTheoreticalWeight.length() >= 2) {
  375. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 2);
  376. }
  377. if (allMaterialTheoreticalWeight.length() < 2) {
  378. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  379. }
  380. if (allMaterialSpecificationModel.length() >= 2) {
  381. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 2);
  382. }
  383. if (allMaterialSpecificationModel.length() < 2) {
  384. subMaterialSpecificationModel = allMaterialSpecificationModel;
  385. }
  386. map.put("allMaterialName",subMaterialName);
  387. map.put("allMaterialNumber",subMaterialNumber);
  388. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  389. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  390. }
  391. return dispatchSaleOrderList;
  392. }
  393. }