AmsSaleOrderServiceImpl.java 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.druid.support.json.JSONUtils;
  3. import com.alibaba.fastjson.JSON;
  4. import com.google.gson.JsonObject;
  5. import com.steerinfo.dil.mapper.*;
  6. import com.steerinfo.dil.model.*;
  7. import com.steerinfo.dil.service.IAmsSaleOrderService;
  8. import com.steerinfo.dil.util.DataChange;
  9. import com.steerinfo.dil.util.MyException;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import springfox.documentation.spring.web.json.Json;
  14. import javax.xml.crypto.Data;
  15. import java.math.BigDecimal;
  16. import java.text.ParseException;
  17. import java.text.SimpleDateFormat;
  18. import java.util.*;
  19. import static java.util.stream.Collectors.toList;
  20. /**
  21. * AmsSaleOrder服务实现:
  22. * @author generator
  23. * @version 1.0-SNAPSHORT 2021-10-26 07:26
  24. * 类描述
  25. * 修订历史:
  26. * 日期:2021-10-26
  27. * 作者:generator
  28. * 参考:
  29. * 描述:AmsSaleOrder服务实现
  30. * @see null
  31. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  32. */
  33. @Service(value = "amsSaleOrderService")
  34. public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
  35. @Autowired
  36. private AmsSaleOrderMapper amsSaleOrderMapper;
  37. @Autowired
  38. AmsSaleMaterialMapper amsSaleMaterialMapper;
  39. @Autowired
  40. RmsConsigneeMapper rmsConsigneeMapper;
  41. @Autowired
  42. AmsSaleTrucknoMaterialMapper amsSaleTrucknoMaterialMapper;
  43. @Autowired
  44. AmsSaleOrderCarrierMapper amsSaleOrderCarrierMapper;
  45. @Autowired
  46. OmstruckOrderMapper omstruckOrderMapper;
  47. @Autowired
  48. RmsMaterialMapper rmsMaterialMapper;
  49. @Autowired
  50. private TmstrainPleaseApproveResultMapper tmstrainPleaseApproveResultMapper;
  51. @Autowired
  52. RmstrainArrivalSendMapper rmstrainArrivalSendMapper;
  53. @Autowired
  54. OmstrainOrderMapper omstrainOrderMapper;
  55. /**
  56. * 查询销售订单
  57. * @param saleOrderId
  58. * @return
  59. */
  60. @Override
  61. @Transactional(rollbackFor = Exception.class)
  62. public Map<String, Object> getSaleOrder(BigDecimal saleOrderId) {
  63. List<Map<String,Object>> entries = amsSaleOrderMapper.getMaterialMessages(saleOrderId);
  64. Map<String,Object> head = amsSaleOrderMapper.getSaleOrderMessage(saleOrderId);
  65. // 单价
  66. BigDecimal taxPrice = (BigDecimal) head.get("unitPrice");
  67. // 税率
  68. String taxRate = (String) head.get("tax");
  69. // 收款客户
  70. String customer = (String) head.get("customer");
  71. for (Map<String, Object> entry : entries) {
  72. // 物流销售订单分录主键
  73. BigDecimal stEntryId = (BigDecimal) entry.get("stEntryId");
  74. // 是否磅重(0:磅重,1:理重)
  75. BigDecimal isPoundSale = (BigDecimal) entry.get("isPoundSale");
  76. // 长度
  77. BigDecimal forChangdu = (BigDecimal) entry.get("forChangdu");
  78. // 物资数量
  79. BigDecimal assistQty = (BigDecimal) entry.get("materialNumber");
  80. entry.put("assistQty",assistQty.toString());
  81. entry.remove("materialNumber");
  82. entry.put("taxPrice",taxPrice.toString());
  83. entry.put("taxRate",taxRate);
  84. entry.put("customer",customer);
  85. entry.replace("stEntryId",stEntryId.toString());
  86. entry.put("isTheory",isPoundSale.toString());
  87. entry.replace("forChangdu", forChangdu == null ? "" : forChangdu.toString());
  88. }
  89. Map<String,Object> input = new HashMap<>();
  90. head.remove("unitPrice");
  91. head.remove("tax");
  92. head.remove("customer");
  93. head.put("isFillCarNum","1");
  94. head.put("isCp","0");
  95. input.put("head",head);
  96. input.put("entries",entries);
  97. return input;
  98. }
  99. /**
  100. * 修改销售订单
  101. * @param mapVal
  102. * @return
  103. */
  104. @Transactional
  105. @Override
  106. public int operationSaleOrder(Map<String, Object> mapVal) {
  107. int result = 0;
  108. // 审批状态
  109. String orderStatus = (String) mapVal.get("orderStatus");
  110. // 得到销售订单号
  111. String saleNumber = (String) mapVal.get("saleNumber");
  112. Map<String,Object> map = new HashMap<>();
  113. map.put("saleNumber",saleNumber);
  114. // 判断是删除还是非删除
  115. String closeStatus = (String) mapVal.get("closeStatus");
  116. List<AmsSaleOrder> amsSaleOrders = amsSaleOrderMapper.selectByParameters(map);
  117. // 关闭分录
  118. Object closeEntryId = mapVal.get("closeEntryId");
  119. // 反关闭分录
  120. Object unCloseEntryId = mapVal.get("unCloseEntryId");
  121. // 关闭原因
  122. Object reason = mapVal.get("reason");
  123. // 是否整单
  124. Object wholeOrder = mapVal.get("wholeOrder");
  125. // 关闭副产品整个订单
  126. if (closeStatus.equals("-1") && "1".equals(wholeOrder)) {
  127. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  128. amsSaleOrder.setDeleted(new BigDecimal(2));
  129. if (reason != null) {
  130. amsSaleOrder.setInsertUpdateRemark(reason.toString());
  131. }
  132. result += amsSaleMaterialMapper.closeAllSaleMaterial(amsSaleOrder.getSaleOrderId());
  133. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  134. List<Map<String, Object>> warehouseList = amsSaleOrderMapper.getWareHouse(amsSaleOrder.getSaleOrderId());
  135. if (warehouseList != null && warehouseList.size() != 0) {
  136. Object warehouse = warehouseList.get(0).get("warehouse");
  137. if (warehouse != null && "副产品库".equals(warehouse)) {
  138. result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
  139. }
  140. }
  141. }
  142. // 关闭单个分录订单
  143. if (closeStatus.equals("-1") && wholeOrder.equals("0")) {
  144. if (closeEntryId != null) {
  145. Map<String, Object> easMap = new HashMap<>();
  146. easMap.put("easPrimaryId", closeEntryId);
  147. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  148. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  149. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  150. amsSaleMaterial.setDeleted(new BigDecimal(0));
  151. result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
  152. }
  153. }
  154. }
  155. // 反关闭整单
  156. if (closeStatus.equals("-2") && "1".equals(wholeOrder)) {
  157. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  158. amsSaleOrder.setDeleted(new BigDecimal(0));
  159. BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
  160. if (reason != null) {
  161. amsSaleOrder.setInsertUpdateRemark(reason.toString());
  162. }
  163. // 反关闭销售订单下的所有分录
  164. result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
  165. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  166. }
  167. // 反关闭单个分录订单
  168. if (closeStatus.equals("-2") && wholeOrder.equals("0")) {
  169. if (unCloseEntryId != null) {
  170. Map<String, Object> easMap = new HashMap<>();
  171. easMap.put("easPrimaryId", unCloseEntryId);
  172. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  173. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  174. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  175. result += amsSaleMaterialMapper.unCloseSaleMaterial(amsSaleMaterial.getSaleMaterialId());
  176. }
  177. }
  178. }
  179. if (closeStatus.equals("0")) {
  180. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  181. amsSaleOrder.setDeleted(new BigDecimal(1));
  182. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  183. }
  184. if (orderStatus.equals("4") && closeStatus.equals("1")){
  185. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  186. amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
  187. amsSaleOrder.setDeleted(new BigDecimal(0));
  188. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  189. }
  190. if (orderStatus.equals("2") && closeStatus.equals("1")){
  191. // 得到账户余额
  192. String saleAccountBalance = (String) mapVal.get("saleAccountBalance");
  193. // 得到当前订单金额
  194. String saleCurrentOrderAmount = (String) mapVal.get("saleCurrentOrderAmount");
  195. // 得到历史订单金额
  196. String saleHistoricalOrderAmount = (String) mapVal.get("saleHistoricalOrderAmount");
  197. // 得到订单备注
  198. String saleRemark = (String) mapVal.get("saleRemark");
  199. // 得到是否自提
  200. String isSelfMention = (String) mapVal.get("isSelfMention");
  201. // 得到收货单位
  202. String receiveUnit = (String) mapVal.get("receiveUnit");
  203. // 得到收货单位名称
  204. String receiveUnitName = (String) mapVal.get("receiveUnitName");
  205. // 得到订单日期
  206. String saleOrderBizDateStr = (String) mapVal.get("saleOrderBizDate");
  207. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  208. BigDecimal receiveId = amsSaleOrderMapper.getReceiveId(receiveUnit);
  209. // 如果不存则自己增收获单位
  210. if (receiveId == null) {
  211. RmsConsignee rmsConsignee = new RmsConsignee();
  212. BigDecimal consigneeId = rmsConsigneeMapper.getConsigneeId();
  213. rmsConsignee.setConsigneeId(consigneeId);
  214. rmsConsignee.setConsigneeCode(receiveUnit);
  215. rmsConsignee.setConsigneeCompanyName(receiveUnitName);
  216. rmsConsignee.setDeleted(new BigDecimal(0));
  217. rmsConsignee.setInsertTime(new Date());
  218. rmsConsignee.setInsertUsername("销售订单");
  219. rmsConsignee.setInsertUpdateRemark("通过销售订单自增");
  220. rmsConsigneeMapper.insertSelective(rmsConsignee);
  221. }
  222. // 得到发货单位
  223. String shipperUnit = (String) mapVal.get("shipperUnit");
  224. BigDecimal shipperId = amsSaleOrderMapper.getShipperId(shipperUnit);
  225. // 得到收款客户
  226. String saleOrderReceiveCustomer = (String) mapVal.get("receiveCustomer");
  227. // 得到物资信息
  228. List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapVal.get("mapList");
  229. // 如果不存在则自己新增(使用金蝶销售订单号)
  230. if (amsSaleOrders.size() == 0) {
  231. AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
  232. BigDecimal saleOrderId = amsSaleOrderMapper.getSaleOrderId();
  233. amsSaleOrder.setSaleOrderId(saleOrderId);
  234. amsSaleOrder.setSaleNumber(saleNumber);
  235. amsSaleOrder.setDeleted(new BigDecimal(0));
  236. amsSaleOrder.setUpdateTime(new Date());
  237. amsSaleOrder.setInsertUsername("admin");
  238. amsSaleOrder.setInsertUpdateRemark("金蝶采集销售订单");
  239. amsSaleOrder.setUpdateUsername("admin");
  240. amsSaleOrder.setReceiveId(receiveId);
  241. amsSaleOrder.setShipperId(shipperId);
  242. // 订单日期
  243. try {
  244. Date saleOrderBizDate = sdf.parse(saleOrderBizDateStr);
  245. amsSaleOrder.setInsertTime(saleOrderBizDate);
  246. } catch (ParseException e) {
  247. e.printStackTrace();
  248. }
  249. if (shipperUnit.equals("四川达兴能源有限责任公司") && receiveUnitName.equals("四川省达州钢铁集团有限责任公司")) {
  250. amsSaleOrder.setCloseStatus(new BigDecimal(0));
  251. }
  252. if (isSelfMention != null) {
  253. if (isSelfMention.equals("CARRY")) {
  254. amsSaleOrder.setSaleOrderIsselfMention("是");
  255. } else {
  256. amsSaleOrder.setSaleOrderIsselfMention("否");
  257. }
  258. }
  259. amsSaleOrder.setSaleOrderTax("13%");
  260. amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
  261. amsSaleOrder.setSaleRemark(saleRemark);
  262. amsSaleOrder.setSaleOrderReceiveCustomer(saleOrderReceiveCustomer);
  263. amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
  264. amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
  265. if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
  266. amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
  267. }
  268. amsSaleOrder.setSaleOrderStatus(new BigDecimal(2));
  269. // 遍历物资分录,新增销售订单与物资中间表
  270. for (Map<String, Object> materialMap : mapList) {
  271. AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
  272. BigDecimal saleMaterialId = amsSaleMaterialMapper.getSaleMaterialId();
  273. amsSaleMaterial.setSaleMaterialId(saleMaterialId);
  274. amsSaleMaterial.setSaleOrderId(saleOrderId);
  275. // 仓库编码
  276. Object warehouseNum = materialMap.get("warehouseNum");
  277. // 仓库名称
  278. Object warehouseName = materialMap.get("warehouseName");
  279. // 物资理重
  280. Object meterWeight = materialMap.get("meterWeight");
  281. // 得到物资编码
  282. String materialCode = (String) materialMap.get("materialCode");
  283. if (warehouseName != null) {
  284. amsSaleMaterial.setSaleWarehouse(warehouseName.toString());
  285. //得到物资名称
  286. String materialName = amsSaleOrderCarrierMapper.getMaterialName(materialCode);
  287. // 如果是副产品仓库,则给自提订单自动匹配承运商
  288. if (warehouseName.equals("副产品库") && "是".equals(amsSaleOrder.getSaleOrderIsselfMention()) || "钒渣".equals(materialName) && "是".equals(amsSaleOrder.getSaleOrderIsselfMention()) ) {
  289. AmsSaleOrderCarrier amsSaleOrderCarrier = amsSaleOrderCarrierMapper.getAmsSaleOrderCarrier(saleOrderId);
  290. BigDecimal carrierId = amsSaleOrderCarrierMapper.findCarrierByConsignee(receiveUnitName);
  291. if (amsSaleOrderCarrier == null) {
  292. amsSaleOrderCarrier = new AmsSaleOrderCarrier();
  293. amsSaleOrderCarrier.setSaleOrderCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
  294. amsSaleOrderCarrier.setCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
  295. amsSaleOrderCarrier.setSaleOrderId(saleOrderId);
  296. amsSaleOrderCarrier.setCarrierId(carrierId);
  297. amsSaleOrderCarrier.setDeleted(new BigDecimal(0));
  298. amsSaleOrderCarrier.setInsertTime(new Date());
  299. amsSaleOrderCarrier.setInsertUsername("自动匹配");
  300. amsSaleOrderCarrier.setInsertUpdateRemark("自提订单自动匹配");
  301. result += amsSaleOrderCarrierMapper.insertSelective(amsSaleOrderCarrier);
  302. }
  303. else {
  304. amsSaleOrderCarrier.setCarrierId(carrierId);
  305. result += amsSaleOrderCarrierMapper.updateByPrimaryKeySelective(amsSaleOrderCarrier);
  306. }
  307. }
  308. }
  309. BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
  310. Integer materialCount = amsSaleMaterialMapper.getMaterialCount(materialId);
  311. RmsMaterial rmsMaterial = new RmsMaterial();
  312. rmsMaterial.setMaterialId(materialId);
  313. if (materialCount == null) {
  314. materialCount = new Integer(0);
  315. }
  316. rmsMaterial.setMaterialCount(new BigDecimal(materialCount + 1));
  317. rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial);
  318. // 得到金蝶分录主键
  319. String easPrimaryId = (String) materialMap.get("easPrimaryId");
  320. // 得到物资重量
  321. String materialWeight = (String) materialMap.get("materialNumber");
  322. // 得到物资件数
  323. String materialNumber = (String) materialMap.get("assistQty");
  324. // 得到计量单位
  325. String materialUnit = (String) materialMap.get("materialUnit");
  326. amsSaleMaterial.setEasPrimaryId(easPrimaryId);
  327. amsSaleMaterial.setMaterialId(materialId);
  328. amsSaleMaterial.setInsertTime(new Date());
  329. amsSaleMaterial.setInsertUsername("金蝶");
  330. amsSaleMaterial.setMeterWeight(DataChange.dataToBigDecimal(meterWeight));
  331. amsSaleMaterial.setInsertUpdateRemark("采集金蝶销售订单");
  332. if (materialWeight != null && !"".equals(materialWeight)) {
  333. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  334. }
  335. if (materialNumber != null && !"".equals(materialNumber)) {
  336. amsSaleMaterial.setMaterialNumber(new BigDecimal(materialNumber));
  337. }
  338. result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
  339. }
  340. result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
  341. } else {
  342. AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
  343. amsSaleOrder.setSaleNumber(saleNumber);
  344. amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
  345. amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
  346. amsSaleOrder.setSaleRemark(saleRemark);
  347. amsSaleOrder.setDeleted(new BigDecimal(0));
  348. amsSaleOrder.setUpdateTime(new Date());
  349. amsSaleOrder.setShipperId(shipperId);
  350. amsSaleOrder.setReceiveId(receiveId);
  351. // 如果是财务审批后,将不可作业的运输订单改为已接收状态
  352. if (orderStatus.equals("4")) {
  353. result += amsSaleOrderMapper.updateTruckOrderStatus(amsSaleOrder.getSaleOrderId());
  354. }
  355. if (isSelfMention != null) {
  356. if (isSelfMention.equals("CARRY")) {
  357. amsSaleOrder.setSaleOrderIsselfMention("是");
  358. } else {
  359. amsSaleOrder.setSaleOrderIsselfMention("否");
  360. }
  361. }
  362. if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
  363. amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
  364. }
  365. amsSaleOrder.setSaleOrderStatus(new BigDecimal(orderStatus));
  366. for (Map<String, Object> materialMap : mapList) {
  367. // 得到中间表主键id
  368. String saleMaterialId = (String) materialMap.get("saleMaterialId");
  369. // 得到金蝶分录id
  370. String easPrimaryId = (String) materialMap.get("easPrimaryId");
  371. Map<String,Object> resultMap = new HashMap<>();
  372. resultMap.put("easPrimaryId",easPrimaryId);
  373. AmsSaleMaterial amsSaleMaterial;
  374. // 得到物资重量
  375. String materialWeight = (String) materialMap.get("materialNumber");
  376. // 得到物资件数
  377. String materialNumber = (String) materialMap.get("assistQty");
  378. // 如果有物流系统销售订单物资表主键:认定是走物流新增的销售订单(通过物流系统主键进行查询)
  379. if (saleMaterialId != null && (!saleMaterialId.equals("null")) && !saleMaterialId.equals("")) {
  380. amsSaleMaterial = amsSaleMaterialMapper.selectByPrimaryKey(new BigDecimal(saleMaterialId));
  381. Object meterWeight = materialMap.get("meterWeight");
  382. Object forChangdu = materialMap.get("forChangdu");
  383. if(forChangdu != null && !"".equals(forChangdu.toString())){
  384. amsSaleMaterial.setSteelMeter(DataChange.dataToBigDecimal(forChangdu));
  385. }
  386. if (meterWeight != null && !"".equals(meterWeight.toString())) {
  387. amsSaleMaterial.setMeterWeight(DataChange.dataToBigDecimal(meterWeight));
  388. }
  389. else {
  390. Double weightDouble = new Double(materialNumber);
  391. BigDecimal liWeight = new BigDecimal( weightDouble/amsSaleMaterial.getMaterialNumber().doubleValue() * 1000);
  392. amsSaleMaterial.setMeterWeight(liWeight);
  393. }
  394. // 同步修改车序号物资表
  395. resultMap.put("materialId",saleMaterialId);
  396. List<AmsSaleTrucknoMaterial> amsSaleTrucknoMaterials = amsSaleTrucknoMaterialMapper.selectByParameters(resultMap);
  397. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = amsSaleTrucknoMaterials.get(0);
  398. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(new BigDecimal(materialNumber));
  399. amsSaleTrucknoMaterial.setInsertUpdateRemark("在金蝶做修改");
  400. amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
  401. }
  402. // 否则认定是走金蝶新增的销售订单(通过金蝶分录id进行查询)
  403. else {
  404. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(resultMap);
  405. amsSaleMaterial = amsSaleMaterials.get(0);
  406. amsSaleMaterial.setInsertUsername("金蝶");
  407. amsSaleMaterial.setInsertUpdateRemark("采集金蝶销售订单");
  408. }
  409. // 得到物资编码
  410. String materialCode = (String) materialMap.get("materialCode");
  411. // 得到计量单位
  412. String materialUnit = (String) materialMap.get("materialUnit");
  413. if (materialWeight != null && !"".equals(materialWeight)) {
  414. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  415. }
  416. if (materialNumber != null && !
  417. "".equals(materialNumber)) {
  418. amsSaleMaterial.setMaterialNumber(new BigDecimal(materialNumber));
  419. }
  420. BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
  421. amsSaleMaterial.setEasPrimaryId(easPrimaryId);
  422. amsSaleMaterial.setSaleOrderId(amsSaleOrder.getSaleOrderId());
  423. amsSaleMaterial.setMaterialId(materialId);
  424. amsSaleMaterial.setInsertTime(new Date());
  425. result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
  426. }
  427. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  428. }
  429. }
  430. return result;
  431. }
  432. /**
  433. * 通过运单id得到车牌号
  434. * @param saleOrderMaterialId
  435. * @return
  436. */
  437. @Override
  438. public Map<String,Object> findCarNumberByOrderId(BigDecimal saleOrderMaterialId) {
  439. Map<String, Object> head = omstruckOrderMapper.findCarNumberByOrderId(saleOrderMaterialId);
  440. //根据车序号表查询销售订单表是否自提
  441. String isWithdrawal = amsSaleOrderMapper.getWithdrawal(saleOrderMaterialId);
  442. if("是".equals(isWithdrawal)){
  443. head.replace("forwarder","自提");
  444. }
  445. List<Map<String,Object>> entries = omstruckOrderMapper.findEntriesByOrderId(saleOrderMaterialId);
  446. //遍历数组 en
  447. Map<String,Object> input = new HashMap<>();
  448. input.put("entries",entries);
  449. input.put("head",head);
  450. return input;
  451. }
  452. @Override
  453. public Map<String, Object> findCarNumberByOrderList(List<Map<String, Object>> mapList) {
  454. List<Map<String,Object>> entries = new ArrayList<>();
  455. //遍历车序号数组,获取车序号ID
  456. for(Map<String,Object> map : mapList){
  457. BigDecimal saleOrderMaterialId = new BigDecimal((Integer) map.get("saleOrderMaterialId")) ;
  458. //根据车序号ID去查询车牌号、承运商以及分录ID
  459. List<Map<String,Object>> head = omstruckOrderMapper.finCarAndCarrierAndEntries(saleOrderMaterialId);
  460. entries.addAll(head);
  461. }
  462. Map<String,Object> input = new HashMap<>();
  463. input.put("entries",entries);
  464. return input;
  465. }
  466. //添加内转钢材到异地库
  467. //审核以后回传
  468. @Override
  469. @Transactional(rollbackFor = {Exception.class})
  470. public int addInwardSteelOrder(Map<String,Object> map) throws Exception {
  471. int result=0;
  472. //输出json数据。
  473. String json= JSON.toJSONString(map);
  474. System.out.println(json);
  475. //获取订单状态
  476. String orderStatus = (String) map.get("orderStatus");
  477. String easPrimaryId=null;
  478. //设置是否反审核状态
  479. String closeStatus =(String) map.get("closeStatus");
  480. //是否整单
  481. Object wholeOrder = map.get("wholeOrder");
  482. // 得到单据编号
  483. String saleNumber = (String) map.get("saleNumber");
  484. //获取调出组织部门
  485. String transferOutInventoryOrg =(String) map.get("TransferOutInventorOrg");
  486. //获取调入组织部门
  487. String transferInInventoryOrg =(String) map.get("TransferInInventorOrg");
  488. //获取调出部门
  489. String transferOutDep =(String) map.get("TransferOutDep");
  490. //获取调入部门
  491. String transferInDep =(String) map.get("TransferInDep");
  492. // 得到订单日期
  493. String saleOrderBizDateStr = (String) map.get("saleOrderBizDate");
  494. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  495. //获取销售摘要
  496. String saleRemark = (String) map.get("saleRemark");
  497. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  498. //设置是否为车皮
  499. String whetherTheCar =(String) map.get("whetherTheCar");
  500. //业务日期
  501. String businessDate =(String) map.get("businessDate");
  502. //获取业务类型
  503. String businessType =(String) map.get("businessType");
  504. //判断销售订单是否存在
  505. BigDecimal saleOrderNumber = amsSaleOrderMapper.selectAmsSaleOrderNum(saleNumber);
  506. if (saleOrderNumber==null&&transferInDep==null){
  507. return 1;
  508. }
  509. //如果销售订单不存在
  510. if (saleOrderNumber==null){
  511. AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
  512. BigDecimal saleOrderId = amsSaleOrderMapper.getSaleOrderId();
  513. //新增销售订单主键
  514. amsSaleOrder.setSaleOrderId(saleOrderId);
  515. //新增单据编码
  516. amsSaleOrder.setSaleNumber(saleNumber);
  517. //根据发货单位查找id
  518. String shipperName="四川省达州钢铁集团有限责任公司";
  519. BigDecimal shipperId = amsSaleOrderMapper.getShipperId(shipperName);
  520. amsSaleOrder.setShipperId(DataChange.dataToBigDecimal(shipperId));
  521. // 订单日期
  522. try {
  523. Date saleOrderBizDate = sdf.parse(saleOrderBizDateStr);
  524. amsSaleOrder.setInsertTime(saleOrderBizDate);
  525. } catch (ParseException e) {
  526. e.printStackTrace();
  527. }
  528. //业务日期
  529. try {
  530. Date BusinessDate = sdf.parse(businessDate);
  531. amsSaleOrder.setBusinessDate(BusinessDate);
  532. } catch (ParseException e) {
  533. e.printStackTrace();
  534. }
  535. amsSaleOrder.setWhetherTheCar(whetherTheCar);
  536. amsSaleOrder.setSaleRemark(saleRemark);
  537. amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
  538. //销售订单类型:内转钢材到异地库
  539. amsSaleOrder.setSaleType(new BigDecimal(4));
  540. amsSaleOrder.setTransferInDep(transferInDep);
  541. amsSaleOrder.setTransferOutDep(transferOutDep);
  542. amsSaleOrder.setDeleted(new BigDecimal(0));
  543. amsSaleOrder.setCloseStatus(new BigDecimal(0));
  544. amsSaleOrder.setTransferInInventoryOrg(transferInInventoryOrg);
  545. amsSaleOrder.setTransferOutInventoryOrg(transferOutInventoryOrg);
  546. amsSaleOrder.setBusinessType(businessType);
  547. amsSaleOrder.setInsertUsername("金蝶");
  548. amsSaleOrder.setInsertUpdateRemark("采集金蝶库存调拨单");
  549. result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
  550. //得到物资信息
  551. List<Map<String, Object>> mapList = (List<Map<String, Object>>) map.get("mapList");
  552. for (Map<String,Object> materialMap:mapList){
  553. AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
  554. BigDecimal saleMaterialId = amsSaleMaterialMapper.getSaleMaterialId();
  555. amsSaleMaterial.setSaleMaterialId(saleMaterialId);
  556. amsSaleMaterial.setSaleOrderId(saleOrderId);
  557. String materialWeight =(String) materialMap.get("materialNumber");
  558. // 辅助数量
  559. Object auxiliaryQuantity = materialMap.get("AuxiliaryQuantity");
  560. // 物资重量
  561. Object meterWeight = materialMap.get("meterWeight");
  562. Object steelMeter = materialMap.get("steelMeter");
  563. if (steelMeter!=null) {
  564. amsSaleMaterial.setSteelMeter(DataChange.dataToBigDecimal(steelMeter));
  565. }
  566. if (materialWeight != null && !"".equals(materialWeight)) {
  567. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  568. }
  569. //设置调出仓库
  570. Object transferOutOfWarehouse = materialMap.get("TransferOutOfWarehouse");
  571. amsSaleMaterial.setTransferOutOfWarehouse((String) transferOutOfWarehouse);
  572. //设置调入仓库
  573. Object transferInOfWarehouse = materialMap.get("TransferInOfWarehouse");
  574. amsSaleMaterial.setTransferInOfWarehouse((String) transferInOfWarehouse);
  575. //设置调入计划日期
  576. String transferInPlanDate =(String) materialMap.get("TransferInPlanDate");
  577. try {
  578. Date transferInPlanDate1 = sdf.parse(transferInPlanDate);
  579. amsSaleMaterial.setTransferInPlanDate(transferInPlanDate1);
  580. } catch (ParseException e) {
  581. e.printStackTrace();
  582. }
  583. // 得到金蝶分录主键
  584. easPrimaryId = (String) materialMap.get("easPrimaryId");
  585. //设置调出计划日期
  586. String transferOutPlanDate =(String) materialMap.get("TransferOutPlanDate");
  587. try {
  588. Date transferOutPlanDate2 = sdf.parse(transferOutPlanDate);
  589. amsSaleMaterial.setTransferOutPlanDate(transferOutPlanDate2);
  590. } catch (ParseException e) {
  591. e.printStackTrace();
  592. }
  593. //是否磅重交货
  594. Object isPoundSale = materialMap.get("isPoundSale");
  595. if (isPoundSale!=null){
  596. amsSaleMaterial.setIsPoundSale(DataChange.dataToBigDecimal(isPoundSale));
  597. }
  598. //设置是否控制数量
  599. Object controlQuailty = materialMap.get("ControlQuantity");
  600. amsSaleMaterial.setControlQuantity((String) controlQuailty);
  601. //设置库存类型
  602. Object inventoryType = materialMap.get("InventoryType");
  603. amsSaleMaterial.setInventoryType((String) inventoryType);
  604. //设置库存状态
  605. Object inventoryStatus = materialMap.get("InventoryStatus");
  606. amsSaleMaterial.setInventoryStatus((String) inventoryStatus);
  607. // 得到物资编码
  608. String materialCode = (String) materialMap.get("materialCode");
  609. BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
  610. Integer materialCount = amsSaleMaterialMapper.getMaterialCount(materialId);
  611. RmsMaterial rmsMaterial = new RmsMaterial();
  612. rmsMaterial.setMaterialId(materialId);
  613. if (materialCount == null) {
  614. materialCount = new Integer(0);
  615. }
  616. rmsMaterial.setMaterialCount(new BigDecimal(materialCount + 1));
  617. rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial);
  618. // 得到计量单位
  619. amsSaleMaterial.setEasPrimaryId(easPrimaryId);
  620. amsSaleMaterial.setMaterialId(materialId);
  621. //设置辅助数量
  622. amsSaleMaterial.setMaterialNumber(DataChange.dataToBigDecimal(auxiliaryQuantity));
  623. amsSaleMaterial.setInsertTime(new Date());
  624. amsSaleMaterial.setInsertUsername("金蝶");
  625. amsSaleMaterial.setMeterWeight(DataChange.dataToBigDecimal(meterWeight));
  626. amsSaleMaterial.setInsertUpdateRemark("采集金蝶库存调拨单");
  627. if (materialWeight != null && !"".equals(materialWeight)) {
  628. amsSaleMaterial.setMaterialWeight(new BigDecimal(materialWeight));
  629. }
  630. result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
  631. //设置发站
  632. Object toTheStation = map.get("toTheStation");
  633. TmstrainPleaseApproveResult tmstrainPleaseApproveResult=new TmstrainPleaseApproveResult();
  634. BigDecimal maxId = tmstrainPleaseApproveResultMapper.getMaxId();
  635. tmstrainPleaseApproveResult.setResultId(maxId);
  636. tmstrainPleaseApproveResult.setResultPleasePlanNo(DataChange.generateEightDigitsNumber("WLQCH",maxId.intValue()));
  637. tmstrainPleaseApproveResult.setRailPlanId(saleMaterialId);
  638. //查找到站是否存在到站表
  639. BigDecimal sendStation = rmstrainArrivalSendMapper.getSendStation((String) toTheStation);
  640. //到站不存在
  641. if (sendStation==null){
  642. //新增到站
  643. BigDecimal toStationMaxId = rmstrainArrivalSendMapper.getMaxId();
  644. RmstrainArrivalSend rmstrainArrivalSend=new RmstrainArrivalSend();
  645. rmstrainArrivalSend.setArrivalId(toStationMaxId);
  646. rmstrainArrivalSend.setArrivalName((String) toTheStation);
  647. rmstrainArrivalSend.setInsertTime(new Date());
  648. rmstrainArrivalSend.setInsertUsername("金蝶");
  649. rmstrainArrivalSend.setInsertUpdateRemark("金蝶回传数据");
  650. result += rmstrainArrivalSendMapper.insertSelective(rmstrainArrivalSend);
  651. tmstrainPleaseApproveResult.setToTheStationId(toStationMaxId);
  652. }else {
  653. //到站存在
  654. tmstrainPleaseApproveResult.setToTheStationId(sendStation);
  655. }
  656. tmstrainPleaseApproveResult.setResultType(new BigDecimal(4));
  657. tmstrainPleaseApproveResult.setInsertTime(new Date());
  658. tmstrainPleaseApproveResult.setInsertUpdateRemark("金蝶回传");
  659. result += tmstrainPleaseApproveResultMapper.insertSelective(tmstrainPleaseApproveResult);
  660. }
  661. }else {
  662. // throw new Exception("暂不支持修改库存调拨单");
  663. //此处判断主要是针对销售订单已经存在
  664. AmsSaleOrder amsSaleOrder=new AmsSaleOrder();
  665. //此处判断订单状态为反审核
  666. if (closeStatus.equals("0")&&orderStatus.equals("5")) {
  667. //删除销售订单以及销售订单分录(没有下游单据的)
  668. int i=0;
  669. List<Map<String, Object>> mapList = amsSaleOrderMapper.selectAmssaleOrderId(saleNumber);
  670. BigDecimal selectAreadyUse = amsSaleOrderMapper.selectAreadyUse(saleNumber);
  671. if (selectAreadyUse==null) {
  672. for (Map<String, Object> IdMap : mapList) {
  673. BigDecimal saleMaterialId = DataChange.dataToBigDecimal(IdMap.get("saleMaterialId"));
  674. i+= amsSaleMaterialMapper.deleteByPrimaryKey(saleMaterialId);
  675. }
  676. i+= amsSaleOrderMapper.deleteByPrimaryKey(saleOrderNumber);
  677. return i;
  678. }else {
  679. return -1;
  680. }
  681. }
  682. if (orderStatus.equals("2")){
  683. amsSaleOrder.setSaleOrderId(saleOrderNumber);
  684. amsSaleOrder.setCloseStatus(new BigDecimal(1));
  685. amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  686. }
  687. // 关闭单个分录订单
  688. if (closeStatus.equals("-1") && wholeOrder.equals("0")) {
  689. Object closeEntryId = map.get("closeEntryId");
  690. if (closeEntryId != null) {
  691. Map<String, Object> easMap = new HashMap<>();
  692. easMap.put("easPrimaryId", closeEntryId);
  693. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  694. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  695. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  696. amsSaleMaterial.setDeleted(new BigDecimal(0));
  697. result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
  698. }
  699. }
  700. }
  701. // 反关闭整单
  702. if (closeStatus.equals("-2") && "1".equals(wholeOrder)) {
  703. amsSaleOrder.setDeleted(new BigDecimal(0));
  704. Object reason = map.get("reason");
  705. BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
  706. if (reason != null) {
  707. amsSaleOrder.setInsertUpdateRemark(reason.toString());
  708. }
  709. // 反关闭销售订单下的所有分录
  710. result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
  711. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  712. }
  713. // 反关闭单个分录订单
  714. if (closeStatus.equals("-2") && wholeOrder.equals("0")) {
  715. Object unCloseEntryId = map.get("unCloseEntryId");
  716. if (unCloseEntryId != null) {
  717. Map<String, Object> easMap = new HashMap<>();
  718. easMap.put("easPrimaryId", unCloseEntryId);
  719. List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
  720. if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
  721. AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
  722. result += amsSaleMaterialMapper.unCloseSaleMaterial(amsSaleMaterial.getSaleMaterialId());
  723. }
  724. }
  725. }
  726. //编辑销售订单主键
  727. amsSaleOrder.setSaleOrderId(saleOrderNumber);
  728. //新增单据编码
  729. amsSaleOrder.setSaleNumber(saleNumber);
  730. // 订单日期
  731. try {
  732. Date saleOrderBizDate = sdf.parse(saleOrderBizDateStr);
  733. amsSaleOrder.setInsertTime(saleOrderBizDate);
  734. } catch (ParseException e) {
  735. e.printStackTrace();
  736. }
  737. //业务日期
  738. try {
  739. Date BusinessDate = sdf2.parse(businessDate);
  740. amsSaleOrder.setBusinessDate(BusinessDate);
  741. } catch (ParseException e) {
  742. e.printStackTrace();
  743. }
  744. amsSaleOrder.setWhetherTheCar(whetherTheCar);
  745. amsSaleOrder.setSaleRemark(saleRemark);
  746. amsSaleOrder.setSaleOrderStatus(new BigDecimal(2));
  747. //销售订单类型:内转钢材到异地库
  748. amsSaleOrder.setSaleType(new BigDecimal(4));
  749. amsSaleOrder.setTransferInDep(transferInDep);
  750. amsSaleOrder.setTransferOutDep(transferOutDep);
  751. amsSaleOrder.setDeleted(new BigDecimal(0));
  752. amsSaleOrder.setTransferInInventoryOrg(transferInInventoryOrg);
  753. amsSaleOrder.setTransferOutInventoryOrg(transferOutInventoryOrg);
  754. amsSaleOrder.setBusinessType(businessType);
  755. result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
  756. Object toTheStation = map.get("toTheStation");
  757. //根据销售订单id查找是否存在该请车实绩
  758. BigDecimal resultId = tmstrainPleaseApproveResultMapper.selectResultId(saleOrderNumber);
  759. TmstrainPleaseApproveResult tmstrainPleaseApproveResult=new TmstrainPleaseApproveResult();
  760. tmstrainPleaseApproveResult.setResultId(resultId);
  761. tmstrainPleaseApproveResult.setRailPlanId(saleOrderNumber);
  762. //查找到站是否存在到站表
  763. BigDecimal sendStation = rmstrainArrivalSendMapper.getSendStation((String) toTheStation);
  764. //到站不存在
  765. if (sendStation==null){
  766. //新增到站
  767. BigDecimal toStationMaxId = rmstrainArrivalSendMapper.getMaxId();
  768. RmstrainArrivalSend rmstrainArrivalSend=new RmstrainArrivalSend();
  769. rmstrainArrivalSend.setArrivalId(toStationMaxId);
  770. rmstrainArrivalSend.setArrivalName((String) toTheStation);
  771. rmstrainArrivalSend.setInsertTime(new Date());
  772. rmstrainArrivalSend.setInsertUsername("金蝶");
  773. rmstrainArrivalSend.setInsertUpdateRemark("金蝶回传数据");
  774. result += rmstrainArrivalSendMapper.insertSelective(rmstrainArrivalSend);
  775. }else {
  776. //到站存在
  777. tmstrainPleaseApproveResult.setToTheStationId(sendStation);
  778. }
  779. tmstrainPleaseApproveResult.setResultType(new BigDecimal(4));
  780. tmstrainPleaseApproveResult.setInsertTime(new Date());
  781. tmstrainPleaseApproveResult.setInsertUpdateRemark("金蝶回传");
  782. result += tmstrainPleaseApproveResultMapper.updateByPrimaryKeySelective(tmstrainPleaseApproveResult);
  783. //修改销售订单子表
  784. }
  785. return result;
  786. }
  787. //根据运输订单号和车牌号
  788. @Override
  789. public List<Map<String, Object>> selectSaleSteelOrder(Map<String,Object> map) {
  790. List<Map<String, Object>> mapList = amsSaleOrderMapper.selectSaleSteelOrder(map);
  791. if (mapList.size()==0){
  792. return null;
  793. }
  794. for (Map<String,Object> map1:mapList){
  795. String materialName =(String) map1.get("materialName");
  796. if (materialName.contains("盘螺")){
  797. map1.put("materialType","盘螺");
  798. }else if (materialName.contains("盘圆")||materialName.contains("盘元")){
  799. map1.put("materialType","盘圆");
  800. }else if (materialName.contains("螺纹")){
  801. map1.put("materialType","螺纹钢");
  802. }
  803. //根据物资id查找炉批号
  804. BigDecimal materialId =DataChange.dataToBigDecimal(map1.get("materialId"));
  805. BigDecimal orderId =DataChange.dataToBigDecimal( map1.get("orderId"));
  806. List<Map<String,Object>> materialFurnaceNumber = amsSaleOrderMapper.selectMaterialFurnaceNumber(materialId,orderId);
  807. StringBuilder sb = new StringBuilder();
  808. for (Map<String, Object> luHaoMap : materialFurnaceNumber) {
  809. sb.append(luHaoMap.get("materialFurnaceNumber"));
  810. sb.append("-");
  811. sb.append(luHaoMap.get("materialNum"));
  812. sb.append("/");
  813. }
  814. if(materialFurnaceNumber.size() > 0){
  815. sb.deleteCharAt(sb.length() - 1);
  816. map1.put("materialFurnaceNumber",materialFurnaceNumber);
  817. }
  818. //接口发送日期
  819. map1.put("sendTime",new Date());
  820. }
  821. return mapList;
  822. }
  823. @Override
  824. @Transactional(rollbackFor = {Exception.class})
  825. public int receiveOrderResult(Map<String, Object> map) throws Exception {
  826. int result=0;
  827. OmstrainOrder omstrainOrder = new OmstrainOrder();
  828. //获取运输订单号
  829. Object orderNumber = map.get("orderNumber");
  830. //获取备注-如果是异常情况,填写备注。
  831. Object remark = map.get("remark");
  832. if (remark!=null){
  833. omstrainOrder.setAcceptRemark((String) remark);
  834. }
  835. //接收车皮号
  836. Object wagonNo = map.get("wagonNo");
  837. BigDecimal orderId = omstrainOrderMapper.selectOrderIdBywagonNoAndOrderNumber((String) orderNumber, (String) wagonNo);
  838. if (orderId==null){
  839. throw new Exception("提示回传车皮号与运输订单号不匹配");
  840. }
  841. //根据运输订单号查找id
  842. omstrainOrder.setOrderId(orderId);
  843. //接收是否收货(0为未收货,1为已收货)
  844. Object receviceOrNot = map.get("receviceOrNot");
  845. omstrainOrder.setIsAccept(DataChange.dataToBigDecimal(receviceOrNot));
  846. //接收时间
  847. String receviceTime2 =(String) map.get("receviceTime");
  848. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  849. try {
  850. Date receviceTime = sdf2.parse(receviceTime2);
  851. omstrainOrder.setIsAcceptTime(receviceTime);
  852. } catch (ParseException e) {
  853. e.printStackTrace();
  854. }
  855. result = omstrainOrderMapper.updateByPrimaryKeySelective(omstrainOrder);
  856. return result;
  857. }
  858. }