AmsSaleOrderServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.*;
  3. import com.steerinfo.dil.model.*;
  4. import com.steerinfo.dil.service.IAmsSaleOrderService;
  5. import com.steerinfo.dil.util.DataChange;
  6. import com.steerinfo.dil.util.MyException;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import java.math.BigDecimal;
  11. import java.text.ParseException;
  12. import java.text.SimpleDateFormat;
  13. import java.util.Date;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.Map;
  17. /**
  18. * AmsSaleOrder服务实现:
  19. * @author generator
  20. * @version 1.0-SNAPSHORT 2021-10-26 07:26
  21. * 类描述
  22. * 修订历史:
  23. * 日期:2021-10-26
  24. * 作者:generator
  25. * 参考:
  26. * 描述:AmsSaleOrder服务实现
  27. * @see null
  28. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  29. */
  30. @Service(value = "amsSaleOrderService")
  31. public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
  32. @Autowired
  33. private AmsSaleOrderMapper amsSaleOrderMapper;
  34. @Autowired
  35. AmsSaleMaterialMapper amsSaleMaterialMapper;
  36. @Autowired
  37. RmsConsigneeMapper rmsConsigneeMapper;
  38. @Autowired
  39. AmsSaleTrucknoMaterialMapper amsSaleTrucknoMaterialMapper;
  40. @Autowired
  41. AmsSaleOrderCarrierMapper amsSaleOrderCarrierMapper;
  42. @Autowired
  43. OmstruckOrderMapper omstruckOrderMapper;
  44. @Autowired
  45. RmsMaterialMapper rmsMaterialMapper;
  46. /**
  47. * 查询销售订单
  48. * @param saleOrderId
  49. * @return
  50. */
  51. @Override
  52. @Transactional(rollbackFor = Exception.class)
  53. public Map<String, Object> getSaleOrder(BigDecimal saleOrderId) {
  54. List<Map<String,Object>> entries = amsSaleOrderMapper.getMaterialMessages(saleOrderId);
  55. Map<String,Object> head = amsSaleOrderMapper.getSaleOrderMessage(saleOrderId);
  56. // 单价
  57. BigDecimal taxPrice = (BigDecimal) head.get("unitPrice");
  58. // 税率
  59. String taxRate = (String) head.get("tax");
  60. // 收款客户
  61. String customer = (String) head.get("customer");
  62. for (Map<String, Object> entry : entries) {
  63. // 物流销售订单分录主键
  64. BigDecimal stEntryId = (BigDecimal) entry.get("stEntryId");
  65. // 是否磅重(0:磅重,1:理重)
  66. BigDecimal isPoundSale = (BigDecimal) entry.get("isPoundSale");
  67. // 长度
  68. BigDecimal forChangdu = (BigDecimal) entry.get("forChangdu");
  69. // 物资数量
  70. BigDecimal assistQty = (BigDecimal) entry.get("materialNumber");
  71. entry.put("assistQty",assistQty.toString());
  72. entry.remove("materialNumber");
  73. entry.put("taxPrice",taxPrice.toString());
  74. entry.put("taxRate",taxRate);
  75. entry.put("customer",customer);
  76. entry.replace("stEntryId",stEntryId.toString());
  77. entry.put("isTheory",isPoundSale.toString());
  78. entry.replace("forChangdu", forChangdu == null ? "" : forChangdu.toString());
  79. }
  80. Map<String,Object> input = new HashMap<>();
  81. head.remove("unitPrice");
  82. head.remove("tax");
  83. head.remove("customer");
  84. head.put("isFillCarNum","1");
  85. head.put("isCp","0");
  86. input.put("head",head);
  87. input.put("entries",entries);
  88. return input;
  89. }
  90. /**
  91. * 修改销售订单
  92. * @param mapVal
  93. * @return
  94. */
  95. @Transactional
  96. @Override
  97. public int operationSaleOrder(Map<String, Object> mapVal) {
  98. int result = 0;
  99. // 审批状态
  100. String orderStatus = (String) mapVal.get("orderStatus");
  101. // 得到销售订单号
  102. String saleNumber = (String) mapVal.get("saleNumber");
  103. Map<String,Object> map = new HashMap<>();
  104. map.put("saleNumber",saleNumber);
  105. // 判断是删除还是非删除
  106. String closeStatus = (String) mapVal.get("closeStatus");
  107. List<AmsSaleOrder> amsSaleOrders = amsSaleOrderMapper.selectByParameters(map);
  108. // 关闭分录
  109. Object closeEntryId = mapVal.get("closeEntryId");
  110. // 反关闭分录
  111. Object unCloseEntryId = mapVal.get("unCloseEntryId");
  112. // 关闭原因
  113. Object reason = mapVal.get("reason");
  114. // 是否整单
  115. Object wholeOrder = mapVal.get("wholeOrder");
  116. // 关闭副产品整个订单
  117. if (closeStatus.equals("-1") && "1".equals(wholeOrder)) {
  118. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  119. amsSaleOrder.setDeleted(new BigDecimal(2));
  120. if (reason != null) {
  121. amsSaleOrder.setInsertUpdateRemark(reason.toString());
  122. }
  123. result += amsSaleMaterialMapper.closeAllSaleMaterial(amsSaleOrder.getSaleOrderId());
  124. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  125. List<Map<String, Object>> warehouseList = amsSaleOrderMapper.getWareHouse(amsSaleOrder.getSaleOrderId());
  126. if (warehouseList != null && warehouseList.size() != 0) {
  127. Object warehouse = warehouseList.get(0).get("warehouse");
  128. if (warehouse != null && "副产品库".equals(warehouse)) {
  129. result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
  130. }
  131. }
  132. }
  133. // 关闭单个分录订单
  134. if (closeStatus.equals("-1") && wholeOrder.equals("0")) {
  135. if (closeEntryId != null) {
  136. Map<String, Object> easMap = new HashMap<>();
  137. easMap.put("easPrimaryId", closeEntryId);
  138. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  139. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  140. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  141. amsSaleMaterial.setDeleted(new BigDecimal(0));
  142. result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
  143. }
  144. }
  145. }
  146. // 反关闭整单
  147. if (closeStatus.equals("-2") && "1".equals(wholeOrder)) {
  148. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  149. amsSaleOrder.setDeleted(new BigDecimal(0));
  150. BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
  151. if (reason != null) {
  152. amsSaleOrder.setInsertUpdateRemark(reason.toString());
  153. }
  154. // 反关闭销售订单下的所有分录
  155. result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
  156. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  157. }
  158. // 反关闭单个分录订单
  159. if (closeStatus.equals("-2") && wholeOrder.equals("0")) {
  160. if (unCloseEntryId != null) {
  161. Map<String, Object> easMap = new HashMap<>();
  162. easMap.put("easPrimaryId", unCloseEntryId);
  163. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  164. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  165. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  166. result += amsSaleMaterialMapper.unCloseSaleMaterial(amsSaleMaterial.getSaleMaterialId());
  167. }
  168. }
  169. }
  170. if (closeStatus.equals("0")) {
  171. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  172. amsSaleOrder.setDeleted(new BigDecimal(1));
  173. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  174. }
  175. if (orderStatus.equals("4") && closeStatus.equals("1")){
  176. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  177. amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
  178. amsSaleOrder.setDeleted(new BigDecimal(0));
  179. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  180. }
  181. if (orderStatus.equals("2") && closeStatus.equals("1")){
  182. // 得到账户余额
  183. String saleAccountBalance = (String) mapVal.get("saleAccountBalance");
  184. // 得到当前订单金额
  185. String saleCurrentOrderAmount = (String) mapVal.get("saleCurrentOrderAmount");
  186. // 得到历史订单金额
  187. String saleHistoricalOrderAmount = (String) mapVal.get("saleHistoricalOrderAmount");
  188. // 得到订单备注
  189. String saleRemark = (String) mapVal.get("saleRemark");
  190. // 得到是否自提
  191. String isSelfMention = (String) mapVal.get("isSelfMention");
  192. // 得到收货单位
  193. String receiveUnit = (String) mapVal.get("receiveUnit");
  194. // 得到收货单位名称
  195. String receiveUnitName = (String) mapVal.get("receiveUnitName");
  196. // 得到订单日期
  197. String saleOrderBizDateStr = (String) mapVal.get("saleOrderBizDate");
  198. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  199. BigDecimal receiveId = amsSaleOrderMapper.getReceiveId(receiveUnit);
  200. // 如果不存则自己增收获单位
  201. if (receiveId == null) {
  202. RmsConsignee rmsConsignee = new RmsConsignee();
  203. BigDecimal consigneeId = rmsConsigneeMapper.getConsigneeId();
  204. rmsConsignee.setConsigneeId(consigneeId);
  205. rmsConsignee.setConsigneeCode(receiveUnit);
  206. rmsConsignee.setConsigneeCompanyName(receiveUnitName);
  207. rmsConsignee.setDeleted(new BigDecimal(0));
  208. rmsConsignee.setInsertTime(new Date());
  209. rmsConsignee.setInsertUsername("销售订单");
  210. rmsConsignee.setInsertUpdateRemark("通过销售订单自增");
  211. rmsConsigneeMapper.insertSelective(rmsConsignee);
  212. }
  213. // 得到发货单位
  214. String shipperUnit = (String) mapVal.get("shipperUnit");
  215. BigDecimal shipperId = amsSaleOrderMapper.getShipperId(shipperUnit);
  216. // 得到收款客户
  217. String saleOrderReceiveCustomer = (String) mapVal.get("receiveCustomer");
  218. // 得到物资信息
  219. List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapVal.get("mapList");
  220. // 如果不存在则自己新增(使用金蝶销售订单号)
  221. if (amsSaleOrders.size() == 0) {
  222. AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
  223. BigDecimal saleOrderId = amsSaleOrderMapper.getSaleOrderId();
  224. amsSaleOrder.setSaleOrderId(saleOrderId);
  225. amsSaleOrder.setSaleNumber(saleNumber);
  226. amsSaleOrder.setDeleted(new BigDecimal(0));
  227. amsSaleOrder.setUpdateTime(new Date());
  228. amsSaleOrder.setInsertUsername("admin");
  229. amsSaleOrder.setInsertUpdateRemark("金蝶采集销售订单");
  230. amsSaleOrder.setUpdateUsername("admin");
  231. amsSaleOrder.setReceiveId(receiveId);
  232. amsSaleOrder.setShipperId(shipperId);
  233. // 订单日期
  234. try {
  235. Date saleOrderBizDate = sdf.parse(saleOrderBizDateStr);
  236. amsSaleOrder.setInsertTime(saleOrderBizDate);
  237. } catch (ParseException e) {
  238. e.printStackTrace();
  239. }
  240. if (shipperUnit.equals("四川达兴能源有限责任公司") && receiveUnitName.equals("四川省达州钢铁集团有限责任公司")) {
  241. amsSaleOrder.setCloseStatus(new BigDecimal(0));
  242. }
  243. if (isSelfMention != null) {
  244. if (isSelfMention.equals("CARRY")) {
  245. amsSaleOrder.setSaleOrderIsselfMention("是");
  246. } else {
  247. amsSaleOrder.setSaleOrderIsselfMention("否");
  248. }
  249. }
  250. amsSaleOrder.setSaleOrderTax("13%");
  251. amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
  252. amsSaleOrder.setSaleRemark(saleRemark);
  253. amsSaleOrder.setSaleOrderReceiveCustomer(saleOrderReceiveCustomer);
  254. amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
  255. amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
  256. if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
  257. amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
  258. }
  259. amsSaleOrder.setSaleOrderStatus(new BigDecimal(2));
  260. // 遍历物资分录,新增销售订单与物资中间表
  261. for (Map<String, Object> materialMap : mapList) {
  262. AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
  263. BigDecimal saleMaterialId = amsSaleMaterialMapper.getSaleMaterialId();
  264. amsSaleMaterial.setSaleMaterialId(saleMaterialId);
  265. amsSaleMaterial.setSaleOrderId(saleOrderId);
  266. // 仓库编码
  267. Object warehouseNum = materialMap.get("warehouseNum");
  268. // 仓库名称
  269. Object warehouseName = materialMap.get("warehouseName");
  270. // 物资理重
  271. Object meterWeight = materialMap.get("meterWeight");
  272. // 得到物资编码
  273. String materialCode = (String) materialMap.get("materialCode");
  274. if (warehouseName != null) {
  275. amsSaleMaterial.setSaleWarehouse(warehouseName.toString());
  276. //得到物资名称
  277. String materialName = amsSaleOrderCarrierMapper.getMaterialName(materialCode);
  278. // 如果是副产品仓库,则给自提订单自动匹配承运商
  279. if (warehouseName.equals("副产品库") && "是".equals(amsSaleOrder.getSaleOrderIsselfMention()) || "钒渣".equals(materialName) && "是".equals(amsSaleOrder.getSaleOrderIsselfMention()) ) {
  280. AmsSaleOrderCarrier amsSaleOrderCarrier = amsSaleOrderCarrierMapper.getAmsSaleOrderCarrier(saleOrderId);
  281. BigDecimal carrierId = amsSaleOrderCarrierMapper.findCarrierByConsignee(receiveUnitName);
  282. if (amsSaleOrderCarrier == null) {
  283. amsSaleOrderCarrier = new AmsSaleOrderCarrier();
  284. amsSaleOrderCarrier.setSaleOrderCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
  285. amsSaleOrderCarrier.setCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
  286. amsSaleOrderCarrier.setSaleOrderId(saleOrderId);
  287. amsSaleOrderCarrier.setCarrierId(carrierId);
  288. amsSaleOrderCarrier.setDeleted(new BigDecimal(0));
  289. amsSaleOrderCarrier.setInsertTime(new Date());
  290. amsSaleOrderCarrier.setInsertUsername("自动匹配");
  291. amsSaleOrderCarrier.setInsertUpdateRemark("自提订单自动匹配");
  292. result += amsSaleOrderCarrierMapper.insertSelective(amsSaleOrderCarrier);
  293. }
  294. else {
  295. amsSaleOrderCarrier.setCarrierId(carrierId);
  296. result += amsSaleOrderCarrierMapper.updateByPrimaryKeySelective(amsSaleOrderCarrier);
  297. }
  298. }
  299. }
  300. BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
  301. Integer materialCount = amsSaleMaterialMapper.getMaterialCount(materialId);
  302. RmsMaterial rmsMaterial = new RmsMaterial();
  303. rmsMaterial.setMaterialId(materialId);
  304. if (materialCount == null) {
  305. materialCount = new Integer(0);
  306. }
  307. rmsMaterial.setMaterialCount(new BigDecimal(materialCount + 1));
  308. rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial);
  309. // 得到金蝶分录主键
  310. String easPrimaryId = (String) materialMap.get("easPrimaryId");
  311. // 得到物资重量
  312. String materialWeight = (String) materialMap.get("materialNumber");
  313. // 得到物资件数
  314. String materialNumber = (String) materialMap.get("assistQty");
  315. // 得到计量单位
  316. String materialUnit = (String) materialMap.get("materialUnit");
  317. amsSaleMaterial.setEasPrimaryId(easPrimaryId);
  318. amsSaleMaterial.setMaterialId(materialId);
  319. amsSaleMaterial.setInsertTime(new Date());
  320. amsSaleMaterial.setInsertUsername("金蝶");
  321. amsSaleMaterial.setMeterWeight(DataChange.dataToBigDecimal(meterWeight));
  322. amsSaleMaterial.setInsertUpdateRemark("采集金蝶销售订单");
  323. if (materialWeight != null && !"".equals(materialWeight)) {
  324. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  325. }
  326. if (materialNumber != null && !"".equals(materialNumber)) {
  327. amsSaleMaterial.setMaterialNumber(new BigDecimal(materialNumber));
  328. }
  329. result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
  330. }
  331. result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
  332. } else {
  333. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  334. amsSaleOrder.setSaleNumber(saleNumber);
  335. amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
  336. amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
  337. amsSaleOrder.setSaleRemark(saleRemark);
  338. amsSaleOrder.setDeleted(new BigDecimal(0));
  339. amsSaleOrder.setUpdateTime(new Date());
  340. amsSaleOrder.setShipperId(shipperId);
  341. amsSaleOrder.setReceiveId(receiveId);
  342. // 如果是财务审批后,将不可作业的运输订单改为已接收状态
  343. if (orderStatus.equals("4")) {
  344. result += amsSaleOrderMapper.updateTruckOrderStatus(amsSaleOrder.getSaleOrderId());
  345. }
  346. if (isSelfMention != null) {
  347. if (isSelfMention.equals("CARRY")) {
  348. amsSaleOrder.setSaleOrderIsselfMention("是");
  349. } else {
  350. amsSaleOrder.setSaleOrderIsselfMention("否");
  351. }
  352. }
  353. if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
  354. amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
  355. }
  356. amsSaleOrder.setSaleOrderStatus(new BigDecimal(orderStatus));
  357. for (Map<String, Object> materialMap : mapList) {
  358. // 得到中间表主键id
  359. String saleMaterialId = (String) materialMap.get("saleMaterialId");
  360. // 得到金蝶分录id
  361. String easPrimaryId = (String) materialMap.get("easPrimaryId");
  362. Map<String,Object> resultMap = new HashMap<>();
  363. resultMap.put("easPrimaryId",easPrimaryId);
  364. AmsSaleMaterial amsSaleMaterial;
  365. // 得到物资重量
  366. String materialWeight = (String) materialMap.get("materialNumber");
  367. // 得到物资件数
  368. String materialNumber = (String) materialMap.get("assistQty");
  369. // 如果有物流系统销售订单物资表主键:认定是走物流新增的销售订单(通过物流系统主键进行查询)
  370. if (saleMaterialId != null && (!saleMaterialId.equals("null")) && !saleMaterialId.equals("")) {
  371. amsSaleMaterial = amsSaleMaterialMapper.selectByPrimaryKey(new BigDecimal(saleMaterialId));
  372. Object meterWeight = materialMap.get("meterWeight");
  373. if (meterWeight != null && !"".equals(meterWeight.toString())) {
  374. amsSaleMaterial.setMeterWeight(DataChange.dataToBigDecimal(meterWeight));
  375. }
  376. else {
  377. Double weightDouble = new Double(materialNumber);
  378. BigDecimal liWeight = new BigDecimal( weightDouble/amsSaleMaterial.getMaterialNumber().doubleValue() * 1000);
  379. amsSaleMaterial.setMeterWeight(liWeight);
  380. }
  381. // 同步修改车序号物资表
  382. resultMap.put("materialId",saleMaterialId);
  383. List<AmsSaleTrucknoMaterial> amsSaleTrucknoMaterials = amsSaleTrucknoMaterialMapper.selectByParameters(resultMap);
  384. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = amsSaleTrucknoMaterials.get(0);
  385. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(new BigDecimal(materialNumber));
  386. amsSaleTrucknoMaterial.setInsertUpdateRemark("在金蝶做修改");
  387. amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
  388. }
  389. // 否则认定是走金蝶新增的销售订单(通过金蝶分录id进行查询)
  390. else {
  391. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(resultMap);
  392. amsSaleMaterial = amsSaleMaterials.get(0);
  393. amsSaleMaterial.setInsertUsername("金蝶");
  394. amsSaleMaterial.setInsertUpdateRemark("采集金蝶销售订单");
  395. }
  396. // 得到物资编码
  397. String materialCode = (String) materialMap.get("materialCode");
  398. // 得到计量单位
  399. String materialUnit = (String) materialMap.get("materialUnit");
  400. if (materialWeight != null && !"".equals(materialWeight)) {
  401. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  402. }
  403. if (materialNumber != null && !
  404. "".equals(materialNumber)) {
  405. amsSaleMaterial.setMaterialNumber(new BigDecimal(materialNumber));
  406. }
  407. BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
  408. amsSaleMaterial.setEasPrimaryId(easPrimaryId);
  409. amsSaleMaterial.setSaleOrderId(amsSaleOrder.getSaleOrderId());
  410. amsSaleMaterial.setMaterialId(materialId);
  411. amsSaleMaterial.setInsertTime(new Date());
  412. result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
  413. }
  414. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  415. }
  416. }
  417. return result;
  418. }
  419. /**
  420. * 通过运单id得到车牌号
  421. * @param saleOrderMaterialId
  422. * @return
  423. */
  424. @Override
  425. public Map<String,Object> findCarNumberByOrderId(BigDecimal saleOrderMaterialId) {
  426. Map<String, Object> head = omstruckOrderMapper.findCarNumberByOrderId(saleOrderMaterialId);
  427. //根据车序号表查询销售订单表是否自提
  428. String isWithdrawal = amsSaleOrderMapper.getWithdrawal(saleOrderMaterialId);
  429. if("是".equals(isWithdrawal)){
  430. head.replace("forwarder","自提");
  431. }
  432. List<Map<String,Object>> entries = omstruckOrderMapper.findEntriesByOrderId(saleOrderMaterialId);
  433. Map<String,Object> input = new HashMap<>();
  434. input.put("entries",entries);
  435. input.put("head",head);
  436. return input;
  437. }
  438. }