OmstruckOrderSeparateServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. package com.steerinfo.dil.service.impl;
  2. import com.fasterxml.jackson.databind.ObjectReader;
  3. import com.steerinfo.dil.feign.IMFeign;
  4. import com.steerinfo.dil.feign.TmsTruckFeign;
  5. import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
  6. import com.steerinfo.dil.mapper.OmstruckOrderMapper;
  7. import com.steerinfo.dil.mapper.OmstruckOrderMaterialMapper;
  8. import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
  9. import com.steerinfo.dil.model.OmstruckOrder;
  10. import com.steerinfo.dil.model.OmstruckOrderMaterial;
  11. import com.steerinfo.dil.service.IOmstruckOrderSeparateService;
  12. import com.steerinfo.dil.util.DataChange;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import java.math.BigDecimal;
  18. import java.text.SimpleDateFormat;
  19. import java.util.*;
  20. /**
  21. * 运输订单第二个 impl
  22. * @ author :TXF
  23. * @ time :2021/12/3 13:14
  24. */
  25. @Service
  26. public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateService {
  27. @Autowired
  28. private OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
  29. @Autowired
  30. AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
  31. @Autowired
  32. private OmstruckOrderMapper omstruckOrderMapper;
  33. @Autowired
  34. private OmstruckOrderServiceImpl omstruckOrderService;
  35. @Autowired
  36. private TmsTruckFeign tmsTruckFeign;
  37. @Autowired
  38. OmstruckOrderMaterialMapper omstruckOrderMaterialMapper;
  39. @Autowired
  40. IMFeign imFeign;
  41. /**
  42. * 通过线路子表路线图生成各实绩
  43. * @param map
  44. * @return
  45. */
  46. public int addAllSonResult(Map<String, Object> map){
  47. Integer resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId")).intValue();
  48. Integer lineId = DataChange.dataToBigDecimal(map.get("lineId")).intValue();
  49. int result = 0;
  50. //通过总实绩Id 查询关联的线路子表顺序
  51. List<Map<String, Object>> segmentList = omstruckOrderSeparateMapper.getLineMesByOrderId(lineId);
  52. Map<String,Object> totalIdMap = new HashMap<>();
  53. totalIdMap.put("resultTotalId",resultTotalId);
  54. totalIdMap.put("lineId", lineId);
  55. // 遍历路段顺序号子表
  56. int count = 0;
  57. BigDecimal lineType = (BigDecimal) segmentList.get(0).get("lineType");
  58. if (lineType.intValue() == 4) {
  59. count++;
  60. }
  61. //存放皮重路段顺序号和毛重路段顺序号map
  62. Map<String, Object> tareAndGrossSegmentMap = new HashMap<>();
  63. for (Map<String,Object> segmentMap : segmentList) {
  64. BigDecimal segmentSqe = (BigDecimal) segmentMap.get("segmentSqe");
  65. String linkName = (String) segmentMap.get("linkName");
  66. totalIdMap.put("segmentSqe",segmentSqe);
  67. // 判断是否是计毛
  68. if (linkName.equals("计毛")) {
  69. // 如果是计量则加一
  70. count ++;
  71. tareAndGrossSegmentMap.put("grossSegmentSqe", segmentSqe);
  72. // 有两个计量的时候则新增实绩
  73. if (count == 2) {
  74. totalIdMap.putAll(tareAndGrossSegmentMap);//将皮重顺序号和毛重路段顺序号放进去
  75. tmsTruckFeign.addWeightResult(totalIdMap);
  76. // 新增一次则对计数器清零
  77. count = 0;
  78. tareAndGrossSegmentMap.clear(); // 清空毛重皮重 map
  79. result++;
  80. }
  81. }
  82. // 判断是否是计皮
  83. if (linkName.equals("计皮")) {
  84. // 如果是计皮则加一
  85. count ++;
  86. tareAndGrossSegmentMap.put("tareSegmentSqe", segmentSqe);
  87. // 有两个计量的时候则新增实绩
  88. if (count == 2) {
  89. totalIdMap.putAll(tareAndGrossSegmentMap);
  90. tmsTruckFeign.addWeightResult(totalIdMap);
  91. // 新增一次则对计数器清零
  92. count = 0;
  93. tareAndGrossSegmentMap.clear(); // 清空毛重皮重 map
  94. result++;
  95. }
  96. }
  97. // 进厂
  98. if (linkName.equals("进厂")) {
  99. tmsTruckFeign.addEnFactoryResult(totalIdMap);
  100. result++;
  101. }
  102. // 出厂
  103. if (linkName.equals("出厂")) {
  104. tmsTruckFeign.addLeaveFactory(totalIdMap);
  105. result++;
  106. }
  107. // 装货
  108. if (linkName.equals("装货")) {
  109. tmsTruckFeign.addLoadResult(totalIdMap);
  110. result++;
  111. }
  112. // 卸货
  113. if (linkName.equals("卸货")) {
  114. tmsTruckFeign.addUnloadResult(totalIdMap);
  115. result++;
  116. }
  117. // 退货
  118. if (linkName.equals("退货")) {
  119. totalIdMap.put("returnReason", map.get("returnReason")); //退货原因 仅退货有用
  120. totalIdMap.put("orderId", map.get("orderId")); //添加新订单ID
  121. tmsTruckFeign.addReturnGoodsResult(totalIdMap);
  122. result++;
  123. }
  124. }
  125. return result;
  126. }
  127. /**
  128. * 添加退货实绩关闭当前订单
  129. * @param map
  130. * @return
  131. */
  132. @Transactional
  133. public int returnOrderCloseOrder(Map<String, Object> map){
  134. //通过运输订单ID关闭运输订单(修改状态为退货关闭:9)
  135. map.put("orderStatus", 9);
  136. int i = omstruckOrderSeparateMapper.updateOrderStatusByOrderNum(map);
  137. BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
  138. //查询之前订单所有的信息
  139. Map<String, Object> orderMap = omstruckOrderSeparateMapper.getOmstruckOrderResult(orderId);
  140. // 获得运单信息
  141. Map<String,Object> orderMessaggeMap = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
  142. //添加新运输订单 运输订单号
  143. OmstruckOrder omstruckOrder = new OmstruckOrder();
  144. BigDecimal newOrderId = omstruckOrderMapper.selectMaxId();
  145. // 卸货点
  146. BigDecimal unloadPointId = (BigDecimal) orderMessaggeMap.get("unloadPointId");
  147. omstruckOrder.setOrderId(newOrderId);
  148. omstruckOrder.setOrderType(DataChange.dataToBigDecimal(orderMessaggeMap.get("orderType")));
  149. omstruckOrder.setLineId(DataChange.dataToBigDecimal(map.get("lineId")));
  150. omstruckOrder.setOrderPlanId(DataChange.dataToBigDecimal(orderMessaggeMap.get("orderPlanId")));
  151. omstruckOrder.setOrderStatus(new BigDecimal(5)); //执行中(已接收)
  152. omstruckOrder.setCapacityId(DataChange.dataToBigDecimal(orderMessaggeMap.get("capacityId")));
  153. omstruckOrder.setOrderNumber(orderMessaggeMap.get("orderNumber") + "-1");
  154. omstruckOrder.setOrderIssueTime(new Date());
  155. omstruckOrder.setOrderReceiveRefuseTime(new Date());
  156. omstruckOrder.setInsertTime(new Date());
  157. omstruckOrder.setInsertUsername("admin");
  158. omstruckOrder.setUnloadPointId(unloadPointId);
  159. omstruckOrderMapper.insertSelective(omstruckOrder);
  160. //添加运输订单子表
  161. Map<String, Object> mesMap = new HashMap<>();
  162. mesMap.put("orderId", newOrderId);
  163. omstruckOrderService.addOrderMaterial(orderMap, newOrderId);
  164. //添加总实绩
  165. Integer totalId = tmsTruckFeign.addTotalResult(mesMap);
  166. // 添加各种实绩
  167. mesMap.put("resultTotalId", totalId);
  168. mesMap.put("lineId", map.get("lineId"));
  169. mesMap.put("returnReason", map.get("returnResult"));
  170. int result = addAllSonResult(mesMap);
  171. // 推送消息给司机
  172. pushMesToWebsocket(mesMap);
  173. return result;
  174. }
  175. /**
  176. * 发送消息到 websocket 推送消息
  177. * orderId 订单Id
  178. * @return
  179. */
  180. public String pushMesToWebsocket(Map<String, Object> map) {
  181. Map<String, Object> mesMap = omstruckOrderMapper.pushMesToWebsocket(map);
  182. //添加消息实体
  183. HashMap<Object, Object> mapp = new HashMap<>();
  184. mapp.put("messageType", 3);
  185. mapp.put("sendPerson", "system");
  186. mapp.put("receivePerson", mesMap.get("capacityNumber"));
  187. mapp.put("messageContent",(String) mesMap.get("orderNumber") + new Date());
  188. mapp.put("createTime", new Date());
  189. ArrayList<Object> list = new ArrayList<>();
  190. list.add(mapp);
  191. //调用websocket接口推送
  192. HashMap<Object, Object> sendMap = new HashMap<>();
  193. //将消息实体放入list中存到map中
  194. sendMap.put("messages", list);
  195. String s = imFeign.sendToUser(sendMap);
  196. System.out.println(s);
  197. return s;
  198. }
  199. /**
  200. * 通过运单id查询所有实绩点
  201. * @param orderId
  202. * @return
  203. */
  204. public List<Map<String,Object>> getOrderResult(BigDecimal orderId) {
  205. List<Map<String,Object>> segmentList = omstruckOrderSeparateMapper.getSegmentList(orderId);
  206. //通过订单ID查询总实绩ID
  207. Integer resultTotalId = omstruckOrderSeparateMapper.getTotalIdByOrderId(orderId);
  208. if(segmentList != null)
  209. for (Map<String, Object> map : segmentList) {
  210. //获取路段类型
  211. String linkName = (String) map.get("linkName");
  212. //获取路段顺序号
  213. int segmentSqe = DataChange.dataToBigDecimal(map.get("segmentSqe")).intValue();
  214. Map<String, Object> mesMap = new HashMap<>(); //查询条件Map
  215. mesMap.put("segmentSqe", segmentSqe);
  216. mesMap.put("resultTotalId", resultTotalId);
  217. switch (linkName) {
  218. case "进厂":
  219. //通过总实绩ID和路段顺序号查询
  220. Map<String, Object> mes1 = omstruckOrderSeparateMapper.getEnFactoryMes(mesMap);
  221. if(mes1 != null)
  222. map.putAll(mes1);
  223. break;
  224. case "计毛":
  225. Map<String, Object> mes2 = omstruckOrderSeparateMapper.getMaoWeightMes(mesMap);
  226. if(mes2 != null)
  227. map.putAll(mes2);
  228. break;
  229. case "计皮":
  230. Map<String, Object> mes3 = omstruckOrderSeparateMapper.getPiWeightMes(mesMap);
  231. if(mes3 != null)
  232. map.putAll(mes3);
  233. break;
  234. case "卸货":
  235. Map<String, Object> mes4 = omstruckOrderSeparateMapper.getUnloadMes(mesMap);
  236. if(mes4 != null)
  237. map.putAll(mes4);
  238. break;
  239. case "装货":
  240. Map<String, Object> mes5 = omstruckOrderSeparateMapper.getLoadMes(mesMap);
  241. if(mes5 != null)
  242. map.putAll(mes5);
  243. break;
  244. case "出厂":
  245. Map<String, Object> mes6 = omstruckOrderSeparateMapper.getOutFactoryMes(mesMap);
  246. if(mes6 != null)
  247. map.putAll(mes6);
  248. break;
  249. case "退货":
  250. Map<String, Object> mes7 = omstruckOrderSeparateMapper.getReturnMes(mesMap);
  251. if(mes7 != null)
  252. map.putAll(mes7);
  253. }
  254. }
  255. return segmentList;
  256. }
  257. /**
  258. * 通过运输订单号查询实绩位置
  259. * @param orderNumber
  260. * @return
  261. */
  262. public List<Map<String, Object>> getOrderNumberResult(String orderNumber) {
  263. String substring = orderNumber.substring(0, orderNumber.length() - 1);
  264. BigDecimal orderId = omstruckOrderSeparateMapper.getOrderIdByOrderNumber(substring);
  265. List<Map<String, Object>> orderResult = getOrderResult(orderId);
  266. return orderResult;
  267. }
  268. /**
  269. * 查看承运商所属的订单
  270. * @param mapValue
  271. * @return
  272. */
  273. @Override
  274. public List<Map<String, Object>> getInputOrderList(Map<String, Object> mapValue) {
  275. return omstruckOrderSeparateMapper.getInputOrderList(mapValue);
  276. }
  277. /**
  278. * 查询所有的未下发的需要分配车辆的订单
  279. * @param map
  280. * @return
  281. */
  282. public List<Map<String, Object>> getOthersOrderMesToSend(Map<String, Object> map){
  283. return omstruckOrderSeparateMapper.getOthersOrderMesToSend(map);
  284. }
  285. /**
  286. * 根据运输订单id修改运力id
  287. * @param omstruckOrder
  288. * @return
  289. */
  290. @Override
  291. public int updateOmstruckOrder(OmstruckOrder omstruckOrder) {
  292. return omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
  293. }
  294. //根据运输订单号查物资
  295. @Override
  296. public List<Map<String,Object>> getUnloadOrderMaterial(Map<String, Object> map) {
  297. return omstruckOrderMaterialMapper.getUnloadOrderMaterial(map);
  298. }
  299. /**
  300. * 承运商销售分派运输订单给司机
  301. * @param mapValue
  302. * @return
  303. */
  304. @Override
  305. public Integer addSaleTruckOrder(Map<String, Object> mapValue) {
  306. // Integer orderType = (Integer) mapValue.get("orderType");
  307. Integer lineId = (Integer) mapValue.get("lineId");
  308. // 根据lineId查询是否是钢材
  309. BigDecimal isSteel = omstruckOrderMapper.getIsSteel(new BigDecimal(lineId));
  310. BigDecimal dispatchId = DataChange.dataToBigDecimal(mapValue.get("dispatchId"));
  311. //通过定向派单ID查询车序号表中的priceId 价格ID
  312. BigDecimal priceId = omstruckOrderMapper.getPriceIdByDispatchId(dispatchId);
  313. String capacityNumber = (String) mapValue.get("capacityNumber");
  314. OmstruckOrder omstruckOrder = new OmstruckOrder();
  315. omstruckOrder.setPriceId(priceId);
  316. BigDecimal orderId = omstruckOrderMapper.selectMaxId();
  317. Map<String,Object> orderIdMap = new HashMap<>();
  318. orderIdMap.put("orderId",orderId);
  319. tmsTruckFeign.addTotalResult(orderIdMap);
  320. omstruckOrder.setOrderId(orderId);
  321. BigDecimal saleOrderMaterialId = omstruckOrderMapper.getSaleMaterialId(dispatchId);
  322. // 查询销售订单中是物资重量还是件数
  323. List<Map<String, Object>> materialMapList = omstruckOrderSeparateMapper.getWeightOrNumber(saleOrderMaterialId);
  324. omstruckOrder.setOrderPlanId(saleOrderMaterialId);
  325. String orderNumber = DataChange.generateEightDigitsNumber("WYSDD", orderId.intValue());
  326. omstruckOrder.setOrderNumber(orderNumber);
  327. omstruckOrder.setLineId(new BigDecimal(lineId));
  328. omstruckOrder.setOrderIssueTime(new Date());
  329. // 如果线路类型为3或者4(危化品和焦炭)则为非钢材
  330. if (isSteel != null && (isSteel.intValue() == 3 || isSteel.intValue() == 4)) {
  331. omstruckOrder.setOrderType(new BigDecimal(2));
  332. }
  333. // 否则为钢材
  334. else {
  335. omstruckOrder.setOrderType(new BigDecimal(1));
  336. }
  337. omstruckOrder.setOrderStatus(new BigDecimal(4));
  338. omstruckOrder.setInsertTime(new Date());
  339. omstruckOrder.setUpdateTime(new Date());
  340. omstruckOrder.setInsertUsername("admin");
  341. omstruckOrder.setUpdateUsername("admin");
  342. omstruckOrder.setInsertUpdateRemark("无");
  343. omstruckOrder.setDeleted(new BigDecimal(0));
  344. BigDecimal capacityId = omstruckOrderMapper.getCapacityId(capacityNumber);
  345. omstruckOrder.setCapacityId(capacityId);
  346. List<Map<String, Object>> mapList = omstruckOrderMapper.getMaterialMessages(dispatchId);
  347. if (mapList != null && mapList.size() != 0) {
  348. for (Map<String, Object> map : mapList) {
  349. OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
  350. BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
  351. omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
  352. omstruckOrderMaterial.setOrderId(orderId);
  353. omstruckOrderMaterial.setInsertTime(new Date());
  354. omstruckOrderMaterial.setUpdateTime(new Date());
  355. omstruckOrderMaterial.setInsertUsername("admin");
  356. omstruckOrderMaterial.setUpdateUsername("admin");
  357. omstruckOrderMaterial.setInsertUpdateRemark("无");
  358. if (map != null) {
  359. BigDecimal saleOrderMaterialNumber = (BigDecimal) map.get("saleOrderMaterialNumber");
  360. BigDecimal materialId = (BigDecimal) map.get("materialId");
  361. omstruckOrderMaterial.setMaterialId(materialId);
  362. // 判断是重量还是件数
  363. if (materialMapList != null) {
  364. BigDecimal saleMaterialNumber = (BigDecimal) materialMapList.get(0).get("materialNumber");
  365. if (saleMaterialNumber != null && saleMaterialNumber.toString().length() != 0) {
  366. omstruckOrderMaterial.setOrderMaterialNumber(saleOrderMaterialNumber);
  367. }
  368. else {
  369. omstruckOrderMaterial.setOrderMaterialWeight(saleOrderMaterialNumber);
  370. }
  371. }
  372. }
  373. omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
  374. }
  375. }
  376. int result = omstruckOrderMapper.insertSelective(omstruckOrder);
  377. // 调用websocket推送数据给司机
  378. pushMesToWebsocket(orderIdMap);
  379. return result;
  380. }
  381. @Override
  382. public int updateTimes(BigDecimal orderPlanId, int times) {
  383. return omstruckOrderSeparateMapper.updateTimes(orderPlanId, times);
  384. }
  385. /**
  386. * 根据运单id关闭运输订单
  387. * @param orderId
  388. * @return
  389. */
  390. @Override
  391. public int closeOrder(Integer orderId) {
  392. OmstruckOrder omstruckOrder = new OmstruckOrder();
  393. omstruckOrder.setOrderId(new BigDecimal(orderId));
  394. omstruckOrder.setOrderStatus(new BigDecimal(8));
  395. int result = omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
  396. return result;
  397. }
  398. /**
  399. * @Author TXF
  400. * @Date 2021/12/30 16:15
  401. * @param capacityNumber 车牌号
  402. * @return 查询当前车辆之前所有已完成的订单号 以及 订单ID
  403. **/
  404. public List<Map<String, Object>> getCapacityAllOrder(String capacityNumber){
  405. return omstruckOrderSeparateMapper.getCapacityAllOrder(capacityNumber);
  406. }
  407. // @Override
  408. // public int updateTimes(BigDecimal orderPlanId, int times) {
  409. // return omstruckOrderSeparateMapper.updateTimes(orderPlanId,times);
  410. // }
  411. /**
  412. * 根据运单id查询出所有销售数据
  413. * @param orderId
  414. * @return
  415. */
  416. @Override
  417. public Map<String, Object> getSaleAllMessages(BigDecimal orderId) {
  418. // 销售订单id
  419. Map<String,Object> mapValue = omstruckOrderSeparateMapper.getSaleAllMessages(orderId);
  420. BigDecimal saleOrderId = (BigDecimal) mapValue.get("saleOrderId");
  421. // 车序号
  422. List<Map<String, Object>> truckList = omstruckOrderSeparateMapper.getMaxTruckNo(saleOrderId);
  423. Map<String, Object> map = truckList.get(0);
  424. mapValue.putAll(map);
  425. // mapList中的数据
  426. List<Map<String,Object>> mapList = omstruckOrderSeparateMapper.getMapList(orderId);
  427. mapValue.put("mapList",mapList);
  428. return mapValue;
  429. }
  430. /**
  431. * 新增一个新的运输订单(一车多趟)
  432. * @Author TXF
  433. * @Date 2022/1/14 21:10
  434. * @param orderId
  435. * @return
  436. **/
  437. public int addNewTransportOrder(BigDecimal orderId){
  438. //根据运输订单ID查询 订单信息
  439. OmstruckOrder omstruckOrder = omstruckOrderMapper.selectByPrimaryKey(orderId);
  440. BigDecimal newOrderId = updateTruckOrder(omstruckOrder);
  441. omstruckOrderMapper.insertSelective(omstruckOrder);
  442. //通过订单ID查询物资子表信息
  443. OmstruckOrderMaterial omstruckOrderMaterial = omstruckOrderMaterialMapper.selectByOrderIdPrimaryKey(orderId);
  444. //更新物资子表中的订单ID
  445. omstruckOrderMaterial.setOrderId(newOrderId);
  446. updateTruckOrderMaterial(omstruckOrderMaterial);
  447. omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
  448. //远程调用新增新的总实绩ID
  449. Map<String, Object> map = new HashMap<>();
  450. map.put("orderId", newOrderId);
  451. tmsTruckFeign.addTotalResult(map);
  452. return 1;
  453. }
  454. /**
  455. * 批量关闭运输订单
  456. * @param mapList
  457. * @return
  458. */
  459. @Override
  460. public int batchCloseOrder(List<Map<String, Object>> mapList) {
  461. int result = 0;
  462. // 遍历主键
  463. for (Map<String, Object> map : mapList) {
  464. BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
  465. OmstruckOrder omstruckOrder = new OmstruckOrder();
  466. omstruckOrder.setOrderId(orderId);
  467. omstruckOrder.setOrderStatus(new BigDecimal(7));
  468. result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
  469. }
  470. return result;
  471. }
  472. /**
  473. * 更新新订单信息 (一车多趟)
  474. * @Author TXF
  475. * @Date 2022/1/14 21:35
  476. * @param omstruckOrder
  477. * @return
  478. **/
  479. private BigDecimal updateTruckOrder(OmstruckOrder omstruckOrder){
  480. //设置新的运输订单号和主键
  481. BigDecimal newOrderId = omstruckOrderMapper.selectMaxId();
  482. omstruckOrder.setOrderId(newOrderId);
  483. omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD", newOrderId.intValue()));
  484. //设置订单状态为已下发 司机未接收时间 路段顺序号 订单确认状态
  485. omstruckOrder.setOrderStatus(new BigDecimal(4));
  486. Date nowDate = new Date();
  487. omstruckOrder.setOrderIssueTime(nowDate);
  488. omstruckOrder.setOrderLineSequence(null);
  489. omstruckOrder.setOrderReceiveRefuseTime(null);
  490. omstruckOrder.setDriverConfirmation(null);
  491. omstruckOrder.setOrderEntryTime(new Date(nowDate.getTime() + 7200000));//一车多趟预估进厂时间以当前时间往后推俩小时
  492. //常规字段
  493. omstruckOrder.setInsertTime(nowDate);
  494. omstruckOrder.setInsertUsername("admin");
  495. omstruckOrder.setUpdateTime(null);
  496. omstruckOrder.setUpdateUsername(null);
  497. return newOrderId; //用于更新订单子表信息
  498. }
  499. /**
  500. * 更新订单物资子表信息 (一车多趟)
  501. * @Author TXF
  502. * @Date 2022/1/14 21:40
  503. * @param
  504. * @return
  505. **/
  506. private void updateTruckOrderMaterial(OmstruckOrderMaterial omstruckOrderMaterial){
  507. //更新主键 以及常规字段
  508. omstruckOrderMaterial.setOrderMaterialId(omstruckOrderMaterialMapper.selectMaxId());
  509. omstruckOrderMaterial.setInsertTime(new Date());
  510. omstruckOrderMaterial.setInsertUsername("admin");
  511. omstruckOrderMaterial.setUpdateTime(null);
  512. omstruckOrderMaterial.setUpdateUsername(null);
  513. }
  514. /**
  515. * 批量删除订单
  516. * @Author TXF
  517. * @Date 2022/1/14 23:51
  518. * @param
  519. * @return
  520. **/
  521. @Transactional
  522. public int deleteOrders(Map<String, Object> map){
  523. List<BigDecimal> orderIdList = (List<BigDecimal>) map.get("list");
  524. omstruckOrderMapper.batchDelete(orderIdList);
  525. omstruckOrderMaterialMapper.batchByOrderIdDelete(orderIdList);
  526. omstruckOrderMaterialMapper.batchByOrderIdForTotalDelete(orderIdList);
  527. return orderIdList.size();
  528. }
  529. /**
  530. * 装卸工查询自己所有装了货的订单信息
  531. * @Author TXF
  532. * @Date 2022/1/15 17:07
  533. * @param map
  534. * @return
  535. **/
  536. public List<Map<String, Object>> getAllLoadUnloadResult(@RequestBody(required = false) Map<String, Object> map){
  537. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  538. map.put("limitTime", sdf.format(new Date(new Date().getTime() - 43200000)));
  539. List<Map<String, Object>> allLoaderLoadingOrder = omstruckOrderSeparateMapper.getAllLoaderLoadingOrder(map);
  540. return allLoaderLoadingOrder;
  541. }
  542. }