TmstruckLoadResultServiceImpl.java 25 KB

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