AmstruckInwardRequirementServiceImpl.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.AmstruckInwardPlanMapper;
  3. import com.steerinfo.dil.mapper.AmstruckInwardRequirementMapper;
  4. import com.steerinfo.dil.mapper.AmstruckRequirementMaterialMapper;
  5. import com.steerinfo.dil.mapper.AmstruckRequirementPlanMapper;
  6. import com.steerinfo.dil.model.AmstruckInwardPlan;
  7. import com.steerinfo.dil.model.AmstruckInwardRequirement;
  8. import com.steerinfo.dil.model.AmstruckRequirementMaterial;
  9. import com.steerinfo.dil.model.AmstruckRequirementPlan;
  10. import com.steerinfo.dil.service.IAmstruckInwardRequirementService;
  11. import com.steerinfo.dil.util.DataChange;
  12. import com.steerinfo.framework.mapper.IBaseMapper;
  13. import com.steerinfo.framework.service.impl.BaseServiceImpl;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.math.BigDecimal;
  18. import java.util.*;
  19. /**
  20. * AmstruckInwardRequirement服务实现:
  21. * @author generator
  22. * @version 1.0-SNAPSHORT 2021-10-25 11:30
  23. * 类描述
  24. * 修订历史:
  25. * 日期:2021-10-25
  26. * 作者:generator
  27. * 参考:
  28. * 描述:AmstruckInwardRequirement服务实现
  29. * @see null
  30. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  31. */
  32. @Service(value = "amstruckInwardRequirementService")
  33. public class AmstruckInwardRequirementServiceImpl extends BaseServiceImpl<AmstruckInwardRequirement, BigDecimal> implements IAmstruckInwardRequirementService {
  34. @Autowired
  35. private AmstruckInwardRequirementMapper amstruckInwardRequirementMapper;
  36. @Autowired
  37. AmstruckRequirementMaterialMapper amstruckRequirementMaterialMapper;
  38. @Autowired
  39. private AmstruckInwardPlanMapper amstruckInwardPlanMapper;
  40. @Autowired
  41. private AmstruckRequirementPlanMapper amstruckRequirementPlanMapper;
  42. @Override
  43. protected IBaseMapper<AmstruckInwardRequirement, BigDecimal> getMapper() {
  44. return amstruckInwardRequirementMapper;
  45. }
  46. //新增用车需求
  47. @Transactional
  48. @Override
  49. public int insert(Map<String,Object> mapValue) {
  50. Integer purchaseOrderId = (Integer) mapValue.get("purchaseOrderId");
  51. String requirementType = (String) mapValue.get("requirementType");
  52. Long requirementTruckTime = (Long) mapValue.get("requirementTruckTime");
  53. Integer requirementShipperId = (Integer) mapValue.get("requirementShipperId");
  54. String requirementWorkType = (String) mapValue.get("requirementWorkType");
  55. String requirementWorkContent = (String) mapValue.get("requirementWorkContent");
  56. String requirementWorkEnvironment = (String) mapValue.get("requirementWorkEnvironment");
  57. String requirementEstimatedDuration = (String) mapValue.get("requirementEstimatedDuration");
  58. String requirementOverlimit = (String) mapValue.get("requirementOverlimit");
  59. //提取车型
  60. BigDecimal capacityTypeId=DataChange.dataToBigDecimal(mapValue.get("capacityTypeId"));
  61. String InsertUpdateRemark = (String) mapValue.get("remark");
  62. String isMineral = (String)mapValue.get("isMineral");
  63. //取出装机需求
  64. String loadingRemark = (String) mapValue.get("installremark");
  65. Long dueTime =(Long) mapValue.get("DueTime");
  66. AmstruckInwardRequirement amstruckInwardRequirement = new AmstruckInwardRequirement();
  67. //设置主键
  68. BigDecimal requirementId = amstruckInwardRequirementMapper.selectOtherId();
  69. amstruckInwardRequirement.setRequirementId(requirementId);
  70. if(mapValue.get("rangeId") != null){
  71. //承运起止范围
  72. BigDecimal lineId = DataChange.dataToBigDecimal(mapValue.get("rangeId"));
  73. amstruckInwardRequirement.setLineId(lineId);
  74. }
  75. amstruckInwardRequirement.setRequirementNumber(DataChange.generateEightDigitsNumber("YSXQ",amstruckInwardRequirementMapper.selectOtherId().intValue()));
  76. amstruckInwardRequirement.setRequirementStatus(new BigDecimal(0));
  77. //新增车型
  78. amstruckInwardRequirement.setCapacityTypeId(capacityTypeId);
  79. if(purchaseOrderId != null){
  80. amstruckInwardRequirement.setPurchaseOrderId(new BigDecimal(purchaseOrderId));
  81. }
  82. amstruckInwardRequirement.setRequirementType(requirementType);
  83. amstruckInwardRequirement.setRequirementTruckTime(new Date(requirementTruckTime));
  84. if(requirementWorkType != null){
  85. amstruckInwardRequirement.setRequirementWorkType(requirementWorkType);
  86. }
  87. amstruckInwardRequirement.setRequirementWorkContent(requirementWorkContent);
  88. amstruckInwardRequirement.setRequirementWorkEnvironment(requirementWorkEnvironment);
  89. if (requirementEstimatedDuration!=null) {
  90. amstruckInwardRequirement.setRequirementEstimatedDuration(new BigDecimal(requirementEstimatedDuration));
  91. }
  92. amstruckInwardRequirement.setRequirementOverlimit(requirementOverlimit);
  93. //用车单位
  94. amstruckInwardRequirement.setRequirementShipperId(new BigDecimal(requirementShipperId));
  95. //判断截止日期是否为空
  96. if (dueTime!=null) {
  97. amstruckInwardRequirement.setDueDate(new Date(dueTime));
  98. }else {
  99. amstruckInwardRequirement.setDueDate(null);
  100. }
  101. // 设置常规字段
  102. amstruckInwardRequirement.setIsMineral(isMineral);
  103. amstruckInwardRequirement.setInsertTime(new Date());
  104. amstruckInwardRequirement.setInsertUsername((String) mapValue.get("orgCode"));
  105. amstruckInwardRequirement.setInsertUpdateRemark(InsertUpdateRemark);
  106. amstruckInwardRequirement.setDeleted(new BigDecimal(0));
  107. amstruckInwardRequirement.setLoadingRemark(loadingRemark);
  108. int result = 0;
  109. result += amstruckInwardRequirementMapper.insertSelective(amstruckInwardRequirement);
  110. // 物资中间表
  111. List<Map<String,Object>> mapList =( List<Map<String,Object>>) mapValue.get("mapList");
  112. for (Map<String,Object> requireMaterialMap:mapList
  113. ) {
  114. BigDecimal materialId = DataChange.dataToBigDecimal(requireMaterialMap.get("materialId"));
  115. if(materialId.intValue() == 0)
  116. if(purchaseOrderId != null)
  117. materialId = amstruckInwardRequirementMapper.getMaterialId(new BigDecimal(purchaseOrderId));
  118. AmstruckRequirementMaterial amstruckRequirementMaterial = new AmstruckRequirementMaterial();
  119. requireMaterialMap.get("requirementPlatformId");
  120. requireMaterialMap.get("requirementUnloadUnitId");
  121. BigDecimal materialNumber = DataChange.dataToBigDecimal(requireMaterialMap.get("orderMaterialNumber"));
  122. BigDecimal materialWeight = DataChange.dataToBigDecimal(requireMaterialMap.get("orderMaterialWeight"));
  123. BigDecimal materialPriority = DataChange.dataToBigDecimal(requireMaterialMap.get("materialPriority"));
  124. BigDecimal requirementPlatformId = DataChange.dataToBigDecimal(requireMaterialMap.get("requirementPlatformId"));
  125. BigDecimal requirementUnloadUnitId = DataChange.dataToBigDecimal(requireMaterialMap.get("requirementUnloadUnitId"));
  126. amstruckRequirementMaterial.setRequirementMaterialId(amstruckRequirementMaterialMapper.selectRequirementMaterialId());
  127. amstruckRequirementMaterial.setRequirementId(requirementId);
  128. amstruckRequirementMaterial.setLoadUnloadSequence(materialPriority);
  129. if(materialNumber.intValue() != 0)
  130. amstruckRequirementMaterial.setMaterialCount(materialNumber);
  131. if(materialWeight.intValue() != 0)
  132. amstruckRequirementMaterial.setMaterialWeight(materialWeight);
  133. if(requirementPlatformId.intValue() !=0){
  134. amstruckRequirementMaterial.setRequirementPlatformId(requirementPlatformId);
  135. }
  136. if(requirementUnloadUnitId.intValue() !=0){
  137. amstruckRequirementMaterial.setRequirementUnloadUnitId(requirementUnloadUnitId);
  138. }
  139. amstruckRequirementMaterial.setMaterialId(materialId);
  140. amstruckRequirementMaterial.setInsertTime(new Date());
  141. amstruckRequirementMaterial.setInsertUsername("admin");
  142. amstruckRequirementMaterial.setInsertUpdateRemark(InsertUpdateRemark);
  143. result += amstruckRequirementMaterialMapper.insertSelective(amstruckRequirementMaterial);
  144. }
  145. return result;
  146. }
  147. /**
  148. * 查询用车需求
  149. * @param mapValue
  150. * @return
  151. */
  152. @Override
  153. public List<Map<String, Object>> getTruckRequirementList(Map<String, Object> mapValue) {
  154. List<Map<String, Object>> mapList;
  155. if (((Integer) mapValue.get("requirementStatus")) == 2) {
  156. mapList = amstruckInwardRequirementMapper.getFinishTruckRequirementList(mapValue);
  157. }
  158. else {
  159. mapList = amstruckInwardRequirementMapper.getTruckRequirementList(mapValue);
  160. }
  161. return mapList;
  162. }
  163. /**
  164. * 删除用车需求
  165. * @param requirementId
  166. * @return
  167. */
  168. @Override
  169. public int deleteTruckRequirement(BigDecimal requirementId) {
  170. AmstruckInwardRequirement amstruckInwardRequirement=new AmstruckInwardRequirement();
  171. amstruckInwardRequirement.setRequirementId(requirementId);
  172. amstruckInwardRequirement.setDeleted(new BigDecimal(1));
  173. int result = amstruckInwardRequirementMapper.updateByPrimaryKeySelective(amstruckInwardRequirement);
  174. return result;
  175. }
  176. /**
  177. * 修改用车需求
  178. * @param amstruckInwardRequirement
  179. * @return
  180. */
  181. @Override
  182. public int updateTruckRequirement(AmstruckInwardRequirement amstruckInwardRequirement) {
  183. int result = amstruckInwardRequirementMapper.updateByPrimaryKeySelective(amstruckInwardRequirement);
  184. return result;
  185. }
  186. /**
  187. * 查询修改渲染
  188. * @param requirementId
  189. * @return
  190. */
  191. @Override
  192. public List<Map<String, Object>> selectRequirement(Integer requirementId) {
  193. return amstruckInwardRequirementMapper.selectRequirement(new BigDecimal(requirementId));
  194. }
  195. /**
  196. * 下发需求
  197. * @param requirementIds
  198. * @return
  199. */
  200. @Override
  201. public int downRequirement(List<Map<String,Object>> requirementIds) {
  202. int result = 0;
  203. for (Map<String,Object> map : requirementIds) {
  204. Integer requirementId = (Integer) map.get("requirementId");
  205. AmstruckInwardRequirement amstruckInwardRequirement=new AmstruckInwardRequirement();
  206. amstruckInwardRequirement.setRequirementId(new BigDecimal(requirementId));
  207. //根据需求id进行判断,如果是纯内转,则将状态改为2,如果是采购内转则将状态改为1
  208. BigDecimal purOrderId = amstruckInwardRequirementMapper.selectPurOrderId(requirementId);
  209. if(purOrderId != null){
  210. amstruckInwardRequirement.setRequirementStatus(new BigDecimal(1));
  211. }else{
  212. amstruckInwardRequirement.setRequirementStatus(new BigDecimal(2));
  213. }
  214. result += amstruckInwardRequirementMapper.updateByPrimaryKeySelective(amstruckInwardRequirement);
  215. }
  216. return result;
  217. }
  218. /**
  219. * 接收需求
  220. * @param requirementId
  221. * @return
  222. */
  223. @Override
  224. public int receiveRequirement(Integer requirementId) {
  225. AmstruckInwardRequirement amstruckInwardRequirement = amstruckInwardRequirementMapper.selectByPrimaryKey(new BigDecimal(requirementId));
  226. amstruckInwardRequirement.setRequirementStatus(new BigDecimal(2));
  227. amstruckInwardRequirement.setUpdateTime(new Date());
  228. amstruckInwardRequirement.setUpdateUsername("admin");
  229. int result = amstruckInwardRequirementMapper.updateByPrimaryKeySelective(amstruckInwardRequirement);
  230. return result;
  231. }
  232. /**
  233. * 批次信息
  234. * @param mapValue
  235. * @return
  236. */
  237. @Override
  238. public List<Map<String, Object>> getPurchaseIdByBatch(Map<String, Object> mapValue) {
  239. List<Map<String, Object>> mapList = amstruckInwardRequirementMapper.getPurchaseIdByBatch(mapValue);
  240. // for (Map<String,Object> map : mapList) {
  241. // BigDecimal purchaseOrderId = (BigDecimal) map.get("purchaseOrderId");
  242. // Map<String,Object> purchaseMap = new HashMap<>();
  243. // purchaseMap.put("purchaseOrderId",purchaseOrderId);
  244. // List<AmstruckInwardRequirement> amstruckInwardRequirements = amstruckInwardRequirementMapper.selectByParameters(purchaseMap);
  245. // if (amstruckInwardRequirements.size() == 0 || amstruckInwardRequirements == null) {
  246. // }
  247. // else {
  248. // mapList.remove(map);
  249. // }
  250. // }
  251. return mapList;
  252. }
  253. /**
  254. * 车型下拉
  255. * @return
  256. */
  257. @Override
  258. public List<Map<String, Object>> getCapacityType() {
  259. return amstruckInwardRequirementMapper.getCapacityType();
  260. }
  261. /**
  262. * 用车单位下拉
  263. * @return
  264. */
  265. @Override
  266. public List<Map<String, Object>> getShipperUser() {
  267. return amstruckInwardRequirementMapper.getShipperUser();
  268. }
  269. /**
  270. * 查询所有仓库
  271. * @param mapValue
  272. * @return
  273. */
  274. @Override
  275. public List<Map<String, Object>> getWareHouse(Map<String, Object> mapValue) {
  276. return amstruckInwardRequirementMapper.getWareHouse(mapValue);
  277. }
  278. @Override
  279. public List<Map<String, Object>> getOffsetWareHouse() {
  280. return amstruckRequirementMaterialMapper.getOffsetWarehouse();
  281. }
  282. @Transactional
  283. @Override
  284. public int insertPurInwardRequirement(Map<String, Object> mapValue) {
  285. BigDecimal purchaseOrderId = DataChange.dataToBigDecimal(mapValue.get("purchaseOrderId"));
  286. BigDecimal unloadPointId = DataChange.dataToBigDecimal(mapValue.get("unloadPointId"));
  287. //承运起止范围ID
  288. BigDecimal lineId = DataChange.dataToBigDecimal(mapValue.get("rangeId"));
  289. String userId = (String)mapValue.get("userId");
  290. BigDecimal carrierId = DataChange.dataToBigDecimal(mapValue.get("carrierId"));
  291. BigDecimal materialId = DataChange.dataToBigDecimal(mapValue.get("materialId"));
  292. AmstruckInwardRequirement amstruckInwardRequirement = new AmstruckInwardRequirement();
  293. //设置主键
  294. BigDecimal requirementId = amstruckInwardRequirementMapper.selectOtherId();
  295. amstruckInwardRequirement.setRequirementId(requirementId);
  296. amstruckInwardRequirement.setLineId(lineId);
  297. amstruckInwardRequirement.setRequirementNumber(DataChange.generateEightDigitsNumber("YSXQ",amstruckInwardRequirementMapper.selectOtherId().intValue()));
  298. amstruckInwardRequirement.setRequirementStatus(new BigDecimal(0));
  299. amstruckInwardRequirement.setPurchaseOrderId(purchaseOrderId);
  300. amstruckInwardRequirement.setRequirementUnloadUnitId(unloadPointId);
  301. //采购内转现在先默认装货点是新区轨道衡
  302. // 设置常规字段
  303. amstruckInwardRequirement.setInsertTime(new Date());
  304. amstruckInwardRequirement.setInsertUsername(userId);
  305. amstruckInwardRequirement.setInsertUpdateRemark("无");
  306. amstruckInwardRequirement.setDeleted(new BigDecimal(0));
  307. int result = 0;
  308. result += amstruckInwardRequirementMapper.insertSelective(amstruckInwardRequirement);
  309. // 物资中间表
  310. AmstruckRequirementMaterial amstruckRequirementMaterial = new AmstruckRequirementMaterial();
  311. amstruckRequirementMaterial.setRequirementMaterialId(amstruckRequirementMaterialMapper.selectRequirementMaterialId());
  312. amstruckRequirementMaterial.setRequirementId(requirementId);
  313. amstruckRequirementMaterial.setMaterialId(materialId);
  314. amstruckRequirementMaterial.setInsertTime(new Date());
  315. amstruckRequirementMaterial.setInsertUsername("admin");
  316. amstruckRequirementMaterial.setInsertUpdateRemark("无");
  317. Map<String, Object> inwardPlanMap = new HashMap<>();
  318. inwardPlanMap.put("carrierId",carrierId);
  319. inwardPlanMap.put("requirementId",requirementId);
  320. result += amstruckRequirementMaterialMapper.insertSelective(amstruckRequirementMaterial);
  321. result += insertInwardRequirementPlan(inwardPlanMap);
  322. return result;
  323. }
  324. @Override
  325. public List<Map<String, Object>> getPurRequirementList(Map<String, Object> mapValue) {
  326. List<Map<String, Object>> mapList;
  327. mapList = amstruckInwardRequirementMapper.getPurRequirementList(mapValue);
  328. for (Map<String,Object> map:mapList
  329. ) {
  330. BigDecimal enable = DataChange.dataToBigDecimal(map.get("enable"));
  331. if(enable.intValue() == 0){;
  332. map.remove("enable");
  333. map.put("enable","未启用");
  334. map.put("loadPointName","化工园区铁专线");
  335. }else{
  336. map.remove("enable");
  337. map.put("enable","启用");
  338. map.put("loadPointName","化工园区铁专线");
  339. }
  340. }
  341. return mapList;
  342. }
  343. //查询纯内转需求物资详情
  344. @Override
  345. public List<Map<String,Object>> getRequirementMaterial(Integer requirementId) {
  346. return amstruckRequirementMaterialMapper.getRequirementMaterial(requirementId);
  347. }
  348. public int insertInwardRequirementPlan(Map<String, Object> mapValue) {
  349. AmstruckInwardPlan amstruckInwardPlan = new AmstruckInwardPlan();
  350. BigDecimal planId = amstruckInwardPlanMapper.selectOtherId();
  351. //设置主键
  352. amstruckInwardPlan.setPlanId(planId);
  353. //获取承运商id
  354. BigDecimal carrierId=DataChange.dataToBigDecimal(mapValue.get("carrierId"));
  355. amstruckInwardPlan.setCarrierId(carrierId);
  356. amstruckInwardPlan.setPlanNumber(DataChange.generateEightDigitsNumber("YSJH",planId.intValue()));
  357. //设置计划状态为启用
  358. amstruckInwardPlan.setPlanEableStatus(new BigDecimal(1));
  359. //设置计划状态为已接收
  360. amstruckInwardPlan.setPlanStatus(new BigDecimal(2));
  361. // 设置常规字段
  362. amstruckInwardPlan.setInsertTime(new Date());
  363. amstruckInwardPlan.setInsertUsername("admin");
  364. amstruckInwardPlan.setInsertUpdateRemark("无");
  365. amstruckInwardPlan.setDeleted(new BigDecimal(0));
  366. int i = amstruckInwardPlanMapper.insertSelective(amstruckInwardPlan);
  367. //新增需求计划中间表
  368. AmstruckRequirementPlan amstruckRequirementPlan = new AmstruckRequirementPlan();
  369. //xu qiu ID
  370. BigDecimal requirementId = DataChange.dataToBigDecimal(mapValue.get("requirementId"));
  371. BigDecimal requirementPlanId = amstruckRequirementPlanMapper.selectOtherId();
  372. amstruckRequirementPlan.setRequirementPlanId(requirementPlanId);
  373. amstruckRequirementPlan.setPlanId(planId);
  374. amstruckRequirementPlan.setRequirementId(requirementId);
  375. amstruckRequirementPlan.setInsertTime(new Date());
  376. amstruckRequirementPlan.setInsertUsername("admin");
  377. amstruckRequirementPlan.setInsertUpdateRemark("无");
  378. //在中间表中将需求与计划绑定
  379. i += amstruckRequirementPlanMapper.insertSelective(amstruckRequirementPlan);
  380. return i;
  381. }
  382. }