WmsInboundResultServiceImpl.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.WmspGridMaterialMapper;
  3. import com.steerinfo.dil.mapper.WmspInboundResultMapper;
  4. import com.steerinfo.dil.model.WmspGridMaterial;
  5. import com.steerinfo.dil.model.WmspInboundResult;
  6. import com.steerinfo.dil.service.IWmsInboundResultService;
  7. import com.steerinfo.dil.util.IDUtils;
  8. import com.steerinfo.dil.util.Liushuih;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import java.math.BigDecimal;
  12. import java.util.Date;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * @author luobang
  17. * @create 2021-09-06 18:12
  18. */
  19. @Service
  20. public class WmsInboundResultServiceImpl implements IWmsInboundResultService {
  21. @Autowired
  22. WmspInboundResultMapper wmspInboundResultMapper;
  23. @Autowired
  24. WmspGridMaterialMapper wmspGridMaterialMapper;
  25. /**
  26. * 1.展示入库实绩所有信息
  27. * @param mapValue
  28. * @return
  29. */
  30. @Override
  31. public List<Map<String,Object>> getInboundResult(Map<String, Object> mapValue){
  32. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsInboundResult(mapValue);
  33. for (Map<String,Object>map:maps
  34. ) {
  35. BigDecimal isComplete = (BigDecimal) map.get("isComplete");
  36. if(isComplete.intValue() == 1){
  37. map.remove("isComplete");
  38. map.put("isComplete","无异常,正常入库");
  39. }else{
  40. map.remove("isComplete");
  41. map.put("isComplete","异常入库");
  42. }
  43. }
  44. return maps;
  45. }
  46. /**
  47. * 2.展示退库实绩所有信息
  48. * @param mapValue
  49. * @return
  50. */
  51. @Override
  52. public List<Map<String,Object>> getReboundResult(Map<String, Object> mapValue){
  53. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsReboundResult(mapValue);
  54. return maps;
  55. }
  56. /**
  57. * 2.展示倒库主表实绩所有信息
  58. * @param mapValue
  59. * @return
  60. */
  61. @Override
  62. public List<Map<String,Object>> getIvboundResult(Map<String, Object> mapValue){
  63. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsIvboundResult(mapValue);
  64. return maps;
  65. }
  66. @Override
  67. public List<Map<String,Object>> getIvboundMaterial(Map<String, Object> mapValue){
  68. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsIvboundMaterialResult(mapValue);
  69. return maps;
  70. }
  71. @Override
  72. public List<Map<String, Object>> selectScanResultByIboundResultId(Map<String, Object> map) {
  73. return wmspInboundResultMapper.selectScanResultByIboundResultId(map);
  74. }
  75. /**
  76. * 2.获取最大ID数
  77. * @return
  78. */
  79. @Override
  80. public int count() {
  81. if (wmspInboundResultMapper.getCount()==null){
  82. return 0;
  83. }
  84. return wmspInboundResultMapper.getCount().intValue();
  85. }
  86. /**
  87. * 3.新增入库实绩
  88. * @param wmspInboundResult
  89. * @return
  90. */
  91. @Override
  92. public Integer insertWmsInboundResult(WmspInboundResult wmspInboundResult) {
  93. return wmspInboundResultMapper.insertSelective(wmspInboundResult);
  94. }
  95. /**
  96. * 更新退库实绩表
  97. * @param map9
  98. * @return
  99. */
  100. @Override
  101. public Integer updateReboundResult(Map<String, Object> map9) {
  102. return wmspInboundResultMapper.updateReboundResult(map9);
  103. }
  104. @Override
  105. public String selectWarehouseName(BigDecimal bigDecimal) {
  106. return wmspInboundResultMapper.selectWarehouseName(bigDecimal);
  107. }
  108. @Override
  109. public WmspInboundResult initAndWmspInboundResult(Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item) {
  110. WmspInboundResult wmspInboundResult=new WmspInboundResult();
  111. //1、给实绩属性赋值
  112. int orderNumber = count();
  113. // 主键ID
  114. wmspInboundResult.setInboundId(IDUtils.createIDYMD(String.valueOf(orderNumber)));
  115. //批次ID与批次绑定关系
  116. wmspInboundResult.setInboundDistributeId(distributeId);
  117. //分组
  118. wmspInboundResult.setInboundGroupId(inboundGroupId);
  119. //入库类型
  120. wmspInboundResult.setInboundType(new BigDecimal(0));
  121. //入库单/退库单/倒库单编号(WRKD-年月日-8位数的顺序号)
  122. String number= Liushuih.generateNextNumber("WRKD-", "yyyyMMdd-", 8, orderNumber);
  123. wmspInboundResult.setInboundNumber(number);
  124. //仓储网格
  125. wmspInboundResult.setGridId(gridId);
  126. //入库单是否下发:0:未下发;1:下发中; 2:已下发 3:已经接收
  127. wmspInboundResult.setResultStatus(new BigDecimal(1));
  128. //物资ID
  129. wmspInboundResult.setMaterialId(new BigDecimal(item.get("materialId").toString()));
  130. //仓库id
  131. wmspInboundResult.setPersonnelWorkshopid(personnelWorkshopid);
  132. //入库是否完成(0:未完成,1:已完成)
  133. wmspInboundResult.setInboundIscomplete(new BigDecimal(0));
  134. //逻辑删除:1:删除;0:未删除
  135. wmspInboundResult.setResultDeleted(new BigDecimal(0));
  136. //入库日期
  137. wmspInboundResult.setInboundTime(new Date());
  138. //记录创建人
  139. wmspInboundResult.setInsertUsername(userName);
  140. //记录创建时间
  141. wmspInboundResult.setInsertTime(new Date());
  142. //创建序号
  143. wmspInboundResult.setResultNumber(new BigDecimal(resultNumber));
  144. //插入
  145. int status = wmspInboundResultMapper.insertSelective(wmspInboundResult);
  146. return status>0?wmspInboundResult:null;
  147. }
  148. @Override
  149. public Map<String,Object> selectInboundResultByGroupId(BigDecimal groupId) {
  150. return wmspInboundResultMapper.selectInboundResultByGroupId(groupId);
  151. }
  152. @Override
  153. public BigDecimal getGrid(String distributeId, int i) {
  154. return wmspInboundResultMapper.getGrid(distributeId,i);
  155. }
  156. @Override
  157. public int updateInboundStatus(BigDecimal distributeId) {
  158. return wmspInboundResultMapper.updateInboundStatus(distributeId);
  159. }
  160. // 根据出库的resultId修改入库实绩的逻辑删除状态和仓储网格的状态
  161. @Override
  162. public int updateInboundGridStatus(Integer resultId) {
  163. int i=0;
  164. // 根据出库的resultId获取当前的吊刚工扫描结果
  165. List<Map<String ,Object>> resultMaterial = wmspInboundResultMapper.getResultMaterialByResultId(resultId);
  166. for (Map<String, Object> map1: resultMaterial){
  167. String material = (String) map1.get("resultMaterial");
  168. // 根据扫描吊牌得到的物资唯一编码修改对应的入库实绩状态和仓储网格状态
  169. List<Map<String ,Object>> list =wmspInboundResultMapper.getInboundResult(material);
  170. for (Map<String, Object> map:list){
  171. BigDecimal inboundId = (BigDecimal) map.get("inboundId");
  172. BigDecimal grmId = (BigDecimal) map.get("gmId");
  173. // 创建入库实绩实体类
  174. WmspInboundResult wmspInboundResult = new WmspInboundResult();
  175. wmspInboundResult.setInboundId(inboundId);
  176. wmspInboundResult.setResultDeleted(new BigDecimal(1));
  177. i+= wmspInboundResultMapper.updateByPrimaryKeySelective(wmspInboundResult);
  178. // 创建仓储网格实体类
  179. WmspGridMaterial wmspGridMaterial = new WmspGridMaterial();
  180. wmspGridMaterial.setGmId(grmId);
  181. wmspGridMaterial.setDeleted(new BigDecimal(1));
  182. i+= wmspGridMaterialMapper.updateByPrimaryKeySelective(wmspGridMaterial);
  183. }
  184. }
  185. return i;
  186. }
  187. }