TmstruckMeasureCommissionServiceImpl.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.steerinfo.dil.mapper.TmstruckMeasureCommissionMapper;
  5. import com.steerinfo.dil.model.TmstruckMeasureCommission;
  6. import com.steerinfo.dil.service.ITmstruckMeasureCommissionService;
  7. import com.steerinfo.dil.util.DataChange;
  8. import com.steerinfo.dil.util.HTTPRequestUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import java.io.IOException;
  12. import java.math.BigDecimal;
  13. import java.util.*;
  14. /**
  15. * TmstruckMeasureCommission服务实现:
  16. * @author generator
  17. * @version 1.0-SNAPSHORT 2021-09-09 10:28
  18. * 类描述
  19. * 修订历史:
  20. * 日期:2021-09-09
  21. * 作者:generator
  22. * 参考:
  23. * 描述:TmstruckMeasureCommission服务实现
  24. * @see null
  25. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  26. */
  27. @Service(value = "tmstruckMeasureCommissionService")
  28. public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCommissionService{
  29. @Autowired
  30. private TmstruckMeasureCommissionMapper tmstruckMeasureCommissionMapper;
  31. /**
  32. * 查询计量委托 0 :计皮 1:计毛
  33. * @param map orderTypee 订单类型 type 是计皮还是计毛
  34. * @return
  35. */
  36. @Override
  37. public List<Map<String, Object>> getAllMeasureCommission(Map<String, Object> map) {
  38. Integer orderType = (Integer) map.get("orderTypee");
  39. switch (orderType){
  40. case 1:
  41. break;
  42. case 2:
  43. break;
  44. case 3:
  45. break;
  46. case 4:
  47. break;
  48. case 5:
  49. break;
  50. case 6:
  51. break;
  52. case 7:
  53. break;
  54. case 8:
  55. return tmstruckMeasureCommissionMapper.getMeasureCommission(map);
  56. case 9:
  57. break;
  58. case 10:
  59. break;
  60. case 11:
  61. }
  62. return null;
  63. }
  64. /**
  65. * 添加计量委托 并发送采购订单计量委托
  66. * @param map {orderTypee: 订单类型
  67. * resultTotalId:总实绩ID orderId: 订单ID
  68. * 总实绩ID }
  69. * @return
  70. */
  71. public int addMaoMeasureCommission(Map<String, Object> map){
  72. int i = 0;
  73. addMeasureCommission(map); // 添加计毛委托
  74. //发送数据给计量系统 必要数据 orderTypee:订单类型 resultTotalId: 总实绩Id orderId
  75. //获取当前订单是属于哪个厂区订单
  76. Integer receiveId = 0 ;
  77. Integer supplierId = 0 ;
  78. if(DataChange.dataToBigDecimal(map.get("orderTypee")).intValue() == 10){
  79. receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
  80. }else{
  81. receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
  82. }
  83. if(receiveId == 1){
  84. //发送委托给达州钢铁
  85. i += sendMeasureCommissionMes(map);
  86. }
  87. if(receiveId == 2) {
  88. //发送委托给达兴能源
  89. i += sendDXMeasureCommissionMes(map);
  90. }
  91. return i;
  92. }
  93. /**
  94. * 发送销售订单计量委托
  95. * @param map
  96. * @return
  97. */
  98. public int addXSMeasureCommission(Map<String, Object> map){
  99. int i = 0;
  100. addMeasureCommission(map); // 添加计毛委托
  101. //发送数据给计量系统 必要数据 orderTypee:订单类型 resultTotalId: 总实绩Id orderId
  102. //获取当前订单是属于哪个厂区订单
  103. Integer shipperId = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
  104. if(shipperId == 1){
  105. //发送委托给达州钢铁
  106. i += sendMeasureCommissionMes(map);
  107. }
  108. if(shipperId == 2) {
  109. //发送委托给达兴能源
  110. i += sendDXMeasureCommissionMes(map);
  111. }
  112. return i;
  113. }
  114. /**
  115. * 添加零星物资计量委托
  116. * @param map
  117. * @return
  118. */
  119. public int addLXMeasureCommission(Map<String, Object> map){
  120. Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
  121. BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
  122. int i = 0;
  123. if(orderType == 12) {
  124. //查询进厂收货单位
  125. Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
  126. if(receiveId == 1){
  127. //给达钢发送委托
  128. }else if(receiveId == 2){
  129. //给达兴发送委托
  130. i = sendDXMeasureCommissionMes(map);
  131. }
  132. }else if(orderType == 13){
  133. Integer sendId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
  134. if(sendId == 1){
  135. //给达钢发送委托
  136. }else if(sendId == 2){
  137. //给达兴发送委托
  138. i = sendDXMeasureCommissionMes(map);
  139. }
  140. }else if(orderType == 15){
  141. //进厂,收货单位
  142. //如果是15类型的订单寻找订单父级发货单位 (现只有进厂)
  143. Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
  144. if(receiveId == 1){
  145. //给达钢发送委托1
  146. }else if (receiveId == 2){
  147. //给达兴发送委托
  148. i = sendDXMeasureCommissionMes(map);
  149. }
  150. }else if(orderType == 16){
  151. //出厂,发货单位
  152. Integer sendUnitId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
  153. if(sendUnitId == 1){
  154. //给达钢发送委托1
  155. }else if (sendUnitId == 2){
  156. //给达兴发送委托
  157. i = sendDXMeasureCommissionMes(map);
  158. }
  159. }
  160. addMeasureCommission(map); // 添加计毛委托
  161. return i;
  162. }
  163. /**
  164. * 新增计毛、计皮委托
  165. * @return
  166. */
  167. @Override
  168. public int addMeasureCommission(Map<String, Object> map) {
  169. TmstruckMeasureCommission tmstruckMeasureCommission = new TmstruckMeasureCommission();
  170. //生成主键Id
  171. tmstruckMeasureCommission.setCommssionId(tmstruckMeasureCommissionMapper.selectMaxId());
  172. //添加物资ID
  173. tmstruckMeasureCommission.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
  174. //添加汽车衡Id
  175. if(map.get("grossPlaceId") != null){
  176. tmstruckMeasureCommission.setCalculateId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
  177. }
  178. if(map.get("tarePlaceId") != null){
  179. tmstruckMeasureCommission.setCalculateId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
  180. }
  181. //添加实绩总表Id
  182. tmstruckMeasureCommission.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
  183. tmstruckMeasureCommission.setInsertTime(new Date());
  184. tmstruckMeasureCommission.setInsertUsername("admin");
  185. return tmstruckMeasureCommissionMapper.insertSelective(tmstruckMeasureCommission);
  186. }
  187. /**
  188. * 查询计量委托并向计量系统发送数据 调用他们接口
  189. * 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
  190. * 7:采购新区燃料订单;8:采购进口矿(万州-厂内);9:采购内转(达州-厂内);10:采购内转(老区-厂内); 11:厂内内转
  191. * @param map orderTypee 订单类型 type 计皮0还是计毛1类型 orderId 订单ID
  192. */
  193. public int sendMeasureCommissionMes(Map<String, Object> map){
  194. Map<String, Object> measureCommission = null;
  195. //查询计量委托
  196. BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
  197. switch (orderType.intValue()){
  198. case 1:
  199. break;
  200. case 2:
  201. break;
  202. case 3:
  203. break;
  204. case 10:
  205. break;
  206. case 11:
  207. case 4:
  208. break;
  209. case 5:
  210. case 6:
  211. case 7:
  212. case 8:
  213. case 9:
  214. measureCommission = tmstruckMeasureCommissionMapper.purchaseMeasure(map);
  215. measureCommission.put("isRelationEAS", true);
  216. measureCommission.put("flowTo", "进厂");
  217. measureCommission.put("isDel", false);
  218. measureCommission.put("isInsert", true);
  219. measureCommission.put("IsAssembly", false);
  220. measureCommission.put("deliveryMethod", "磅重交货");
  221. measureCommission.put("packagesNum", 0);
  222. }
  223. /*访问接口发送数据*/
  224. // sendMesToMeasure(measureCommission);
  225. return 1;
  226. }
  227. /**
  228. * 发送计量委托给达兴能源 计量
  229. * @param map
  230. * @return
  231. */
  232. public int sendDXMeasureCommissionMes(Map<String, Object> map){
  233. Map<String, Object> measureCommission = null;
  234. //查询计量委托
  235. BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
  236. switch (orderType.intValue()){
  237. case 1:
  238. case 2:
  239. case 3:
  240. measureCommission = tmstruckMeasureCommissionMapper.saleDXMeasure(map); //订单ID 物资ID 计量实绩ID
  241. if(measureCommission == null)
  242. return 0;
  243. measureCommission.put("deliveryType", "计重");
  244. measureCommission.put("billType", "1");
  245. measureCommission.put("crname", "admin");
  246. measureCommission.put("ended", "0");
  247. break;
  248. case 4:
  249. break;
  250. case 5:
  251. case 6:
  252. case 7:
  253. case 8:
  254. case 17:
  255. case 18:
  256. measureCommission = tmstruckMeasureCommissionMapper.purchaseDXMeasure(map);
  257. if(measureCommission == null)
  258. return 0;
  259. measureCommission.put("deliveryType", "计重");
  260. measureCommission.put("billType", "0");
  261. measureCommission.put("crname", "admin");
  262. measureCommission.put("ended", "0");
  263. case 9:
  264. break;
  265. case 10:
  266. //新区采购内转
  267. measureCommission = tmstruckMeasureCommissionMapper.purchaseXqCgNzDXMeasure(map);
  268. if(measureCommission == null)
  269. return 0;
  270. measureCommission.put("deliveryType", "计重");
  271. measureCommission.put("crname", "admin");
  272. //判断还没有净重的计量实绩
  273. Integer weightResultCount = tmstruckMeasureCommissionMapper.selectNoNetWeightResult(DataChange.dataToBigDecimal(map.get("resultTotalId")));
  274. if(weightResultCount == 1){
  275. //如果只剩一条未计量的数据则需要走金蝶(进厂卸货)
  276. measureCommission.put("orderSource", measureCommission.get("chooseOrderSource"));
  277. measureCommission.put("billType", "0");
  278. measureCommission.put("item", measureCommission.get("item") + ",1");
  279. measureCommission.put("goodsName",measureCommission.get("goodsName") + "null");
  280. }else {
  281. measureCommission.put("orderSource", "0");
  282. measureCommission.put("billType", "2");
  283. }
  284. measureCommission.put("ended", "0");
  285. break;
  286. case 11:
  287. break;
  288. case 12:
  289. case 13:
  290. measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
  291. if(measureCommission == null)
  292. return 0;
  293. measureCommission.put("regionName", "无法确定汽车衡"); //无法确定汽车衡
  294. measureCommission.put("deliveryType", "计重");
  295. measureCommission.put("billType", "2");
  296. measureCommission.put("planQuantity", "0");
  297. measureCommission.put("crname", "admin");
  298. measureCommission.put("orderSource", "0");
  299. measureCommission.put("ended", "0");
  300. break;
  301. // case 14:
  302. //零星一车多趟
  303. case 15:
  304. case 16:
  305. measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
  306. if(measureCommission == null)
  307. return 0;
  308. measureCommission.put("regionName", "无法确定汽车衡"); //无法确定汽车衡
  309. measureCommission.put("deliveryType", "计重");
  310. measureCommission.put("billType", "2");
  311. measureCommission.put("planQuantity", "0");
  312. measureCommission.put("crname", "admin");
  313. measureCommission.put("orderSource", "0");
  314. measureCommission.put("ended", "0");
  315. }
  316. /*访问接口发送数据*/
  317. return sendMesToDXMeasure(measureCommission);
  318. // System.out.println(measureCommission);
  319. // return 1;
  320. }
  321. /**
  322. *
  323. * 访问老厂区计量接口方法
  324. * @param map
  325. * @return
  326. */
  327. public int sendMesToMeasure(Map<String, Object> map){
  328. List<Map<String, Object>> sendMap = new ArrayList<>();
  329. sendMap.add(map);
  330. JSONObject jsonObject = new JSONObject();
  331. jsonObject.put("data", sendMap);
  332. String url = "http://172.16.33.122:44325/api/logistics/TareApplyFor";
  333. String jsonData = null;
  334. try {
  335. jsonData = HTTPRequestUtils.send(url, jsonObject, "utf-8");
  336. } catch (IOException e) {
  337. e.printStackTrace();
  338. }
  339. if(!"null".equals(jsonData)){
  340. System.out.println(jsonData);
  341. HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
  342. boolean success = (boolean) hashMap.get("success");
  343. System.out.println(hashMap.get("msg"));
  344. if(success){
  345. return 1;
  346. }
  347. }
  348. return 0;
  349. }
  350. /**
  351. * 访问新厂区达兴能源计量接口方法
  352. * @param map
  353. * @return
  354. */
  355. public int sendMesToDXMeasure(Map<String, Object> map){
  356. JSONObject jsonObject = new JSONObject();
  357. jsonObject.putAll(map);
  358. String url = "http://172.16.59.251:8121/daXingWeight/OrderBusiness/addOrder.do";
  359. String jsonData = null;
  360. try {
  361. jsonData = HTTPRequestUtils.send(url, jsonObject, "utf-8");
  362. } catch (IOException e) {
  363. e.printStackTrace();
  364. }
  365. if(!"null".equals(jsonData)){
  366. System.out.println(jsonData);
  367. HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
  368. String code = (String) hashMap.get("code");
  369. System.out.println(hashMap.get("msg"));
  370. if("0".equals(code)){
  371. return 1;
  372. }
  373. }
  374. return 0;
  375. }
  376. }