AmsSaleOrderMaterialServiceImpl.java 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.controller.AmsSaleTrucknoMaterialController;
  3. import com.steerinfo.dil.feign.IMFeign;
  4. import com.steerinfo.dil.feign.TmsTruckFeign;
  5. import com.steerinfo.dil.mapper.*;
  6. import com.steerinfo.dil.model.*;
  7. import com.steerinfo.dil.service.IAmsSaleOrderMaterialService;
  8. import com.steerinfo.dil.util.DataChange;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.math.BigDecimal;
  13. import java.text.ParseException;
  14. import java.text.SimpleDateFormat;
  15. import java.util.*;
  16. /**
  17. * AmsSaleOrderMaterial服务实现:
  18. * @author generator
  19. * @version 1.0-SNAPSHORT 2021-09-06 07:10
  20. * 类描述
  21. * 修订历史:
  22. * 日期:2021-09-06
  23. * 作者:generator
  24. * 参考:
  25. * 描述:AmsSaleOrderMaterial服务实现
  26. * @see null
  27. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  28. */
  29. @Service(value = "amsSaleOrderMaterialService")
  30. public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialService {
  31. @Autowired
  32. private AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
  33. @Autowired
  34. AmsSaleTrucknoMaterialMapper amsSaleTrucknoMaterialMapper;
  35. @Autowired
  36. AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper;
  37. @Autowired
  38. OmstruckOrderMapper omstruckOrderMapper;
  39. @Autowired
  40. OmstruckOrderMaterialMapper omstruckOrderMaterialMapper;
  41. @Autowired
  42. IMFeign imFeign;
  43. @Autowired
  44. TmsTruckFeign tmsTruckFeign;
  45. @Autowired
  46. AmsSaleOrderMapper amsSaleOrderMapper;
  47. @Autowired
  48. AmsContractTransportPriceMapper amsContractTransportPriceMapper;
  49. @Autowired
  50. RmsReceivePlaceMapper rmsReceivePlaceMapper;
  51. @Override
  52. public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
  53. long id;
  54. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  55. id = 1;
  56. }else {
  57. id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  58. }
  59. //生成主键id
  60. amsSaleOrderMaterial.setSaleOrderMaterialId(new BigDecimal(id));
  61. //生成车序号
  62. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(id));
  63. //常规字段
  64. amsSaleOrderMaterial.setInsertUsername("admin");
  65. amsSaleOrderMaterial.setInsertTime(new Date());
  66. amsSaleOrderMaterial.setUpdateUsername("admin");
  67. amsSaleOrderMaterial.setUpdateTime(new Date());
  68. amsSaleOrderMaterial.setInsertUpdateRemark("无");
  69. amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
  70. amsSaleOrderMaterial.setUpdated(new BigDecimal(0));
  71. return amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial);
  72. }
  73. @Override
  74. public List<Map<String, Object>> selectBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) {
  75. return amsSaleOrderMaterialMapper.selectBySaleOrderMaterialId(saleOrderMaterialId);
  76. }
  77. @Override
  78. public int updateAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
  79. amsSaleOrderMaterial.setUpdateTime(new Date());
  80. return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
  81. }
  82. @Override
  83. public int deleteAmsSaleOrderMaterialBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) {
  84. AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(saleOrderMaterialId);
  85. amsSaleOrderMaterial.setDeleted(new BigDecimal(1));
  86. return amsSaleOrderMaterialMapper.updateByPrimaryKey(amsSaleOrderMaterial);
  87. }
  88. @Override
  89. public String getAddress(BigDecimal saleOrderMaterialId) {
  90. return amsSaleOrderMaterialMapper.getAddress(saleOrderMaterialId);
  91. }
  92. @Override
  93. public int updateAddress(Map<String, Object> map) {
  94. String saleOrderMaterialId = map.get("saleOrderMaterialId").toString();
  95. //查询收货地址表中是否有该地址,无则新增,有则取收货地址Id
  96. String saleShippingAddress = (String) map.get("saleShippingAddress");
  97. BigDecimal addressId = amsSaleOrderMaterialMapper.getReceiveAddressId(saleShippingAddress);
  98. //获得原车次表信息
  99. AmsSaleOrderMaterial amsSaleOrderMaterial1 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId));
  100. if(addressId!=null){
  101. long id;
  102. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  103. id = 1;
  104. }else {
  105. id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  106. }
  107. //生成主键id
  108. amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id));
  109. amsSaleOrderMaterial1.setSaleShippingAddressId(addressId);
  110. //新增修改了地址的数据
  111. amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1);
  112. }else {
  113. //新增收货地址,取得收货地址的Id
  114. Map<String,Object> mapReceive = new HashMap<>();
  115. long id;
  116. if(amsSaleOrderMaterialMapper.selectMaxIdReceive()==null){
  117. id = 1;
  118. }else {
  119. id = amsSaleOrderMaterialMapper.selectMaxIdReceive().longValue()+1;
  120. }
  121. mapReceive.put("addressId",new BigDecimal(id));
  122. mapReceive.put("addressDeliveryAddress",saleShippingAddress);
  123. amsSaleOrderMaterialMapper.insertReceiveAddress(mapReceive);
  124. //新增修改了地址的数据
  125. long id1;
  126. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  127. id1 = 1;
  128. }else {
  129. id1 = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  130. }
  131. //生成主键id
  132. amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id1));
  133. amsSaleOrderMaterial1.setSaleShippingAddressId(new BigDecimal(id));
  134. //新增修改了地址的数据
  135. amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1);
  136. }
  137. //修改原地址记录状态
  138. AmsSaleOrderMaterial amsSaleOrderMaterial2 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId));
  139. amsSaleOrderMaterial2.setUpdated(new BigDecimal(1));
  140. return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial2);
  141. }
  142. @Override
  143. public List<Map<String, Object>> getAddressDeliveryAddress() {
  144. return amsSaleOrderMaterialMapper.getAddressDeliveryAddress();
  145. }
  146. public List<Map<String, Object>> getSaleMaterial(Map<String, Object> mapValue) {
  147. return amsSaleOrderMaterialMapper.getSaleMaterial(mapValue);
  148. }
  149. public Integer selectById(BigDecimal saleOrderMaterialId) {
  150. return amsSaleOrderMaterialMapper.selectById(saleOrderMaterialId);
  151. }
  152. public Integer selectByCxh(Map<String, Object> m) {
  153. return amsSaleOrderMaterialMapper.selectByCxh(m);
  154. }
  155. /**
  156. * 展示车序号信息
  157. * @param mapValue
  158. * @return
  159. */
  160. @Override
  161. public List<Map<String, Object>> getTruckNoList(Map<String, Object> mapValue) {
  162. List<Map<String,Object>> mapList = amsSaleOrderMaterialMapper.getTruckNoList(mapValue);
  163. return mapList;
  164. }
  165. /**
  166. * 添加车序号与物资
  167. * @param mapList
  168. * @return
  169. */
  170. @Transactional
  171. @Override
  172. public int addTruckNo(List<Map<String, Object>> mapList) {
  173. int result = 0;
  174. for (Map<String, Object> map : mapList) {
  175. // 销售订单id
  176. BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
  177. // 车序号
  178. BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo"));
  179. AmsSaleOrderMaterial amsSaleOrderMaterial;
  180. Map<String,Object> saleMap = new HashMap<>();
  181. saleMap.put("saleOrderId",saleOrderId);
  182. saleMap.put("saleOrderMaterialTruckNo",truckNo);
  183. // 检测销售订单下的车序号是否已存在
  184. List<AmsSaleOrderMaterial> amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap);
  185. // 如果已存在则不处理
  186. if (amsSaleOrderMaterials != null && amsSaleOrderMaterials.size() != 0) {
  187. amsSaleOrderMaterial = amsSaleOrderMaterials.get(0);
  188. }
  189. // 如果不存在则新增车序号
  190. else {
  191. amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  192. // 收货地址id
  193. BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shippingAddressId"));
  194. String place = (String) (map.get("place"));
  195. if (place != null) {
  196. List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
  197. if (placeIdList == null || placeIdList.size() == 0) {
  198. RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
  199. rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
  200. rmsReceivePlace.setAddressId(shippingAddressId);
  201. rmsReceivePlace.setAddressDeliveryAddress(place);
  202. amsSaleOrderMaterial.setSaleShippingAddressId(rmsReceivePlace.getPlaceId());
  203. rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
  204. } else {
  205. amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
  206. }
  207. }
  208. // 截止日期
  209. // String dateOfReceiptStr = (String) map.get("dateOfReceipt");
  210. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  211. Date dateOfReceipt = new Date((Long) map.get("dateOfReceipt"));
  212. // try {
  213. // dateOfReceipt = sdf.parse(dateOfReceiptStr);
  214. // } catch (ParseException e) {
  215. // e.printStackTrace();
  216. // }
  217. // 收货方姓名
  218. String orderConsignee = (String) map.get("orderConsignee");
  219. // 收货方联系方式
  220. Object orderConsigneeTel = map.get("orderConsigneeTel");
  221. BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
  222. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  223. amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
  224. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
  225. // 钢材收货日期
  226. amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
  227. amsSaleOrderMaterial.setSaleOrderConsignee(orderConsignee);
  228. if (orderConsignee != null) {
  229. amsSaleOrderMaterial.setSaleOrderConsigneeTel(orderConsigneeTel.toString());
  230. }
  231. Object priceId = map.get("priceId");
  232. if(priceId != null && !"".equals(priceId)) amsSaleOrderMaterial.setPriceId(DataChange.dataToBigDecimal(priceId));
  233. amsSaleOrderMaterial.setInsertTime(new Date());
  234. amsSaleOrderMaterial.setInsertUsername("admin");
  235. amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
  236. amsSaleOrderMaterial.setInsertUpdateRemark("无");
  237. amsSaleOrderMaterial.setUpdated(new BigDecimal(0));
  238. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(0));
  239. result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
  240. }
  241. // 新增车序号与物资中间表
  242. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
  243. // 物资id
  244. BigDecimal materialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
  245. // 物资数量
  246. BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
  247. BigDecimal saleTrucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
  248. amsSaleTrucknoMaterial.setTrucknoMaterialId(saleTrucknoMaterialId);
  249. amsSaleTrucknoMaterial.setMaterialId(materialId);
  250. amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
  251. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
  252. amsSaleTrucknoMaterial.setInsertTime(new Date());
  253. amsSaleTrucknoMaterial.setInsertUsername("admin");
  254. amsSaleTrucknoMaterial.setInsertUpdateRemark("无");
  255. result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
  256. }
  257. return result;
  258. }
  259. /**
  260. * 下发车序号
  261. * @param mapList
  262. * @return
  263. */
  264. @Override
  265. public int issueTruckNo(List<Map<String, Object>> mapList) {
  266. int result = 0;
  267. for (Map<String, Object> map : mapList) {
  268. BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
  269. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  270. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  271. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(1));
  272. result += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
  273. }
  274. return result;
  275. }
  276. /**
  277. * 展示车序号下的物资详情
  278. * @param saleOrderMaterialId
  279. * @return
  280. */
  281. @Override
  282. public List<Map<String, Object>> getTruckNoMaterialList(BigDecimal saleOrderMaterialId) {
  283. List<Map<String, Object>> mapList = amsSaleOrderMaterialMapper.getTruckNoMaterialList(saleOrderMaterialId);
  284. return mapList;
  285. }
  286. /**
  287. * 销售订单下的物资
  288. * @param saleOrderId
  289. * @return
  290. */
  291. @Override
  292. public List<Map<String, Object>> getSaleMaterialList(BigDecimal saleOrderId) {
  293. List<Map<String, Object>> saleMaterialList = amsSaleOrderMaterialMapper.getSaleMaterialList(saleOrderId);
  294. return saleMaterialList;
  295. }
  296. /**
  297. * 销售直接派发销售订单
  298. * @param mapValue
  299. * @return
  300. */
  301. @Transactional
  302. @Override
  303. public int dispatchTruckOrderBySale(Map<String, Object> mapValue) {
  304. int result = 0;
  305. // 得到列内容
  306. List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
  307. // 销售订单主键
  308. BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
  309. if(mapValue.get("sendAgain") == null){
  310. // 得到销售订单中的总重量和销售订单下的总净重
  311. BigDecimal saleMaterialWeight = amsSaleOrderMaterialMapper.getMaterialWeightByOrderId(saleOrderId);
  312. BigDecimal saleMaterialNetWeight = amsSaleOrderMaterialMapper.getMaterialNetWeightBySaleId(saleOrderId);
  313. if (saleMaterialNetWeight == null) {
  314. saleMaterialNetWeight = new BigDecimal(0);
  315. }
  316. // 计算净重所占销售订单中的比例
  317. Double percent = saleMaterialNetWeight.doubleValue()/saleMaterialWeight.doubleValue();
  318. if (percent >= 0.97) {
  319. return -1;
  320. }
  321. }
  322. // 车序号计数
  323. int count = 1;
  324. // 遍历每一个列
  325. for (Map<String, Object> map : mapList) {
  326. // 销售订单-物资中间表id
  327. BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
  328. // 物资id
  329. BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
  330. // 承运商id
  331. BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
  332. // 运输线路id
  333. BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
  334. // 通过线路id判断是否是钢材
  335. BigDecimal isSteel = amsSaleOrderMaterialMapper.getIsSteel(lineId);
  336. // 物资重量
  337. BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("orderPlanWeight"));
  338. // 车牌号
  339. String capacityNumber = (String) map.get("capacityNumber");
  340. // 得到运力id
  341. BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
  342. // 收货方姓名
  343. String consigneeName = String.valueOf(map.get("saleOrderConsignee"));
  344. // 收货方电话
  345. String consigneeTel = String.valueOf(map.get("saleOrderConsigneeTel"));
  346. // 截止日期
  347. String dateOfReceiptStr = String.valueOf(map.get("saleDateOfReceipt"));
  348. Date dateOfReceipt = null;
  349. if (!"null".equals(dateOfReceiptStr) && !"undefined".equals(dateOfReceiptStr)) {
  350. dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
  351. }
  352. /*
  353. 车序号表
  354. */
  355. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  356. // 收货地址id
  357. BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("saleShipperAddressId"));
  358. String place = (String) (map.get("place"));
  359. if (place != null) {
  360. List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
  361. if (placeIdList == null || placeIdList.size() == 0) {
  362. RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
  363. rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
  364. rmsReceivePlace.setAddressId(shippingAddressId);
  365. rmsReceivePlace.setAddressDeliveryAddress(place);
  366. amsSaleOrderMaterial.setSaleShippingAddressId(rmsReceivePlace.getPlaceId());
  367. rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
  368. } else {
  369. amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
  370. }
  371. }
  372. // 主键
  373. BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
  374. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  375. // 销售订单主键
  376. amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
  377. // 车序号
  378. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(count));
  379. // 截止日期
  380. amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
  381. // 收货方姓名
  382. if (!consigneeName.equals("null") && !consigneeName.equals("undefined")) {
  383. amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
  384. }
  385. // 收货方联系方式
  386. if (!consigneeTel.equals("null") && !consigneeTel.equals("undefined")) {
  387. amsSaleOrderMaterial.setSaleOrderConsigneeTel(consigneeTel);
  388. }
  389. // 下发状态
  390. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
  391. /*
  392. 车序号与物资子表
  393. */
  394. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
  395. // 主键
  396. BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
  397. amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
  398. // 销售订单-物资中间表id
  399. amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
  400. // 车序号主键
  401. amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  402. // 物资重量
  403. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
  404. /*
  405. 定向派单表
  406. */
  407. AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
  408. // 主键
  409. BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
  410. amsDispatchSaleOrder.setDispatchId(dispatchId);
  411. // 车序号表id
  412. amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
  413. // 承运商id
  414. amsDispatchSaleOrder.setCarrierId(carrierId);
  415. // 派单时间和成交时间
  416. amsDispatchSaleOrder.setDispatchTime(new Date());
  417. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  418. // 成交类型
  419. amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
  420. // 车序号状态
  421. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
  422. /*
  423. 运输订单
  424. */
  425. OmstruckOrder omstruckOrder = new OmstruckOrder();
  426. // 运输订单主键
  427. BigDecimal orderId = omstruckOrderMapper.selectMaxId();
  428. omstruckOrder.setOrderId(orderId);
  429. // 车序号主键
  430. omstruckOrder.setOrderPlanId(saleOrderMaterialId);
  431. //添加承运商ID 和 运价ID
  432. // Object priceId = map.get("priceId");
  433. Object priceId = map.get("priceId");
  434. if (priceId != null) {
  435. omstruckOrder.setPriceId(DataChange.dataToBigDecimal(priceId));
  436. }
  437. omstruckOrder.setCarrierId(carrierId);
  438. // 运输订单号
  439. omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD",orderId.intValue()));
  440. // 运力id
  441. omstruckOrder.setCapacityId(capacityId);
  442. // 承运商
  443. omstruckOrder.setCarrierId(carrierId);
  444. // 下发时间
  445. omstruckOrder.setOrderIssueTime(new Date());
  446. // 运单状态
  447. omstruckOrder.setOrderStatus(new BigDecimal(4));
  448. BigDecimal status;
  449. // 钢材
  450. if (isSteel != null && isSteel.intValue() == 1) {
  451. status = new BigDecimal(1);
  452. }
  453. // 非钢材(危化品,焦炭,副产品)
  454. else {
  455. status = new BigDecimal(2);
  456. }
  457. // 订单类型
  458. omstruckOrder.setOrderType(status);
  459. // 运输线路id
  460. omstruckOrder.setLineId(lineId);
  461. omstruckOrder.setInsertTime(new Date());
  462. /*
  463. 运输订单子表
  464. */
  465. OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
  466. // 主键
  467. BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
  468. omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
  469. // 运输订单id
  470. omstruckOrderMaterial.setOrderId(orderId);
  471. // 物资id
  472. omstruckOrderMaterial.setMaterialId(materialId);
  473. // 物资重量
  474. omstruckOrderMaterial.setOrderMaterialWeight(materialNumber);
  475. omstruckOrderMaterial.setInsertTime(new Date());
  476. // 新增车序号表
  477. result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
  478. // 新增车序号-物资中间表
  479. result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
  480. // 新增定向派单表
  481. result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
  482. // 新增运输订单
  483. result += omstruckOrderMapper.insertSelective(omstruckOrder);
  484. // 新增运输订单子表
  485. result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
  486. // 调用websocket
  487. Map<String,Object> orderIdMap = new HashMap<>();
  488. orderIdMap.put("orderId",orderId);
  489. pushMesToWebsocket(orderIdMap);
  490. // 生成运输执行总实绩
  491. result += tmsTruckFeign.addTotalResult(orderIdMap);
  492. // 车序号累加
  493. count++;
  494. }
  495. return result;
  496. }
  497. @Override
  498. public int updateInwardConsignee(Map<String, Object> mapValue) {
  499. return amsSaleOrderMaterialMapper.updateInwardConsignee(mapValue);
  500. }
  501. /**
  502. * 内转钢材派发订单
  503. * @param mapValue
  504. * @return
  505. */
  506. @Override
  507. @Transactional(rollbackFor = Exception.class)
  508. public int dispatchInwardTruckOrderBySale(Map<String, Object> mapValue) {
  509. int result = 0;
  510. // 得到列内容
  511. List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
  512. // 销售订单主键
  513. BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
  514. // 车序号计数
  515. int count = 1;
  516. /*
  517. 车序号表,只生成一次,对应多个子表(物资)
  518. */
  519. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  520. // 主键
  521. BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
  522. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  523. // 销售订单主键
  524. amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
  525. // 车序号
  526. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(count));
  527. // 下发状态
  528. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
  529. // 新增车序号表
  530. result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
  531. BigDecimal orderId = omstruckOrderMapper.selectMaxId();
  532. if(mapList.size()>=1){
  533. //更新发站
  534. Map<String,Object> map=mapList.get(0);
  535. amsSaleOrderMaterialMapper.updateSendStation(map);
  536. /*
  537. 运输订单
  538. */
  539. OmstruckOrder omstruckOrder = new OmstruckOrder();
  540. // 运输订单主键
  541. omstruckOrder.setOrderId(orderId);
  542. // 车序号主键
  543. omstruckOrder.setOrderPlanId(saleOrderMaterialId);
  544. //添加承运商ID 和 运价ID
  545. // Object priceId = map.get("priceId");
  546. Object priceId = map.get("priceId");
  547. if (priceId != null) {
  548. omstruckOrder.setPriceId(DataChange.dataToBigDecimal(priceId));
  549. }
  550. // 承运商id
  551. BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
  552. // 运输线路id
  553. BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
  554. // 车牌号
  555. String capacityNumber = (String) map.get("capacityNumber");
  556. // 得到运力id
  557. BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
  558. // 运输订单号
  559. omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD",orderId.intValue()));
  560. // 运力id
  561. omstruckOrder.setCapacityId(capacityId);
  562. // 承运商
  563. omstruckOrder.setCarrierId(carrierId);
  564. // 下发时间
  565. omstruckOrder.setOrderIssueTime(new Date());
  566. // 运单状态
  567. omstruckOrder.setOrderStatus(new BigDecimal(4));
  568. // 订单类型
  569. omstruckOrder.setOrderType(new BigDecimal(4));
  570. // 运输线路id
  571. omstruckOrder.setLineId(lineId);
  572. omstruckOrder.setInsertTime(new Date());
  573. // 新增运输订单
  574. result += omstruckOrderMapper.insertSelective(omstruckOrder);
  575. }
  576. // 遍历每一个列
  577. for (Map<String, Object> map : mapList) {
  578. // 销售订单-物资中间表id
  579. BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
  580. // 物资id
  581. BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
  582. // 承运商id
  583. BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
  584. // 运输线路id
  585. BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
  586. // 通过线路id判断是否是钢材
  587. BigDecimal isSteel = amsSaleOrderMaterialMapper.getIsSteel(lineId);
  588. // 物资重量
  589. BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialWeight"));
  590. // 物资数量
  591. BigDecimal materialNum = DataChange.dataToBigDecimal(map.get("materialNum"));
  592. // 车牌号
  593. String capacityNumber = (String) map.get("capacityNumber");
  594. // 得到运力id
  595. BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
  596. // 收货方姓名
  597. String consigneeName = String.valueOf(map.get("consigneeName"));
  598. // 收货方电话
  599. //String consigneeTel = String.valueOf(map.get("saleOrderConsigneeTel"));
  600. // 截止日期
  601. String dateOfReceiptStr = String.valueOf(map.get("saleDateOfReceipt"));
  602. Date dateOfReceipt = null;
  603. if (!"null".equals(dateOfReceiptStr) && !"undefined".equals(dateOfReceiptStr)) {
  604. dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
  605. }
  606. /*
  607. 车序号与物资子表
  608. */
  609. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
  610. // 主键
  611. BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
  612. amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
  613. // 销售订单-物资中间表id
  614. amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
  615. // 车序号主键
  616. amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  617. // 物资重量
  618. amsSaleTrucknoMaterial.setMaterialTheoreticalWeight(materialNumber);
  619. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNum);
  620. /*
  621. 定向派单表
  622. */
  623. AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
  624. // 主键
  625. BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
  626. amsDispatchSaleOrder.setDispatchId(dispatchId);
  627. // 车序号表id
  628. amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
  629. // 承运商id
  630. amsDispatchSaleOrder.setCarrierId(carrierId);
  631. // 派单时间和成交时间
  632. amsDispatchSaleOrder.setDispatchTime(new Date());
  633. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  634. // 成交类型
  635. amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
  636. // 车序号状态
  637. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
  638. /*
  639. 运输订单子表
  640. */
  641. OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
  642. // 主键
  643. BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
  644. omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
  645. // 运输订单id
  646. omstruckOrderMaterial.setOrderId(orderId);
  647. // 物资id
  648. omstruckOrderMaterial.setMaterialId(materialId);
  649. // 物资重量
  650. omstruckOrderMaterial.setOrderMaterialWeight(materialNumber);
  651. //物资数量
  652. omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
  653. omstruckOrderMaterial.setInsertTime(new Date());
  654. // 新增车序号-物资中间表
  655. result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
  656. // 新增定向派单表
  657. result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
  658. // 新增运输订单子表
  659. result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
  660. // 车序号累加
  661. count++;
  662. }
  663. // 调用websocket
  664. Map<String,Object> orderIdMap = new HashMap<>();
  665. orderIdMap.put("orderId",orderId);
  666. pushMesToWebsocket(orderIdMap);
  667. // 生成运输执行总实绩
  668. result += tmsTruckFeign.addTotalResult(orderIdMap);
  669. return result;
  670. }
  671. /**
  672. * 承运商直接派发销售订单
  673. * @param mapValue
  674. * @return
  675. */
  676. @Override
  677. public int dispatchTruckOrderByCarrier(Map<String, Object> mapValue) {
  678. int result = 0;
  679. // 得到列内容
  680. List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
  681. // 销售订单主键
  682. BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
  683. // 得到最大的车序号
  684. BigDecimal count = DataChange.dataToBigDecimal(mapValue.get("truckNo"));
  685. // 车序号计数
  686. if (count.intValue() == 0) {
  687. count = new BigDecimal(1);
  688. }
  689. // 遍历每一个列
  690. for (Map<String, Object> map : mapList) {
  691. // 销售订单-物资中间表id
  692. BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
  693. // 物资id
  694. BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
  695. // 收货地址id
  696. BigDecimal saleShippingAddressId = DataChange.dataToBigDecimal(map.get("saleShippingAddressId"));
  697. if (saleShippingAddressId.intValue() == 0) {
  698. saleShippingAddressId = null;
  699. }
  700. // 承运商id
  701. BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
  702. // 运输线路id
  703. BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
  704. // 通过线路id判断是否是钢材
  705. BigDecimal isSteel = amsSaleOrderMaterialMapper.getIsSteel(lineId);
  706. // 物资重量
  707. BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("orderPlanWeight"));
  708. // 车牌号
  709. String capacityNumber = (String) map.get("capacityNumber");
  710. // 得到运力id
  711. BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
  712. // 收货方姓名
  713. String consigneeName = String.valueOf(map.get("saleOrderConsignee"));
  714. // 收货方电话
  715. String consigneeTel = String.valueOf(map.get("saleOrderConsigneeTel"));
  716. // 截止日期
  717. String dateOfReceiptStr = "4102415999000";
  718. Date dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
  719. /*
  720. 车序号表
  721. */
  722. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  723. // 主键
  724. BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
  725. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  726. // 销售订单主键
  727. amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
  728. // 车序号
  729. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(count);
  730. // 收货地址
  731. amsSaleOrderMaterial.setSaleShippingAddressId(saleShippingAddressId);
  732. // 截止日期
  733. amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
  734. // 收货方姓名
  735. if (!consigneeName.equals("null") && !consigneeName.equals("undefined")) {
  736. amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
  737. }
  738. // 收货方联系方式
  739. if (!consigneeTel.equals("null") && !consigneeTel.equals("undefined")) {
  740. amsSaleOrderMaterial.setSaleOrderConsigneeTel(consigneeTel);
  741. }
  742. // 下发状态
  743. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
  744. /*
  745. 车序号与物资子表
  746. */
  747. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
  748. // 主键
  749. BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
  750. amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
  751. // 销售订单-物资中间表id
  752. amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
  753. // 车序号主键
  754. amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  755. // 物资重量
  756. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
  757. /*
  758. 定向派单表
  759. */
  760. AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
  761. // 主键
  762. BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
  763. amsDispatchSaleOrder.setDispatchId(dispatchId);
  764. // 车序号表id
  765. amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
  766. // 承运商id
  767. amsDispatchSaleOrder.setCarrierId(carrierId);
  768. // 派单时间和成交时间
  769. amsDispatchSaleOrder.setDispatchTime(new Date());
  770. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  771. // 成交类型
  772. amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
  773. // 车序号状态
  774. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
  775. /*
  776. 运输订单
  777. */
  778. OmstruckOrder omstruckOrder = new OmstruckOrder();
  779. String orgCode =(String) mapValue.get("orgCode");
  780. if (orgCode==null||orgCode.equals("")){
  781. }else {
  782. omstruckOrder.setOptionerCode(orgCode);
  783. }
  784. // 运输订单主键
  785. BigDecimal orderId = omstruckOrderMapper.selectMaxId();
  786. omstruckOrder.setOrderId(orderId);
  787. omstruckOrder.setCarrierId(carrierId);
  788. // 车序号主键
  789. omstruckOrder.setOrderPlanId(saleOrderMaterialId);
  790. // 运输订单号
  791. omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD",orderId.intValue()));
  792. // 运力id
  793. omstruckOrder.setCapacityId(capacityId);
  794. // 下发时间
  795. omstruckOrder.setOrderIssueTime(new Date());
  796. // 承运商
  797. omstruckOrder.setCarrierId(carrierId);
  798. // 运单状态
  799. omstruckOrder.setOrderStatus(new BigDecimal(4));
  800. BigDecimal status;
  801. // 非钢材(危化品和焦炭)
  802. if (isSteel != null && (isSteel.intValue() == 3 || isSteel.intValue() == 4)) {
  803. status = new BigDecimal(2);
  804. }
  805. // 钢材
  806. else {
  807. status = new BigDecimal(1);
  808. }
  809. // 订单类型
  810. omstruckOrder.setOrderType(status);
  811. // 运输线路id
  812. omstruckOrder.setLineId(lineId);
  813. omstruckOrder.setInsertTime(new Date());
  814. /*
  815. 运输订单子表
  816. */
  817. OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
  818. // 主键
  819. BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
  820. omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
  821. // 运输订单id
  822. omstruckOrderMaterial.setOrderId(orderId);
  823. // 物资id
  824. omstruckOrderMaterial.setMaterialId(materialId);
  825. // 物资重量
  826. omstruckOrderMaterial.setOrderMaterialWeight(materialNumber);
  827. // 新增车序号表
  828. result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
  829. // 新增车序号-物资中间表
  830. result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
  831. // 新增定向派单表
  832. result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
  833. // 新增运输订单
  834. result += omstruckOrderMapper.insertSelective(omstruckOrder);
  835. // 新增运输订单子表
  836. result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
  837. // 调用websocket
  838. Map<String,Object> orderIdMap = new HashMap<>();
  839. orderIdMap.put("orderId",orderId);
  840. pushMesToWebsocket(orderIdMap);
  841. // 生成运输执行总实绩
  842. result += tmsTruckFeign.addTotalResult(orderIdMap);
  843. // 车序号累加
  844. count = new BigDecimal(count.intValue() + 1);
  845. }
  846. // 修改状态为开启状态
  847. AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
  848. amsSaleOrder.setSaleOrderId(saleOrderId);
  849. amsSaleOrder.setCloseStatus(new BigDecimal(0));
  850. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  851. return result;
  852. }
  853. /**
  854. * 关闭销售订单
  855. * @param saleOrderId
  856. * @return
  857. */
  858. @Override
  859. public int closeSaleOrder(BigDecimal saleOrderId) {
  860. AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
  861. amsSaleOrder.setSaleOrderId(saleOrderId);
  862. amsSaleOrder.setCloseStatus(new BigDecimal(1));
  863. int result = amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  864. return result;
  865. }
  866. /**
  867. * 发送消息到 websocket 推送消息
  868. * orderId 订单Id
  869. * @return
  870. */
  871. public String pushMesToWebsocket(Map<String, Object> map) {
  872. Map<String, Object> mesMap = omstruckOrderMapper.pushMesToWebsocket(map);
  873. //添加消息实体
  874. HashMap<Object, Object> mapp = new HashMap<>();
  875. mapp.put("messageType", 3);
  876. mapp.put("sendPerson", "system");
  877. mapp.put("receivePerson", mesMap.get("capacityNumber"));
  878. mapp.put("messageContent",(String) mesMap.get("orderNumber") + new Date());
  879. mapp.put("createTime", new Date());
  880. ArrayList<Object> list = new ArrayList<>();
  881. list.add(mapp);
  882. //调用websocket接口推送
  883. HashMap<Object, Object> sendMap = new HashMap<>();
  884. //将消息实体放入list中存到map中
  885. sendMap.put("messages", list);
  886. String s = imFeign.sendToUser(sendMap);
  887. System.out.println(s);
  888. return s;
  889. }
  890. @Override
  891. public Map<String, Object> getPriceMap(Map<String, Object> map) {
  892. Object addressId = map.get("addressId");
  893. String place = (String) map.get("place");
  894. Map<String,Object> priceMap = new HashMap<>();
  895. priceMap.put("addressId",addressId);
  896. priceMap.put("place",place);
  897. BigDecimal priceId = omstruckOrderMapper.getPriceId(priceMap);
  898. BigDecimal priceValue;
  899. if (priceId == null) {
  900. priceValue = omstruckOrderMapper.findMaxPrice(addressId);
  901. if (priceValue != null) {
  902. priceMap.put("priceValue", priceValue);
  903. List<Map<String, Object>> priceIdList = omstruckOrderMapper.findMaxPriceId(priceMap);
  904. priceId = (BigDecimal) priceIdList.get(0).get("priceId");
  905. }
  906. else {
  907. Map<String,Object> map1 = new HashMap<>();
  908. map1.put("priceValue",-1);
  909. map1.put("priceId",-1);
  910. return map1;
  911. }
  912. }
  913. else {
  914. AmsContractTransportPrice amsContractTransportPrice = amsContractTransportPriceMapper.selectByPrimaryKey(priceId);
  915. priceValue = amsContractTransportPrice.getPriceValue();
  916. }
  917. priceMap.put("priceId",priceId);
  918. priceMap.put("priceValue",priceValue);
  919. return priceMap;
  920. }
  921. /**
  922. * 得到单价和单价id
  923. * @param map
  924. * @return
  925. */
  926. @Override
  927. public Map<String, Object> getBenPrice(Map<String, Object> map) {
  928. BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
  929. BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
  930. Map<String, Object> saleMessage = amsSaleOrderMaterialMapper.getSaleMessage(saleOrderId);
  931. String isSelfMention = (String) saleMessage.get("isSelfMention");
  932. BigDecimal receiveId = (BigDecimal) saleMessage.get("receiveId");
  933. BigDecimal priceId = null;
  934. BigDecimal priceValue = null;
  935. Map<String,Object> resultMap = new HashMap<>();
  936. List<Map<String,Object>> mapList = amsSaleOrderMaterialMapper.getPriceList(carrierId);
  937. if ((isSelfMention.equals("否") && receiveId.intValue() == 1516) && (mapList != null && mapList.size() != 0)) {
  938. Map<String, Object> priceMap = mapList.get(1);
  939. priceId = (BigDecimal) priceMap.get("priceId");
  940. priceValue = (BigDecimal) priceMap.get("priceValue");
  941. }
  942. if ((isSelfMention.equals("否") && receiveId.intValue() == 836) && (mapList != null && mapList.size() != 0)) {
  943. Map<String, Object> priceMap = mapList.get(0);
  944. priceId = (BigDecimal) priceMap.get("priceId");
  945. priceValue = (BigDecimal) priceMap.get("priceValue");
  946. }
  947. resultMap.put("priceId",priceId);
  948. resultMap.put("priceValue",priceValue);
  949. return resultMap;
  950. }
  951. }