TmstruckLoadResultServiceImpl.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.feign.WMSFeign;
  3. import com.steerinfo.dil.feign.WmshBoundFeign;
  4. import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
  5. import com.steerinfo.dil.mapper.TmstruckLoadResultMapper;
  6. import com.steerinfo.dil.mapper.TmstruckReturnResultMapper;
  7. import com.steerinfo.dil.model.TmstruckLoadResult;
  8. import com.steerinfo.dil.service.ITmstruckLoadResultService;
  9. import com.steerinfo.dil.util.DataChange;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import java.math.BigDecimal;
  14. import java.util.*;
  15. /**
  16. * TmstruckLoadResult服务实现:
  17. * @author generator
  18. * @version 1.0-SNAPSHORT 2021-09-02 10:38
  19. * 类描述
  20. * 修订历史:
  21. * 日期:2021-09-02
  22. * 作者:generator
  23. * 参考:
  24. * 描述:TmstruckLoadResult服务实现
  25. * @see null
  26. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  27. */
  28. @Service(value = "tmstruckLoadResultService")
  29. public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService {
  30. @Autowired
  31. private TmstruckLoadResultMapper tmstruckLoadResultMapper;
  32. @Autowired
  33. private TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper;
  34. @Autowired
  35. private TmstruckReturnResultMapper tmstruckReturnResultMapper;
  36. @Autowired
  37. private UtilsServiceImpl utilsService;
  38. @Autowired
  39. private RulesServiceImpl rulesService;
  40. @Autowired
  41. private WmshBoundFeign wmshBoundFeign;
  42. @Autowired
  43. private WMSFeign wmsFeign;
  44. @Autowired
  45. private TmstruckWeightResultServiceImpl tmstruckWeightResultService;
  46. @Autowired
  47. private TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
  48. /**
  49. * 查询所有装车实绩
  50. * @param map
  51. * @return
  52. */
  53. @Override
  54. public List<Map<String, Object>> getAllLoadResult(Map<String, Object> map) {
  55. Integer orderType = (Integer) map.get("orderTypee");
  56. switch (orderType) {
  57. case 1:
  58. case 2:
  59. case 3:
  60. map.put("status", 0);
  61. return tmstruckLoadResultMapper.getXSLoadResult(map); //apiId = 221
  62. case 4:
  63. return tmstruckLoadResultMapper.getSteelNzLoadResult(map); //apiID: 263
  64. case 5:
  65. break;
  66. case 6:
  67. break;
  68. case 7:
  69. break;
  70. case 8:
  71. return tmstruckLoadResultMapper.getCGJKLoadResult(map); // apiId = 91
  72. case 9:
  73. case 10:
  74. return tmstruckLoadResultMapper.getImportedDomesticNzLoadResult(map); //apiId = 353
  75. case 11:
  76. return tmstruckLoadResultMapper.getInFactoryLoadResult(map); //apiId = 359
  77. }
  78. return null;
  79. }
  80. /**
  81. * 新增采购装车实绩
  82. * @param map resultMeasuredTonnage :计量吨位 portId:港口ID
  83. * resultLoadStartTime:装车时间 resultIsclear:是否清场
  84. */
  85. @Transactional
  86. public int addCGLoadResult(Map<String,Object> map){
  87. //通过运输订单号 或 运单Id 查询实绩总表ID 此方法在 进厂作业mapper中
  88. Integer totalId = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
  89. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  90. //添加主键Id
  91. tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
  92. //新增计量吨位 装车所装的重量
  93. BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage"));
  94. tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage);
  95. tmstruckLoadResult.setStatus(new BigDecimal(0));
  96. tmstruckLoadResult.setResultTotalId(new BigDecimal(totalId));
  97. String resultIsclear = (String) (map.get("resultIsclear"));
  98. tmstruckLoadResult.setResultIsclear(resultIsclear);
  99. tmstruckLoadResult.setResultLoadStartTime(new Date((long) map.get("resultLoadStartTime")));
  100. tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
  101. Object portId = map.get("portId"); //获取港口
  102. if(portId != null){
  103. //通过订单ID获取批次Id
  104. BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
  105. if(batchId != null){
  106. Map<String, Object> hashMap = new HashMap<>();
  107. hashMap.put("batchId", batchId);
  108. hashMap.put("portId", portId);
  109. hashMap.put("resultTonnage",resultMeasuredTonnage);
  110. hashMap.put("isClean", resultIsclear);
  111. wmshBoundFeign.addResult(hashMap);
  112. // 通过港口ID查询仓库表中的港存库ID
  113. BigDecimal warehouseId = tmstruckLoadResultMapper.getWarehouseIdByPortId(DataChange.dataToBigDecimal(portId));
  114. tmstruckLoadResult.setLoadingId(warehouseId); // 添加装货点为港口
  115. }
  116. }
  117. int i = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
  118. //修改订单状态为执行中 1
  119. int i1 = utilsService.updateOrderStatus(map, 1);
  120. //修改运力状态为执行中 1
  121. // int i2 = utilsService.updateCapacityStatus(map, 1);
  122. return i + i1;
  123. }
  124. /**
  125. * 生成销售装车实绩(虚拟装车实绩)
  126. * @param map
  127. * @return
  128. */
  129. public int addLoadResult(Map<String, Object> map){
  130. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  131. //添加主键Id
  132. tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
  133. //添加物资Id
  134. tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
  135. //添加总实绩ID
  136. tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
  137. return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
  138. }
  139. /**
  140. * 更新装车实绩表
  141. * @return
  142. */
  143. public int updateLoadingId(Map<String, Object> map){
  144. //获取装车实绩Id 订单ID 物资ID
  145. Integer loadResultId = tmstruckLoadResultMapper.getLoadResultId(map);
  146. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  147. tmstruckLoadResult.setResultId(new BigDecimal(loadResultId));
  148. tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("loadingId")));
  149. return tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  150. }
  151. /**
  152. * PDA新增销售钢材装车实绩 (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
  153. * orderNumber 运输订单号
  154. * insertUpdateRemark 备注 platformName 月台名称 scanText 扫描结果
  155. * @param map
  156. * @return
  157. */
  158. @Transactional
  159. public int addXSLoadResult(Map<String, Object> map){
  160. //通过扫描结果截取物资唯一编码
  161. String scanText = (String) map.get("scanText");
  162. String[] split = scanText.split("-");
  163. String materialOnlyCode = split[7];
  164. //通过物资唯一编码查找物资Id
  165. BigDecimal materialId = tmstruckLoadResultMapper.getMaterialIdByMaterialCode(materialOnlyCode);
  166. //通过运输订单号查找总实绩ID
  167. Integer resultTotalId = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
  168. map.put("resultTotalId", resultTotalId);
  169. //通过总实绩ID与物资ID查找 装车实绩主键ID
  170. Integer resultId = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId, materialId.intValue());
  171. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  172. tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
  173. //编辑装车实绩主键ID对应的各个字段
  174. tmstruckLoadResult.setResultId(new BigDecimal(resultId));
  175. // 获取扫描实绩最小Id 添加扫描开始时间
  176. map.put("materialId", materialId);
  177. Map<String, Object> scanMap = tmstruckLoadResultMapper.getMinScanIdByOrderNum(map);
  178. Date resultLoadStartTime = tmstruckLoadResultMapper.selectLoadTimeByResultId(DataChange.dataToBigDecimal(scanMap.get("resultId")));
  179. tmstruckLoadResult.setResultLoadStartTime(resultLoadStartTime);
  180. // 添加装卸工Id
  181. tmstruckLoadResult.setLoaderId(DataChange.dataToBigDecimal(scanMap.get("loadId")));
  182. // 添加扫描结束时间 以调用当前接口时间为结束时间
  183. Date resultLoadEndTime = new Date();
  184. tmstruckLoadResult.setResultLoadEndTime(resultLoadEndTime);
  185. // 添加装车实绩时长 ---- 计算装车时长
  186. long time = (resultLoadEndTime.getTime() - resultLoadStartTime.getTime()) / 60000; // 分钟
  187. tmstruckLoadResult.setResultLoadDuration(new BigDecimal(time));
  188. //添加装车标准时长
  189. setLoadStandardTimeId((String)map.get("orderNumber"), tmstruckLoadResult);
  190. Object platformName = map.get("platformName");
  191. if(platformName != null){
  192. // 如果月台不为空则更新月台
  193. Integer platformId = utilsService.queryPlatformIdByName((String) platformName);
  194. tmstruckLoadResult.setLoadingId(new BigDecimal(platformId));
  195. }
  196. // 添加备注
  197. tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
  198. int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  199. //更新汽车衡
  200. i += tmstruckWeightResultService.calculateTruckCalculate(map, resultTotalId);
  201. //发送计毛委托 订单类型:1
  202. // map.put("orderTypee", 1);
  203. // tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
  204. return i;
  205. }
  206. /**
  207. * PDA新增销售钢渣、水渣、危化品装车实绩
  208. * loadStartTime 装车开始时间 resultMeasuredTonnage 计量吨位
  209. * warehouseName 仓库名称 orderNumber 运输订单号 insertUpdateRemark 备注
  210. * @param map
  211. * @return
  212. */
  213. public int addXS2LoadResult(Map<String, Object> map){
  214. //通过运输订单号 查询 总实绩ID、订单类型
  215. Integer resultTotalId = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
  216. Integer orderType = tmstruckLoadResultMapper.selectOrderTypeByOrderNumber((String) map.get("orderNumber"));
  217. //查询装车实绩ID
  218. Integer resultId = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId, null);
  219. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  220. tmstruckLoadResult.setResultId(new BigDecimal(resultId));
  221. tmstruckLoadResult.setStatus(new BigDecimal(0));
  222. //添加装车开始时间
  223. Date loadStartTime = new Date((long) map.get("loadStartTime"));
  224. tmstruckLoadResult.setResultLoadStartTime(loadStartTime);
  225. //添加装车结束时间(当前时间)
  226. Date loadEndTime = new Date();
  227. tmstruckLoadResult.setResultLoadEndTime(loadEndTime);
  228. //计算装车时长 取分钟
  229. long differentTime = (loadEndTime.getTime() - loadStartTime.getTime() / 60000);
  230. tmstruckLoadResult.setResultLoadDuration(new BigDecimal(differentTime));
  231. //添加计量吨位
  232. tmstruckLoadResult.setResultMeasuredTonnage(DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage")));
  233. //添加装车标准时长
  234. setLoadStandardTimeId((String)map.get("orderNumber"), tmstruckLoadResult);
  235. // 更新装车名称
  236. Object warehouseName = map.get("warehouseName");
  237. if(warehouseName != null){
  238. Integer warehouseId = utilsService.queryWarehouseIdByName((String) warehouseName);
  239. tmstruckLoadResult.setLoadingId(new BigDecimal(warehouseId));
  240. }
  241. tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
  242. int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  243. //装车成功后计算计毛汽车衡(出厂:2)
  244. i += tmstruckWeightResultService.calculateTruckCalculateByOne(map, 2);
  245. //发送计毛委托
  246. map.put("resultTotalId", resultTotalId);
  247. map.put("orderTypee", orderType);
  248. tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
  249. return i;
  250. }
  251. /**
  252. * 添加装车标准时长ID
  253. * @param orderNumber
  254. * @param tmstruckLoadResult
  255. */
  256. public void setLoadStandardTimeId(String orderNumber, TmstruckLoadResult tmstruckLoadResult){
  257. //添加标准时长ID 通过运输订单号查找运输订单类型
  258. Integer orderType = tmstruckLoadResultMapper.selectOrderTypeByOrderNumber(orderNumber);
  259. if(orderType == 1){
  260. tmstruckLoadResult.setLoadStandardTimeId(new BigDecimal(1));
  261. }else if(orderType == 2){
  262. tmstruckLoadResult.setLoadStandardTimeId(new BigDecimal(2));
  263. }else if(orderType == 3){
  264. tmstruckLoadResult.setLoadStandardTimeId(new BigDecimal(3));
  265. }
  266. }
  267. /**
  268. * 修改装车作业
  269. * @param tmstruckLoadResult
  270. * @return
  271. */
  272. @Override
  273. public int updateLoadResult(TmstruckLoadResult tmstruckLoadResult) {
  274. return tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  275. }
  276. /**
  277. * 通过ID查询装车实绩
  278. *
  279. * @param resultId
  280. * @return
  281. */
  282. @Override
  283. public List<Map<String, Object>> getLoadResultById(Integer resultId) {
  284. return tmstruckLoadResultMapper.getLoadResultById(resultId);
  285. }
  286. /**
  287. * 逻辑删除装车实绩 状态 1
  288. * @param resultId
  289. * @return
  290. */
  291. @Override
  292. public int deleteLoadResult(Integer resultId) {
  293. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  294. tmstruckLoadResult.setResultId(new BigDecimal(resultId));
  295. tmstruckLoadResult.setStatus(new BigDecimal(1));
  296. return tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  297. }
  298. /**
  299. * 修改装车作业点
  300. * @param mapList
  301. * @return
  302. */
  303. @Override
  304. public int updateLoadingIds(List<Map<String, Object>> mapList) {
  305. int i = 0;
  306. //获取所有装车实绩ID
  307. for (Map<String, Object> map : mapList) {
  308. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  309. //通过传过来的物资ID(一个订单中物资ID唯一) 和订单Id 寻找装车实绩ID
  310. Integer resultIdList = tmstruckLoadResultMapper.getLoadResultId(map);
  311. tmstruckLoadResult.setResultId(new BigDecimal(resultIdList));
  312. //获取算出来的装车点
  313. tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("loadingId")));
  314. i += tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  315. }
  316. return i;
  317. }
  318. /**
  319. * 查询销售合同装车实绩
  320. * @param map
  321. * @return
  322. */
  323. @Override
  324. public List<Map<String, Object>> selectLoadResultForSale(Map<String, Object> map) {
  325. return tmstruckLoadResultMapper.selectLoadResultForSale(map);
  326. }
  327. /**
  328. * 内转物流,新增装车实绩
  329. */
  330. @Override
  331. public int addLoadResultForconverted(Map<String, Object> map) {
  332. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  333. //设置主键id
  334. tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
  335. //获取开始时间
  336. Date startTime = (Date) map.get("startTime");
  337. //获取运输订单号
  338. String OrderNumber = map.get("OrderNumber").toString();
  339. Map<String, Object> Map = new HashMap<>();
  340. Map.put("OrderNumber", OrderNumber);
  341. //通过运输订单号查找物资id
  342. List<Map<String, Object>> materialIdList = tmstruckLoadResultMapper.selectMaterialIdByOrderNumber(Map);
  343. //设置物资id
  344. for (int i = 0; i < materialIdList.size(); i++) {
  345. Map<String, Object> map1 = materialIdList.get(i);
  346. Integer materialId = (Integer) map1.get("materialId");
  347. tmstruckLoadResult.setMaterialId(new BigDecimal(materialId));
  348. }
  349. //绑定总实绩id
  350. Map<String, Object> map2 = tmstruckReturnResultMapper.getResultTotalIdByOrderNumber(OrderNumber);
  351. BigDecimal reultTotalId = (BigDecimal) map2.get("resultTotalId");
  352. //设置总实绩id
  353. tmstruckLoadResult.setResultTotalId(reultTotalId);
  354. tmstruckLoadResult.setResultLoadStartTime(startTime);
  355. //获取用户id
  356. Integer personnelId = (Integer) map.get("personnelId");
  357. String personnelName = tmstruckLoadResultMapper.selectPersonNameByPersonnelId(personnelId);
  358. tmstruckLoadResult.setInsertTime(new Date());
  359. tmstruckLoadResult.setInsertUsername(personnelName);
  360. int i = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
  361. return i;
  362. }
  363. //内转物流,修改装车实绩
  364. @Override
  365. public int updateLoadResultForconverted(Map<String, Object> map) {
  366. //获取装车实绩id
  367. //通过运输订单号查找装车实绩
  368. String orderNumber = (String) map.get("orderNumber");
  369. Map<String, Object> map1 = tmstruckLoadResultMapper.selectLoadResultIdByOrderNumber(orderNumber);
  370. //获取结束时间
  371. Integer LoadResultId = (Integer) map1.get("loadResultId");
  372. Date endTime = (Date) map.get("endTime");
  373. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  374. //根据主键id设置装车结束时间
  375. tmstruckLoadResult.setResultId(new BigDecimal(LoadResultId));
  376. tmstruckLoadResult.setResultLoadEndTime(endTime);
  377. //获取装车开始时间
  378. Date startTime = (Date) map1.get("startTime");
  379. //开始时间
  380. long LoadstartTime = startTime.getTime();
  381. long LoadendTime = endTime.getTime();
  382. long time = LoadendTime - LoadstartTime;
  383. long l = time / 1000;
  384. //设置标准时长
  385. tmstruckLoadResult.setResultLoadDuration(new BigDecimal(l));
  386. int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  387. return i;
  388. }
  389. @Override
  390. public Map<String, Object> getLoadResultIdForOrderNumber(String orderNumber) {
  391. return tmstruckLoadResultMapper.selectLoadResultIdByOrderNumber(orderNumber);
  392. }
  393. /**
  394. * 内转物流汽车装货实绩展示
  395. *
  396. * @param map
  397. * @return
  398. */
  399. @Override
  400. public List<Map<String, Object>> selectLoadResultForConverted(Map<String, Object> map) {
  401. return tmstruckLoadResultMapper.selectLoadResultForConverted(map);
  402. }
  403. /**
  404. * 根据实绩id渲染数据
  405. *
  406. * @param resultId
  407. * @return
  408. */
  409. @Override
  410. public List<Map<String, Object>> selectLoadResultByResultId(Integer resultId) {
  411. return tmstruckLoadResultMapper.selectLoadResultByResultId(resultId);
  412. }
  413. /**
  414. * 内转物流新增装车实绩(火车卸货后装车,装车点固定为达州站)
  415. *
  416. * @param map
  417. * @return
  418. */
  419. @Override
  420. public int addLoadResultForConverted(Map<String, Object> map) {
  421. Integer personnelId = (Integer) map.get("personnelId");
  422. String personnelName = tmstruckLoadResultMapper.selectPersonNameByPersonnelId(personnelId);
  423. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  424. tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
  425. //获取车牌号,物资id以及总实绩id
  426. String capacityNumber = (String) map.get("capacityNumber");
  427. Map<String, Object> map1 = tmstruckLoadResultMapper.selectMaterialIdAndCapacityId(capacityNumber);
  428. BigDecimal materialId = (BigDecimal) map1.get("materialId");
  429. BigDecimal resultTotalId = (BigDecimal) map1.get("resultTotalId");
  430. tmstruckLoadResult.setMaterialId(materialId);
  431. tmstruckLoadResult.setResultTotalId(resultTotalId);
  432. tmstruckLoadResult.setInsertTime(new Date());
  433. //获取装货点
  434. Integer arrivalId = (Integer) map.get("arrivalId");
  435. tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(arrivalId));
  436. Date insertTime = (Date) map.get("insertTime");
  437. tmstruckLoadResult.setInsertTime(insertTime);
  438. Integer tonnage = (Integer) map.get("tonnage");
  439. tmstruckLoadResult.setResultMeasuredTonnage(DataChange.dataToBigDecimal(tonnage));
  440. tmstruckLoadResult.setInsertUsername(personnelName);
  441. return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
  442. }
  443. /**
  444. * 查询所有正在排队的销售订单
  445. * @param map
  446. * @return
  447. */
  448. @Override
  449. public List<Map<String, Object>> getSaleOrderOnQueue(Map<String, Object> map) {
  450. return tmstruckLoadResultMapper.getSaleOrderOnQueue(map);
  451. }
  452. /**
  453. * 修改装车点和装车顺序
  454. * @param map
  455. * @return
  456. */
  457. public int updateLoadingIdAndLoadSq(Map<String, Object> map){
  458. //前端传来数据结构类型为 {order: Integer, list: List<Map<String, Object>>}
  459. BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
  460. List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("list");
  461. int i = 0;
  462. for (Map<String, Object> mesMap : list) {
  463. mesMap.put("orderId", orderId);
  464. //通过物资ID和订单ID查询装车实绩ID
  465. Integer resultId = tmstruckLoadResultMapper.getLoadIdByOrderIdAndMId(mesMap);
  466. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  467. tmstruckLoadResult.setResultId(new BigDecimal(resultId));
  468. //设置装车顺序
  469. tmstruckLoadResult.setLoadingSequence(DataChange.dataToBigDecimal(mesMap.get("serialNumber")));
  470. //设置装车月台
  471. tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(mesMap.get("platformId")));
  472. i += tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
  473. }
  474. return i;
  475. }
  476. /**
  477. * 新增内转国产矿进口矿装车实绩
  478. * @param map
  479. * @return
  480. */
  481. public int addDaZhouToDaGangLoadResult(Map<String, Object> map){
  482. List<Integer> totalResultIdList = (List<Integer>) map.get("totalResultIdList");
  483. BigDecimal loadingId = DataChange.dataToBigDecimal(map.get("loadingId"));
  484. Date loadTime = new Date((long) map.get("loadTime"));
  485. int count = 0;
  486. for (Integer totalResultId : totalResultIdList) {
  487. TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
  488. tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
  489. tmstruckLoadResult.setResultTotalId(new BigDecimal(totalResultId));
  490. tmstruckLoadResult.setLoadingId(loadingId);
  491. tmstruckLoadResult.setResultLoadStartTime(loadTime);
  492. tmstruckLoadResult.setStatus(new BigDecimal(0));
  493. tmstruckLoadResult.setInsertTime(new Date());
  494. tmstruckLoadResult.setInsertUsername("admin");
  495. count += tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
  496. }
  497. return count;
  498. }
  499. }