AmstruckPurplanServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.AmstruckPurplanMapper;
  3. import com.steerinfo.dil.mapper.AmstruckPurplanMaterialMapper;
  4. import com.steerinfo.dil.model.AmstruckPurplan;
  5. import com.steerinfo.dil.model.AmstruckPurplanMaterial;
  6. import com.steerinfo.dil.service.IAmstruckPurplanService;
  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.SimpleDateFormat;
  12. import java.util.Date;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * AmstruckPurplan服务实现:
  17. * @author TXF
  18. * @version 1.0-SNAPSHORT 2021-09-02 10:38
  19. * 类描述
  20. * 修订历史:
  21. * 日期:2021-09-02
  22. * 作者:generator
  23. * 参考:
  24. * 描述:AmstruckPurplan服务实现
  25. * @see null
  26. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  27. */
  28. @Service(value = "amstruckPurplanService")
  29. public class AmstruckPurplanServiceImpl implements IAmstruckPurplanService {
  30. @Autowired
  31. private AmstruckPurplanMapper amstruckPurplanMapper;
  32. @Autowired
  33. private AmstruckPurplanMaterialMapper amstruckPurplanMaterialMapper;
  34. /**
  35. * 查询所有运输计划
  36. * @param map
  37. * @return
  38. */
  39. @Override
  40. public List<Map<String, Object>> getAllPurPlan(Map<String, Object> map) {
  41. return amstruckPurplanMapper.getAllPurPlan(map);
  42. }
  43. /**
  44. * 通过主键Id查询运输计划
  45. * @param planId
  46. * @return
  47. */
  48. @Override
  49. public List<Map<String, Object>> getPurPlanById(Integer planId) {
  50. return amstruckPurplanMapper.getPurPlanById(planId);
  51. }
  52. /**
  53. * 新增运输计划
  54. * @param amstruckPurplan
  55. * @return
  56. */
  57. @Override
  58. @Transactional
  59. public int addPurPlan(AmstruckPurplan amstruckPurplan) {
  60. //生成主键Id
  61. long id;
  62. BigDecimal maxId = amstruckPurplanMapper.selectMaxId();
  63. id = maxId == null ? 1 : maxId.longValue() + 1;
  64. BigDecimal planId = new BigDecimal(id);
  65. amstruckPurplan.setPlanId(planId);
  66. //生成运输计划号
  67. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  68. String planNumber = "WYSJF" + sdf.format(new Date());
  69. planNumber += id < 10 ? "0000000" + id : id < 100 ? "000000" + id : id < 1000 ? "00000" + id : id < 10000 ?
  70. "0000" + id : id < 100000 ? "000" + id : id < 1000000 ? "00" + id : id < 10000000 ? "0" + id : id;
  71. amstruckPurplan.setPlanNo(planNumber);
  72. //新增状态为未下发:0
  73. amstruckPurplan.setPlanStatus(new BigDecimal(0));
  74. //记录创建人
  75. amstruckPurplan.setInsertUsername("admin");
  76. //生成子表数据
  77. AmstruckPurplanMaterial amstruckPurplanMaterial = new AmstruckPurplanMaterial();
  78. //生成主键
  79. long childId;
  80. BigDecimal selectMaxId = amstruckPurplanMaterialMapper.selectMaxId();
  81. childId = selectMaxId == null? 1 :selectMaxId.longValue() + 1;
  82. amstruckPurplanMaterial.setPurplanPlanMaterialId(new BigDecimal(childId));
  83. //设置父表主键
  84. amstruckPurplanMaterial.setPlanId(planId);
  85. //设置子表未分配数量重量 = 总重量
  86. amstruckPurplanMaterial.setMaterialUnallocatedWeight(amstruckPurplan.getMaterialTotalWeight());
  87. //设置已分配重量 初始为 0
  88. amstruckPurplanMaterial.setMaterialAllocatedWeight(new BigDecimal(0));
  89. int i = amstruckPurplanMaterialMapper.insertSelective(amstruckPurplanMaterial);
  90. int i1 = amstruckPurplanMapper.insertSelective(amstruckPurplan);
  91. return i + i1;
  92. }
  93. /**
  94. * 修改运输计划
  95. * @param amstruckPurplan
  96. * @return
  97. */
  98. @Override
  99. @Transactional
  100. public int updatePurPlan(AmstruckPurplan amstruckPurplan) {
  101. int i = amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan);
  102. //通过计划ID查询子表主键ID
  103. BigDecimal childId = amstruckPurplanMaterialMapper.getChildIdByPlanId(amstruckPurplan.getPlanId());
  104. //修改子表数据未分配物资重量
  105. AmstruckPurplanMaterial amstruckPurplanMaterial = new AmstruckPurplanMaterial();
  106. amstruckPurplanMaterial.setId(childId);
  107. amstruckPurplanMaterial.setMaterialUnallocatedWeight(amstruckPurplan.getMaterialTotalWeight());
  108. int i1 = amstruckPurplanMaterialMapper.updateByPrimaryKeySelective(amstruckPurplanMaterial);
  109. return i + i1;
  110. }
  111. /**
  112. * 逻辑删除运输计划 3
  113. * @param amstruckPurplan
  114. * @return
  115. */
  116. @Override
  117. public int deletePurPlan(AmstruckPurplan amstruckPurplan) {
  118. return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan);
  119. }
  120. /**
  121. * 下发运输计划
  122. * @param amstruckPurplan
  123. * @return
  124. */
  125. @Override
  126. public int sendPurPlan(AmstruckPurplan amstruckPurplan) {
  127. //记录下发计划时间
  128. amstruckPurplan.setInsertTime(new Date());
  129. return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan);
  130. }
  131. /**
  132. * 接收运输计划
  133. * @param amstruckPurplan
  134. * @return
  135. */
  136. @Override
  137. public int receptionPurPlan(AmstruckPurplan amstruckPurplan) {
  138. //记录接收计划时间
  139. amstruckPurplan.setUpdateTime((new Date()));
  140. return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan);
  141. }
  142. }