AmsDispatchSaleOrderServiceImpl.java 26 KB

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