TmstruckLoadResultServiceImpl.java 23 KB

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