TmstruckLoadResultServiceImpl.java 24 KB

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