AmsSaleOrderMaterialServiceImpl.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.controller.AmsSaleTrucknoMaterialController;
  3. import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
  4. import com.steerinfo.dil.mapper.AmsSaleTrucknoMaterialMapper;
  5. import com.steerinfo.dil.model.AmsSaleOrderMaterial;
  6. import com.steerinfo.dil.model.AmsSaleTrucknoMaterial;
  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.Date;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * AmsSaleOrderMaterial服务实现:
  21. * @author generator
  22. * @version 1.0-SNAPSHORT 2021-09-06 07:10
  23. * 类描述
  24. * 修订历史:
  25. * 日期:2021-09-06
  26. * 作者:generator
  27. * 参考:
  28. * 描述:AmsSaleOrderMaterial服务实现
  29. * @see null
  30. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  31. */
  32. @Service(value = "amsSaleOrderMaterialService")
  33. public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialService {
  34. @Autowired
  35. private AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
  36. @Autowired
  37. AmsSaleTrucknoMaterialMapper amsSaleTrucknoMaterialMapper;
  38. @Override
  39. public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
  40. long id;
  41. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  42. id = 1;
  43. }else {
  44. id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  45. }
  46. //生成主键id
  47. amsSaleOrderMaterial.setSaleOrderMaterialId(new BigDecimal(id));
  48. //生成车序号
  49. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(id));
  50. //常规字段
  51. amsSaleOrderMaterial.setInsertUsername("admin");
  52. amsSaleOrderMaterial.setInsertTime(new Date());
  53. amsSaleOrderMaterial.setUpdateUsername("admin");
  54. amsSaleOrderMaterial.setUpdateTime(new Date());
  55. amsSaleOrderMaterial.setInsertUpdateRemark("无");
  56. amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
  57. amsSaleOrderMaterial.setUpdated(new BigDecimal(0));
  58. return amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial);
  59. }
  60. @Override
  61. public List<Map<String, Object>> selectBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) {
  62. return amsSaleOrderMaterialMapper.selectBySaleOrderMaterialId(saleOrderMaterialId);
  63. }
  64. @Override
  65. public int updateAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
  66. amsSaleOrderMaterial.setUpdateTime(new Date());
  67. return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
  68. }
  69. @Override
  70. public int deleteAmsSaleOrderMaterialBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) {
  71. AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(saleOrderMaterialId);
  72. amsSaleOrderMaterial.setDeleted(new BigDecimal(1));
  73. return amsSaleOrderMaterialMapper.updateByPrimaryKey(amsSaleOrderMaterial);
  74. }
  75. @Override
  76. public String getAddress(BigDecimal saleOrderMaterialId) {
  77. return amsSaleOrderMaterialMapper.getAddress(saleOrderMaterialId);
  78. }
  79. @Override
  80. public int updateAddress(Map<String, Object> map) {
  81. String saleOrderMaterialId = map.get("saleOrderMaterialId").toString();
  82. //查询收货地址表中是否有该地址,无则新增,有则取收货地址Id
  83. String saleShippingAddress = (String) map.get("saleShippingAddress");
  84. BigDecimal addressId = amsSaleOrderMaterialMapper.getReceiveAddressId(saleShippingAddress);
  85. //获得原车次表信息
  86. AmsSaleOrderMaterial amsSaleOrderMaterial1 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId));
  87. if(addressId!=null){
  88. long id;
  89. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  90. id = 1;
  91. }else {
  92. id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  93. }
  94. //生成主键id
  95. amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id));
  96. amsSaleOrderMaterial1.setSaleShippingAddressId(addressId);
  97. //新增修改了地址的数据
  98. amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1);
  99. }else {
  100. //新增收货地址,取得收货地址的Id
  101. Map<String,Object> mapReceive = new HashMap<>();
  102. long id;
  103. if(amsSaleOrderMaterialMapper.selectMaxIdReceive()==null){
  104. id = 1;
  105. }else {
  106. id = amsSaleOrderMaterialMapper.selectMaxIdReceive().longValue()+1;
  107. }
  108. mapReceive.put("addressId",new BigDecimal(id));
  109. mapReceive.put("addressDeliveryAddress",saleShippingAddress);
  110. amsSaleOrderMaterialMapper.insertReceiveAddress(mapReceive);
  111. //新增修改了地址的数据
  112. long id1;
  113. if(amsSaleOrderMaterialMapper.selectMaxId()==null){
  114. id1 = 1;
  115. }else {
  116. id1 = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1;
  117. }
  118. //生成主键id
  119. amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id1));
  120. amsSaleOrderMaterial1.setSaleShippingAddressId(new BigDecimal(id));
  121. //新增修改了地址的数据
  122. amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1);
  123. }
  124. //修改原地址记录状态
  125. AmsSaleOrderMaterial amsSaleOrderMaterial2 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId));
  126. amsSaleOrderMaterial2.setUpdated(new BigDecimal(1));
  127. return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial2);
  128. }
  129. @Override
  130. public List<Map<String, Object>> getAddressDeliveryAddress() {
  131. return amsSaleOrderMaterialMapper.getAddressDeliveryAddress();
  132. }
  133. public List<Map<String, Object>> getSaleMaterial(Map<String, Object> mapValue) {
  134. return amsSaleOrderMaterialMapper.getSaleMaterial(mapValue);
  135. }
  136. public Integer selectById(BigDecimal saleOrderMaterialId) {
  137. return amsSaleOrderMaterialMapper.selectById(saleOrderMaterialId);
  138. }
  139. public Integer selectByCxh(Map<String, Object> m) {
  140. return amsSaleOrderMaterialMapper.selectByCxh(m);
  141. }
  142. /**
  143. * 展示车序号信息
  144. * @param mapValue
  145. * @return
  146. */
  147. @Override
  148. public List<Map<String, Object>> getTruckNoList(Map<String, Object> mapValue) {
  149. List<Map<String,Object>> mapList = amsSaleOrderMaterialMapper.getTruckNoList(mapValue);
  150. return mapList;
  151. }
  152. /**
  153. * 添加车序号与物资
  154. * @param mapList
  155. * @return
  156. */
  157. @Transactional
  158. @Override
  159. public int addTruckNo(List<Map<String, Object>> mapList) {
  160. int result = 0;
  161. for (Map<String, Object> map : mapList) {
  162. // 销售订单id
  163. BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
  164. // 车序号
  165. BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo"));
  166. AmsSaleOrderMaterial amsSaleOrderMaterial;
  167. Map<String,Object> saleMap = new HashMap<>();
  168. saleMap.put("saleOrderId",saleOrderId);
  169. saleMap.put("saleOrderMaterialTruckNo",truckNo);
  170. // 检测销售订单下的车序号是否已存在
  171. List<AmsSaleOrderMaterial> amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap);
  172. // 如果已存在则不处理
  173. if (amsSaleOrderMaterials != null && amsSaleOrderMaterials.size() != 0) {
  174. amsSaleOrderMaterial = amsSaleOrderMaterials.get(0);
  175. }
  176. // 如果不存在则新增车序号
  177. else {
  178. // 收货地址id
  179. BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shippingAddressId"));
  180. // 收货日期
  181. String dateOfReceiptStr = (String) map.get("dateOfReceipt");
  182. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  183. Date dateOfReceipt = null;
  184. try {
  185. dateOfReceipt = sdf.parse(dateOfReceiptStr);
  186. } catch (ParseException e) {
  187. e.printStackTrace();
  188. }
  189. // 收货方姓名
  190. String orderConsignee = (String) map.get("orderConsignee");
  191. // 收货方联系方式
  192. Object orderConsigneeTel = map.get("orderConsigneeTel");
  193. amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  194. BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
  195. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  196. amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
  197. amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
  198. amsSaleOrderMaterial.setSaleShippingAddressId(shippingAddressId);
  199. amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
  200. amsSaleOrderMaterial.setSaleOrderConsignee(orderConsignee);
  201. if (orderConsignee != null) {
  202. amsSaleOrderMaterial.setSaleOrderConsigneeTel(orderConsigneeTel.toString());
  203. }
  204. amsSaleOrderMaterial.setInsertTime(new Date());
  205. amsSaleOrderMaterial.setInsertUsername("admin");
  206. amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
  207. amsSaleOrderMaterial.setInsertUpdateRemark("无");
  208. amsSaleOrderMaterial.setUpdated(new BigDecimal(0));
  209. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(0));
  210. result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
  211. }
  212. // 新增车序号与物资中间表
  213. AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
  214. // 物资id
  215. BigDecimal materialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
  216. // 物资数量
  217. BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
  218. BigDecimal saleTrucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
  219. amsSaleTrucknoMaterial.setTrucknoMaterialId(saleTrucknoMaterialId);
  220. amsSaleTrucknoMaterial.setMaterialId(materialId);
  221. amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
  222. amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
  223. amsSaleTrucknoMaterial.setInsertTime(new Date());
  224. amsSaleTrucknoMaterial.setInsertUsername("admin");
  225. amsSaleTrucknoMaterial.setInsertUpdateRemark("无");
  226. result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
  227. }
  228. return result;
  229. }
  230. /**
  231. * 下发车序号
  232. * @param mapList
  233. * @return
  234. */
  235. @Override
  236. public int issueTruckNo(List<Map<String, Object>> mapList) {
  237. int result = 0;
  238. for (Map<String, Object> map : mapList) {
  239. BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
  240. AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
  241. amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
  242. amsSaleOrderMaterial.setIssueStatus(new BigDecimal(1));
  243. result += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
  244. }
  245. return result;
  246. }
  247. }