AmsDispatchSaleOrderServiceImpl.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper;
  3. import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
  4. import com.steerinfo.dil.mapper.AmsSaleTrucknoMaterialMapper;
  5. import com.steerinfo.dil.model.AmsDispatchSaleOrder;
  6. import com.steerinfo.dil.model.AmsSaleOrderMaterial;
  7. import com.steerinfo.dil.service.IAmsDispatchSaleOrderService;
  8. import com.steerinfo.dil.util.DataChange;
  9. import com.steerinfo.dil.util.MapRemoveUtil;
  10. import com.steerinfo.framework.mapper.IBaseMapper;
  11. import com.steerinfo.framework.service.impl.BaseServiceImpl;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.math.BigDecimal;
  16. import java.util.*;
  17. /**
  18. * AmsDispatchSaleOrder服务实现:
  19. * @author generator
  20. * @version 1.0-SNAPSHORT 2021-09-10 03:59
  21. * 类描述
  22. * 修订历史:
  23. * 日期:2021-09-10
  24. * 作者:generator
  25. * 参考:
  26. * 描述:AmsDispatchSaleOrder服务实现
  27. * @see null
  28. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  29. */
  30. @Service(value = "amsDispatchSaleOrderService")
  31. public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatchSaleOrder, BigDecimal> implements IAmsDispatchSaleOrderService {
  32. @Autowired
  33. private AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper;
  34. @Autowired
  35. AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
  36. @Override
  37. protected IBaseMapper<AmsDispatchSaleOrder, BigDecimal> getMapper() {
  38. return amsDispatchSaleOrderMapper;
  39. }
  40. public List<Map<String, Object>> getOpenDispatchSaleOrder(Map<String, Object> mapValue) {
  41. return amsDispatchSaleOrderMapper.getOpenDispatchSaleOrder(mapValue);
  42. }
  43. /**
  44. * 查询最大id
  45. * @return
  46. */
  47. @Override
  48. public BigDecimal selectMaxId() {
  49. return amsDispatchSaleOrderMapper.selectOtherId();
  50. }
  51. public int insert(AmsDispatchSaleOrder ad) {
  52. ad.setDispatchTime(new Date());
  53. ad.setInsertTime(new Date());
  54. ad.setInsertUsername("admin");
  55. return amsDispatchSaleOrderMapper.insertSelective(ad);
  56. }
  57. /**
  58. * 查询app端公开抢单
  59. * @return
  60. */
  61. @Override
  62. public List<Map<String, Object>> getDispatchSaleOrderList() {
  63. List<Map<String, Object>> dispatchSaleOrderList = amsDispatchSaleOrderMapper.getDispatchSaleOrderList();
  64. for (Map<String,Object> map: dispatchSaleOrderList) {
  65. Date dispatchDealTime = (Date) map.get("dispatchDealTime");
  66. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  67. String isDeal;
  68. if (dispatchDealTime == null) {
  69. isDeal = "已成交";
  70. }
  71. else {
  72. isDeal = "未成交";
  73. }
  74. map.put("isDeal",isDeal);
  75. // // 先把map中的key-value放到新的saleMap里面
  76. // Map<String,Object> saleMap = new HashMap<>();
  77. // saleMap.putAll(map);
  78. // 使用Map清空工具迭代删除map中的所有key-value
  79. // MapRemoveUtil.removeMap(map);
  80. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  81. String allMaterialName = "";
  82. String allMaterialNumber = "";
  83. String allMaterialTheoreticalWeight = "";
  84. String allMaterialSpecificationModel = "";
  85. for (Map<String,Object> materialMap : materialMessages) {
  86. if (materialMap != null) {
  87. String materialName = (String) materialMap.get("materialName");
  88. allMaterialName += materialName + "/";
  89. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  90. if (materialTheoreticalWeight != null) {
  91. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  92. }
  93. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  94. allMaterialNumber += saleOrderMaterialNumber + "/";
  95. String specificationModel = materialMap.get("specificationModel").toString();
  96. if (specificationModel != null) {
  97. allMaterialSpecificationModel += specificationModel + "/";
  98. }
  99. }
  100. }
  101. String subMaterialName = null;
  102. String subMaterialNumber = null;
  103. String subMaterialTheoreticalWeight = null;
  104. String subMaterialSpecificationModel = null;
  105. if (allMaterialName.length() >= 2) {
  106. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
  107. }
  108. if (allMaterialName.length() < 2) {
  109. subMaterialName = allMaterialName;
  110. }
  111. if (allMaterialNumber.length() >= 2) {
  112. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
  113. }
  114. if (allMaterialNumber.length() < 2) {
  115. subMaterialNumber = allMaterialNumber;
  116. }
  117. if (allMaterialTheoreticalWeight.length() >= 2) {
  118. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
  119. }
  120. if (allMaterialTheoreticalWeight.length() < 2) {
  121. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  122. }
  123. if (allMaterialSpecificationModel.length() >= 2) {
  124. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
  125. }
  126. if (allMaterialSpecificationModel.length() < 2) {
  127. subMaterialSpecificationModel = allMaterialSpecificationModel;
  128. }
  129. map.put("allMaterialName",subMaterialName);
  130. map.put("allMaterialNumber",subMaterialNumber);
  131. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  132. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  133. }
  134. return dispatchSaleOrderList;
  135. }
  136. /**
  137. * 抢单/接收订单
  138. * @param dispatchId
  139. * @param carrierSsoId
  140. * @return
  141. */
  142. @Override
  143. public int lockDispatchSaleOrder(BigDecimal dispatchId, String carrierSsoId) {
  144. List<Map<String,Object>> carrierIdList = amsDispatchSaleOrderMapper.getCarrierIdBySSO(carrierSsoId);
  145. AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId);
  146. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  147. if (carrierIdList != null && carrierIdList.size() == 1) {
  148. BigDecimal carrierId = (BigDecimal) carrierIdList.get(0).get("carrierId");
  149. amsDispatchSaleOrder.setCarrierId(carrierId);
  150. }
  151. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
  152. amsDispatchSaleOrder.setUpdateTime(new Date());
  153. int result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
  154. return result;
  155. }
  156. /**
  157. * 查询app端已抢的销售订单
  158. * @param carrierId
  159. * @return
  160. */
  161. @Override
  162. public List<Map<String, Object>> getLockDispatchSaleOrderList(Integer carrierId) {
  163. List<Map<String,Object>> mapList = amsDispatchSaleOrderMapper.getLockDispatchSaleOrderList(new BigDecimal(carrierId));
  164. if (mapList == null) {
  165. return null;
  166. }
  167. for (Map<String, Object> map : mapList) {
  168. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  169. List<Map<String,Object>> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
  170. if (orderIdList != null || orderIdList.size() != 0) {
  171. mapList.remove(map);
  172. }
  173. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  174. String allMaterialName = "";
  175. String allMaterialNumber = "";
  176. String allMaterialTheoreticalWeight = "";
  177. String allMaterialSpecificationModel = "";
  178. if (materialMessages != null) {
  179. for (Map<String, Object> materialMap : materialMessages) {
  180. if (materialMap != null) {
  181. String materialName = (String) materialMap.get("materialName");
  182. allMaterialName += materialName + "/";
  183. String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
  184. if (materialTheoreticalWeight != null) {
  185. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  186. }
  187. String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
  188. allMaterialNumber += saleOrderMaterialNumber + "/";
  189. String specificationModel = materialMap.get("specificationModel").toString();
  190. if (specificationModel != null) {
  191. allMaterialSpecificationModel += specificationModel + "/";
  192. }
  193. }
  194. }
  195. String subMaterialName = null;
  196. String subMaterialNumber = null;
  197. String subMaterialTheoreticalWeight = null;
  198. String subMaterialSpecificationModel = null;
  199. if (allMaterialName.length() >= 2) {
  200. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
  201. }
  202. if (allMaterialName.length() < 2) {
  203. subMaterialName = allMaterialName;
  204. }
  205. if (allMaterialNumber.length() >= 2) {
  206. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
  207. }
  208. if (allMaterialNumber.length() < 2) {
  209. subMaterialNumber = allMaterialNumber;
  210. }
  211. if (allMaterialTheoreticalWeight.length() >= 2) {
  212. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
  213. }
  214. if (allMaterialTheoreticalWeight.length() < 2) {
  215. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  216. }
  217. if (allMaterialSpecificationModel.length() >= 2) {
  218. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
  219. }
  220. if (allMaterialSpecificationModel.length() < 2) {
  221. subMaterialSpecificationModel = allMaterialSpecificationModel;
  222. }
  223. map.put("allMaterialName",subMaterialName);
  224. map.put("allMaterialNumber",subMaterialNumber);
  225. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  226. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  227. }
  228. // // 将已经清空的map里面put进一个map和一个list<Map>
  229. // map.put("materialMessages",materialMessages);
  230. // map.put("saleMap",saleMap);
  231. else {
  232. map.put("allMaterialName",allMaterialName);
  233. map.put("allMaterialNumber",allMaterialNumber);
  234. map.put("allMaterialTheoreticalWeight",allMaterialTheoreticalWeight);
  235. map.put("allMaterialSpecificationModel",allMaterialSpecificationModel);
  236. }
  237. }
  238. return mapList;
  239. }
  240. /**
  241. * 展示pc端司机已经抢到的订单
  242. * @param mapValue
  243. * @return
  244. */
  245. @Override
  246. public List<Map<String, Object>> getLockDispatchSaleOrderListForPc(Map<String,Object> mapValue) {
  247. String carrierSsoId = (String) mapValue.get("carrierSsoId");
  248. List<Map<String,Object>> carrierIdList = amsDispatchSaleOrderMapper.getCarrierIdBySSO(carrierSsoId);
  249. if (carrierIdList != null && carrierIdList.size() == 1) {
  250. BigDecimal carrierId = (BigDecimal) carrierIdList.get(0).get("carrierId");
  251. mapValue.put("carrierId", carrierId);
  252. }
  253. else {
  254. mapValue.put("carrierId",null);
  255. }
  256. List<Map<String, Object>> mapList = amsDispatchSaleOrderMapper.getLockDispatchSaleOrderListForPc(mapValue);
  257. if (mapList == null) {
  258. return null;
  259. }
  260. for (Map<String, Object> map : mapList) {
  261. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  262. BigDecimal orderId = (BigDecimal) map.get("orderId");
  263. if (orderId == null) {
  264. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  265. String allMaterialName = "";
  266. String allMaterialNumber = "";
  267. String allMaterialTheoreticalWeight = "";
  268. String allMaterialSpecificationModel = "";
  269. if (materialMessages != null) {
  270. for (Map<String, Object> materialMap : materialMessages) {
  271. if (materialMap != null) {
  272. String materialName = (String) materialMap.get("materialName");
  273. allMaterialName += materialName + "/";
  274. BigDecimal materialTheoreticalWeight = (BigDecimal) materialMap.get("materialTheoreticalWeight");
  275. if (materialTheoreticalWeight != null) {
  276. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  277. }
  278. BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
  279. allMaterialNumber += saleOrderMaterialNumber + "/";
  280. String specificationModel = (String) materialMap.get("specificationModel");
  281. if (specificationModel != null) {
  282. allMaterialSpecificationModel += specificationModel + "/";
  283. }
  284. }
  285. }
  286. String subMaterialName = null;
  287. String subMaterialNumber = null;
  288. String subMaterialTheoreticalWeight = null;
  289. String subMaterialSpecificationModel = null;
  290. if (allMaterialName.length() >= 2) {
  291. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
  292. }
  293. if (allMaterialName.length() < 2) {
  294. subMaterialName = allMaterialName;
  295. }
  296. if (allMaterialNumber.length() >= 2) {
  297. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
  298. }
  299. if (allMaterialNumber.length() < 2) {
  300. subMaterialNumber = allMaterialNumber;
  301. }
  302. if (allMaterialTheoreticalWeight.length() >= 2) {
  303. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
  304. }
  305. if (allMaterialTheoreticalWeight.length() < 2) {
  306. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  307. }
  308. if (allMaterialSpecificationModel.length() >= 2) {
  309. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
  310. }
  311. if (allMaterialSpecificationModel.length() < 2) {
  312. subMaterialSpecificationModel = allMaterialSpecificationModel;
  313. }
  314. map.put("allMaterialName", subMaterialName);
  315. map.put("allMaterialNumber", subMaterialNumber);
  316. map.put("allMaterialTheoreticalWeight", subMaterialTheoreticalWeight);
  317. map.put("allMaterialSpecificationModel", subMaterialSpecificationModel);
  318. }
  319. // // 将已经清空的map里面put进一个map和一个list<Map>
  320. // map.put("materialMessages",materialMessages);
  321. // map.put("saleMap",saleMap);
  322. else {
  323. map.put("allMaterialName", allMaterialName);
  324. map.put("allMaterialNumber", allMaterialNumber);
  325. map.put("allMaterialTheoreticalWeight", allMaterialTheoreticalWeight);
  326. map.put("allMaterialSpecificationModel", allMaterialSpecificationModel);
  327. }
  328. }
  329. }
  330. return mapList;
  331. }
  332. /**
  333. * 查询PC端公开抢单
  334. * @param mapValue
  335. * @return
  336. */
  337. @Override
  338. public List<Map<String, Object>> getPCDispatchSaleOrderList(Map<String, Object> mapValue) {
  339. String carrierSsoId = (String) mapValue.get("carrierSsoId");
  340. List<Map<String,Object>> carrierIdList = amsDispatchSaleOrderMapper.getCarrierIdBySSO(carrierSsoId);
  341. if (carrierIdList != null && carrierIdList.size() == 1) {
  342. BigDecimal carrierId = (BigDecimal) carrierIdList.get(0).get("carrierId");
  343. mapValue.put("carrierId", carrierId);
  344. }
  345. else {
  346. mapValue.put("carrierId",null);
  347. }
  348. List<Map<String, Object>> dispatchSaleOrderList = amsDispatchSaleOrderMapper.getPCDispatchSaleOrderList(mapValue);
  349. for (Map<String,Object> map: dispatchSaleOrderList) {
  350. // Date dispatchDealTime = (Date) map.get("dispatchDealTime");
  351. BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
  352. // String isDeal;
  353. // if (dispatchDealTime == null) {
  354. // isDeal = "已成交";
  355. // }
  356. // else {
  357. // isDeal = "未成交";
  358. // }
  359. // map.put("isDeal",isDeal);
  360. // // 先把map中的key-value放到新的saleMap里面
  361. // Map<String,Object> saleMap = new HashMap<>();
  362. // saleMap.putAll(map);
  363. // 使用Map清空工具迭代删除map中的所有key-value
  364. // MapRemoveUtil.removeMap(map);
  365. List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
  366. String allMaterialName = "";
  367. String allMaterialNumber = "";
  368. String allMaterialTheoreticalWeight = "";
  369. String allMaterialSpecificationModel = "";
  370. for (Map<String,Object> materialMap : materialMessages) {
  371. if (materialMap != null) {
  372. String materialName = (String) materialMap.get("materialName");
  373. allMaterialName += materialName + "/";
  374. BigDecimal materialTheoreticalWeight = (BigDecimal)materialMap.get("materialTheoreticalWeight");
  375. if (materialTheoreticalWeight != null) {
  376. allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
  377. }
  378. BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
  379. allMaterialNumber += saleOrderMaterialNumber + "/";
  380. String specificationModel = (String) materialMap.get("specificationModel");
  381. if (specificationModel != null) {
  382. allMaterialSpecificationModel += specificationModel + "/";
  383. }
  384. }
  385. }
  386. String subMaterialName = null;
  387. String subMaterialNumber = null;
  388. String subMaterialTheoreticalWeight = null;
  389. String subMaterialSpecificationModel = null;
  390. if (allMaterialName.length() >= 2) {
  391. subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
  392. }
  393. if (allMaterialName.length() < 2) {
  394. subMaterialName = allMaterialName;
  395. }
  396. if (allMaterialNumber.length() >= 2) {
  397. subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
  398. }
  399. if (allMaterialNumber.length() < 2) {
  400. subMaterialNumber = allMaterialNumber;
  401. }
  402. if (allMaterialTheoreticalWeight.length() >= 2) {
  403. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
  404. }
  405. if (allMaterialTheoreticalWeight.length() < 2) {
  406. subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
  407. }
  408. if (allMaterialSpecificationModel.length() >= 2) {
  409. subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
  410. }
  411. if (allMaterialSpecificationModel.length() < 2) {
  412. subMaterialSpecificationModel = allMaterialSpecificationModel;
  413. }
  414. map.put("allMaterialName",subMaterialName);
  415. map.put("allMaterialNumber",subMaterialNumber);
  416. map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
  417. map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
  418. }
  419. return dispatchSaleOrderList;
  420. }
  421. /**
  422. * 接收定向派单
  423. * @param dispatchId
  424. * @return
  425. */
  426. @Override
  427. public int receiveDispatchOrder(BigDecimal dispatchId) {
  428. return 0;
  429. }
  430. /**
  431. * 销售新增定向派单且直接下发
  432. * @param mapValue
  433. * @return
  434. */
  435. @Transactional
  436. @Override
  437. public int addDispatchSaleOrder(Map<String, Object> mapValue) {
  438. int result = 0;
  439. List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
  440. // 承运商id
  441. BigDecimal carrierId = DataChange.dataToBigDecimal(mapValue.get("carrierId"));
  442. for (Map<String, Object> map : mapList) {
  443. // 车序号表id
  444. BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
  445. AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
  446. amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
  447. amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
  448. amsDispatchSaleOrder.setCarrierId(carrierId);
  449. amsDispatchSaleOrder.setDispatchTime(new Date());
  450. // 设置为定向派单
  451. amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
  452. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
  453. amsDispatchSaleOrder.setInsertTime(new Date());
  454. amsDispatchSaleOrder.setInsertUsername("admin");
  455. amsDispatchSaleOrder.setInsertUpdateRemark("无");
  456. // 将车序号表改为已选承运商状态
  457. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  458. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  459. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
  460. result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
  461. result += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
  462. }
  463. return result;
  464. }
  465. /**
  466. * 展示销售派单物资信息
  467. * @param dispatchId
  468. * @return
  469. */
  470. @Override
  471. public List<Map<String, Object>> getDispatchMaterialList(BigDecimal dispatchId) {
  472. List<Map<String, Object>> mapList = amsDispatchSaleOrderMapper.getDispatchMaterialList(dispatchId);
  473. return mapList;
  474. }
  475. /**
  476. * 批量接收定向派单
  477. * @param mapValue
  478. * @return
  479. */
  480. @Override
  481. public int lockDispatchSaleOrderList(Map<String, Object> mapValue) {
  482. String carrierSsoId = (String) mapValue.get("carrierSsoId");
  483. List<Map<String,Object>> carrierIdList = amsDispatchSaleOrderMapper.getCarrierIdBySSO(carrierSsoId);
  484. BigDecimal carrierId = null;
  485. if (carrierIdList != null && carrierIdList.size() == 1) {
  486. carrierId = (BigDecimal) carrierIdList.get(0).get("carrierId");
  487. }
  488. int result = 0;
  489. List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
  490. for (Map<String, Object> map : mapList) {
  491. AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
  492. BigDecimal dispatchId = DataChange.dataToBigDecimal(map.get("dispatchId"));
  493. amsDispatchSaleOrder.setDispatchId(dispatchId);
  494. if (carrierId != null) {
  495. amsDispatchSaleOrder.setCarrierId(carrierId);
  496. }
  497. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
  498. amsDispatchSaleOrder.setUpdateTime(new Date());
  499. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  500. result += amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
  501. }
  502. return result;
  503. }
  504. }