WmsInboundResultServiceImpl.java 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  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. return maps;
  34. }
  35. // 展示入库统计信息
  36. @Override
  37. public List<Map<String, Object>> getWmsInboundResultStatistics(Map<String, Object> mapValue, Integer warehouseId) {
  38. List<Map<String, Object>> maps = wmspInboundResultMapper.getWmsInboundResultStatistics(mapValue,warehouseId);
  39. return null;
  40. }
  41. @Override
  42. public List<Map<String,Object>> getInboundResults(Map<String, Object> mapValue){
  43. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsInboundResults(mapValue);
  44. return maps;
  45. }
  46. /**
  47. * 1.展示入库实绩所有信息
  48. * @param mapValue
  49. * @return
  50. */
  51. @Override
  52. public List<Map<String,Object>> getWmsReservedResult(Map<String, Object> mapValue){
  53. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsReservedResult(mapValue);
  54. return maps;
  55. }
  56. /**
  57. * 2.展示退库实绩所有信息
  58. * @param mapValue
  59. * @return
  60. */
  61. @Override
  62. public List<Map<String,Object>> getReboundResult(Map<String, Object> mapValue){
  63. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsReboundResult(mapValue);
  64. return maps;
  65. }
  66. /**
  67. * 2.展示倒库主表实绩所有信息
  68. * @param mapValue
  69. * @return
  70. */
  71. @Override
  72. public List<Map<String,Object>> getIvboundResult(Map<String, Object> mapValue){
  73. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsIvboundResult(mapValue);
  74. return maps;
  75. }
  76. @Override
  77. public List<Map<String,Object>> getIvboundMaterial(Map<String, Object> mapValue){
  78. List<Map<String, Object>> maps = wmspInboundResultMapper.selectWmsIvboundMaterialResult(mapValue);
  79. return maps;
  80. }
  81. @Override
  82. public List<Map<String, Object>> selectScanResultByIboundResultId(Map<String, Object> map) {
  83. return wmspInboundResultMapper.selectScanResultByIboundResultId(map);
  84. }
  85. /**
  86. * 2.获取最大ID数
  87. * @return
  88. */
  89. @Override
  90. public int count() {
  91. if (wmspInboundResultMapper.getCount()==null){
  92. return 0;
  93. }
  94. return wmspInboundResultMapper.getCount().intValue();
  95. }
  96. /**
  97. * 3.新增入库实绩
  98. * @param wmspInboundResult
  99. * @return
  100. */
  101. @Override
  102. public Integer insertWmsInboundResult(WmspInboundResult wmspInboundResult) {
  103. return wmspInboundResultMapper.insertSelective(wmspInboundResult);
  104. }
  105. /**
  106. * 更新退库实绩表
  107. * @param map9
  108. * @return
  109. */
  110. @Override
  111. public Integer updateReboundResult(Map<String, Object> map9) {
  112. return wmspInboundResultMapper.updateReboundResult(map9);
  113. }
  114. @Override
  115. public String selectWarehouseName(BigDecimal bigDecimal) {
  116. return wmspInboundResultMapper.selectWarehouseName(bigDecimal);
  117. }
  118. @Override
  119. public WmspInboundResult initAndWmspInboundResult(Integer complete, Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item) {
  120. WmspInboundResult wmspInboundResult=new WmspInboundResult();
  121. //1、给实绩属性赋值
  122. int orderNumber = count();
  123. // 主键ID
  124. wmspInboundResult.setInboundId(IDUtils.createIDYMD(String.valueOf(orderNumber)));
  125. //批次ID与批次绑定关系
  126. wmspInboundResult.setInboundDistributeId(distributeId);
  127. //分组
  128. wmspInboundResult.setInboundGroupId(inboundGroupId);
  129. //入库类型
  130. wmspInboundResult.setInboundType(new BigDecimal(0));
  131. //入库单/退库单/倒库单编号(WRKD-年月日-8位数的顺序号)
  132. String number= Liushuih.generateNextNumber("WRKD-", "yyyyMMdd-", 8, orderNumber);
  133. wmspInboundResult.setInboundNumber(number);
  134. //仓储网格
  135. wmspInboundResult.setGridId(gridId);
  136. //入库单是否下发:0:未下发;1:下发中; 2:已下发 3:已经接收
  137. wmspInboundResult.setResultStatus(new BigDecimal(1));
  138. //物资ID
  139. wmspInboundResult.setMaterialId(new BigDecimal(item.get("materialId").toString()));
  140. //仓库id
  141. wmspInboundResult.setPersonnelWorkshopid(personnelWorkshopid);
  142. //入库是否完成(0:未完成,1:已完成)
  143. wmspInboundResult.setInboundIscomplete(new BigDecimal(complete));
  144. //逻辑删除:1:删除;0:未删除
  145. wmspInboundResult.setResultDeleted(new BigDecimal(0));
  146. //入库日期
  147. wmspInboundResult.setInboundTime(new Date());
  148. //记录创建人
  149. wmspInboundResult.setInsertUsername(userName);
  150. //记录创建时间
  151. wmspInboundResult.setInsertTime(new Date());
  152. //创建序号
  153. wmspInboundResult.setResultNumber(new BigDecimal(resultNumber));
  154. //插入
  155. int status = wmspInboundResultMapper.insertSelective(wmspInboundResult);
  156. return status>0?wmspInboundResult:null;
  157. }
  158. @Override
  159. public Map<String,Object> selectInboundResultByGroupId(BigDecimal groupId) {
  160. return wmspInboundResultMapper.selectInboundResultByGroupId(groupId);
  161. }
  162. @Override
  163. public BigDecimal getGrid(String distributeId, int i) {
  164. return wmspInboundResultMapper.getGrid(distributeId,i);
  165. }
  166. @Override
  167. public int updateInboundStatus(BigDecimal distributeId) {
  168. return wmspInboundResultMapper.updateInboundStatus(distributeId);
  169. }
  170. // 根据出库的resultId修改入库实绩的逻辑删除状态和仓储网格的状态
  171. @Override
  172. public int updateInboundGridStatus(Integer resultId) {
  173. int i=0;
  174. // 根据出库的resultId获取当前的吊刚工扫描结果
  175. List<Map<String ,Object>> resultMaterial = wmspInboundResultMapper.getResultMaterialByResultId(resultId);
  176. for (Map<String, Object> map1: resultMaterial){
  177. String material = (String) map1.get("resultMaterial");
  178. // 根据扫描吊牌得到的物资唯一编码修改对应的入库实绩状态和仓储网格状态
  179. List<Map<String ,Object>> list =wmspInboundResultMapper.getInboundResult(material);
  180. for (Map<String, Object> map:list){
  181. BigDecimal inboundId = (BigDecimal) map.get("inboundId");
  182. BigDecimal grmId = (BigDecimal) map.get("gmId");
  183. // 创建入库实绩实体类
  184. WmspInboundResult wmspInboundResult = new WmspInboundResult();
  185. wmspInboundResult.setInboundId(inboundId);
  186. wmspInboundResult.setResultDeleted(new BigDecimal(1));
  187. i+= wmspInboundResultMapper.updateByPrimaryKeySelective(wmspInboundResult);
  188. // 创建仓储网格实体类
  189. WmspGridMaterial wmspGridMaterial = new WmspGridMaterial();
  190. wmspGridMaterial.setGmId(grmId);
  191. wmspGridMaterial.setDeleted(new BigDecimal(1));
  192. i+= wmspGridMaterialMapper.updateByPrimaryKeySelective(wmspGridMaterial);
  193. }
  194. }
  195. return i;
  196. }
  197. @Override
  198. public int getTypeMaterilaId(BigDecimal materialId) {
  199. return wmspInboundResultMapper.getTypeMaterilaId(materialId);
  200. }
  201. @Override
  202. public int updateStatusByMaterilaId(BigDecimal materialId) {
  203. return wmspInboundResultMapper.updateStatusByMaterilaId(materialId);
  204. }
  205. @Override
  206. public int updateStatusByMaterialId(BigDecimal materialId) {
  207. return wmspInboundResultMapper.updateStatusByMaterialId(materialId);
  208. }
  209. // 根据对应的入库实绩id修改入库状态为预留
  210. @Override
  211. public int changeReserved(List<Map<String, Object>> mapList) {
  212. int i=0;
  213. // 对mapList遍历,找到所有的入库id
  214. for (Map<String,Object> map:mapList){
  215. // 找到状态,判断其是属于入库转预留还是预留转入库,0表示入库转预留,1表示预留转入库
  216. Integer status= (Integer) map.get("status");
  217. Long inboundIds= (Long) map.get("inboundId");
  218. BigDecimal inboundId = new BigDecimal(inboundIds) ;
  219. // 创建入库实体类
  220. WmspInboundResult wmspInboundResult = new WmspInboundResult();
  221. wmspInboundResult.setInboundId(inboundId);
  222. wmspInboundResult.setInboundTime(new Date());
  223. wmspInboundResult.setInsertTime(new Date());
  224. if (status == 0){
  225. // 将入库状态改为预留状态
  226. wmspInboundResult.setInboundIscomplete(new BigDecimal(2));
  227. }else if (status == 1){
  228. // 将预留状态改为入库状态
  229. wmspInboundResult.setInboundIscomplete(new BigDecimal(1));
  230. }
  231. i+= wmspInboundResultMapper.updateByPrimaryKeySelective(wmspInboundResult);
  232. }
  233. return i;
  234. }
  235. }