WmsInboundScanResultServiceImpl.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.TypeReference;
  4. import com.steerinfo.dil.mapper.WmspInboundScanResultMapper;
  5. import com.steerinfo.dil.mapper.WmspInboundStackResultMapper;
  6. import com.steerinfo.dil.model.WmspInboundScanResult;
  7. import com.steerinfo.dil.model.WmspInboundStackResult;
  8. import com.steerinfo.dil.service.IRmsMaterialSteelService;
  9. import com.steerinfo.dil.service.IWmsInboundScanResultService;
  10. import com.steerinfo.dil.service.IWmspInboundGroupService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.math.BigDecimal;
  14. import java.text.ParseException;
  15. import java.util.Date;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * @author luobang
  21. * @create 2021-09-07 15:12
  22. */
  23. @Service
  24. public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultService {
  25. @Autowired
  26. private WmspInboundScanResultMapper wmspInboundScanResultMapper;
  27. @Autowired
  28. private WmspInboundStackResultMapper wmspInboundStackResultMapper;
  29. @Autowired
  30. private IWmspInboundGroupService wmspInboundGroupService;
  31. @Autowired
  32. private IRmsMaterialSteelService rmsMaterialSteelService;
  33. //判断是否重复扫码
  34. @Override
  35. public Integer checkScanTag(Map<String,Object>map,BigDecimal loadId){
  36. //获取扫描吊牌实绩
  37. String resultMaterial = (String) map.get("resultMaterial");
  38. //获取物资扫描实绩
  39. String subResultMaterial = resultMaterial.substring(0,resultMaterial.length() - 1);
  40. Map<String,Object> checkScanMap = new HashMap<>();
  41. checkScanMap.put("resultMaterial",subResultMaterial);
  42. checkScanMap.put("loadId",loadId);
  43. //根据扫描实绩查询出扫描实绩个数
  44. Integer j=(checkScanResult(checkScanMap)).size();
  45. if (j!=0)
  46. return 0;
  47. return 1;
  48. }
  49. /**
  50. * 1.新增吊钢工扫描吊牌实绩
  51. * @param wmspInboundScanResult
  52. * @return
  53. */
  54. @Override
  55. public Integer insertWmsInboundScanResult(WmspInboundScanResult wmspInboundScanResult) {
  56. return wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
  57. }
  58. /**
  59. * 2.获取最大ID
  60. * @return
  61. */
  62. @Override
  63. public BigDecimal count() {
  64. return wmspInboundScanResultMapper.getCount();
  65. }
  66. /**
  67. * 3.获取吊钢工最大扫描数
  68. * @param
  69. * @return
  70. */
  71. @Override
  72. public int scanNumber(Map<String, Object> map) {
  73. if (wmspInboundScanResultMapper.getScanNumber(map)==null){
  74. return 0;
  75. }
  76. return wmspInboundScanResultMapper.getScanNumber(map).intValue();
  77. }
  78. /**
  79. * 4.更新扫描吊牌实绩
  80. * @param wmspInboundScanResult
  81. * @return
  82. */
  83. @Override
  84. public Integer updateWmsInboundScanResult(WmspInboundScanResult wmspInboundScanResult) {
  85. return wmspInboundScanResultMapper.updateByPrimaryKeySelective(wmspInboundScanResult);
  86. }
  87. /**
  88. * 更新异常值
  89. // * @param wmspInboundScanResult
  90. * @return
  91. */
  92. @Override
  93. public Integer updateInboundAbnormal(Map<String,Object> map) {
  94. return wmspInboundScanResultMapper.updateInboundAbnormal(map);
  95. }
  96. @Override
  97. public Integer updateWmsInboundScanById(Map<String, Object> map) {
  98. return wmspInboundScanResultMapper.updateInboundScanResult(map);
  99. }
  100. /**
  101. * 获取扫描吊牌实绩
  102. * @param map
  103. * @return
  104. */
  105. @Override
  106. public List<Map<String, Object>> getScanTagResult(Map<String, Object> map) {
  107. return wmspInboundScanResultMapper.selectScanTagResult(map);
  108. }
  109. /**
  110. * 获取正常入库
  111. * @param map
  112. * @return
  113. */
  114. @Override
  115. public List<Map<String, Object>> getIssuedScanTagResult(Map<String, Object> map) {
  116. return wmspInboundScanResultMapper.selectIssuedScanTagResult(map);
  117. }
  118. /**
  119. * 获取异常入库
  120. * @param map
  121. * @return
  122. */
  123. @Override
  124. public List<Map<String, Object>> getIssuedScanTagNoResult(Map<String, Object> map) {
  125. return wmspInboundScanResultMapper.selectIssuedScanTagNoResult(map);
  126. }
  127. /**
  128. * 判断是否重复插入
  129. * @param
  130. * @param
  131. * @return
  132. */
  133. @Override
  134. public List<Map<String, Object>> checkScanResult(Map<String,Object>map) {
  135. return wmspInboundScanResultMapper.checkScanResult(map);
  136. }
  137. /*
  138. 更新退库扫描实绩
  139. */
  140. @Override
  141. public Integer updateWmsReboundScanById(Map<String, Object> map5) {
  142. return wmspInboundScanResultMapper.updateReboundScanResult(map5);
  143. }
  144. /*
  145. 展示已下发退库实绩
  146. */
  147. @Override
  148. public List<Map<String, Object>> getIssuedScanResult(Map<String, Object> map) {
  149. return wmspInboundScanResultMapper.selectReIssuedScanResult(map);
  150. }
  151. /*
  152. 展示未下发退库实绩
  153. */
  154. @Override
  155. public List<Map<String, Object>> getReScanTagResult(Map<String, Object> map) {
  156. return wmspInboundScanResultMapper.selectReScanTagResult(map);
  157. }
  158. /*
  159. 展示已下发退库实绩
  160. */
  161. @Override
  162. public List<Map<String, Object>> getIssuedScanIvResult(Map<String, Object> map) {
  163. return wmspInboundScanResultMapper.selectIvIssuedScanResult(map);
  164. }
  165. /*
  166. 展示未下发退库实绩
  167. */
  168. @Override
  169. public List<Map<String, Object>> getIvScanTagResult(Map<String, Object> map) {
  170. return wmspInboundScanResultMapper.selectIvScanTagResult(map);
  171. }
  172. @Override
  173. public List<Map<String, Object>>getScanResult(BigDecimal loadId) {
  174. return wmspInboundScanResultMapper.getScanResult(loadId);
  175. }
  176. @Override
  177. public BigDecimal getLoadId(Map<String, Object> map) {
  178. return wmspInboundScanResultMapper.getLoadId(map);
  179. }
  180. /**
  181. * 得到另外一个扫描实绩ID
  182. * @param otherLoadMap
  183. * @return
  184. */
  185. @Override
  186. public List<Map<String,Object>> getOntherLoadId(Map<String, Object> otherLoadMap) {
  187. return wmspInboundScanResultMapper.getOtherScanResultId(otherLoadMap);
  188. }
  189. @Override
  190. public BigDecimal getOtherLoadId(Map<String, Object> map) {
  191. return wmspInboundScanResultMapper.getOtherLoadId(map);
  192. }
  193. @Override
  194. public Integer getOtherMaterialSteelId(Map<String, Object> map) {
  195. return wmspInboundScanResultMapper.getOtherMaterialSteelId(map);
  196. }
  197. @Override
  198. public List<Map<String, Object>> selectStacking(Map<String, Object> map) {
  199. return wmspInboundScanResultMapper.selectStackNo(map);
  200. }
  201. @Override
  202. public Integer updateStatus(Map<String, Object> map) {
  203. return wmspInboundScanResultMapper.updataStatus(map);
  204. }
  205. /**
  206. * 判断物资是否为线材
  207. * @param materialId
  208. * @return
  209. */
  210. @Override
  211. public BigDecimal selectMaterialTypeByMaterialId(BigDecimal materialId) {
  212. return wmspInboundScanResultMapper.selectMaterialTypeByMaterialId(materialId);
  213. }
  214. /**
  215. * 判断物质是否已经被扫
  216. * @param userName
  217. * @param resultMaterial
  218. * @return
  219. */
  220. @Override
  221. public int isExist(String userName, String resultMaterial) {
  222. return wmspInboundScanResultMapper.isExist(userName,resultMaterial);
  223. }
  224. /**
  225. * 查询扫描没有下发的物质
  226. * @param userName
  227. * @return
  228. */
  229. @Override
  230. public List<Map<String, Object>> noIssueScanResult(String userName) {
  231. return wmspInboundScanResultMapper.noIssueScanResult(userName);
  232. }
  233. @Override
  234. public Map<String, Object> createInboundScanResultByResultMaterial(Integer scanedCount, String userName,String resultMaterial) throws ParseException {
  235. //创建入库扫描实绩、并且给对象赋值
  236. WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
  237. //设置主键自增,这里需要修改
  238. wmspInboundScanResult.setId(count());
  239. //分组
  240. //根据用户名和分组状态查询到分组信息
  241. BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
  242. wmspInboundScanResult.setInboundGroupId(groupId);
  243. //吊钢工扫描吊牌结果
  244. wmspInboundScanResult.setResultMaterial(resultMaterial);
  245. //扫描吊牌信息
  246. wmspInboundScanResult.setResultLoadTime(new Date());
  247. //新增钢材物资ID
  248. Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
  249. wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
  250. //创建用户
  251. //insertUsername
  252. wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
  253. //设置入库物资件数,默认一件
  254. wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
  255. // 状态:0:未下发;1:已下发
  256. wmspInboundScanResult.setResultStatus(new BigDecimal(0));
  257. //吊钢工已扫物资次数 ,目前已扫描为没有下发的物质
  258. //BigDecimal scanCount= wmspInboundScanResultMapper.getScanedNumber(userId);
  259. wmspInboundScanResult.setResultNumber(new BigDecimal(scanedCount));
  260. //逻辑删除:1:删除,0:未删除
  261. wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
  262. //扫码用户
  263. wmspInboundScanResult.setInsertUsername(userName);
  264. //创建时间
  265. wmspInboundScanResult.setInsertTime(new Date());
  266. int status = wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
  267. //判断是否创建成功
  268. if (status>0){
  269. materialSteel.putAll(JSON.parseObject(JSON.toJSONString(wmspInboundScanResult),new TypeReference<Map<String,Object>>(){}));
  270. return materialSteel;
  271. }
  272. return null;
  273. }
  274. @Override
  275. public List<Map<String, Object>> noIssueScanResultList(String userName) {
  276. return wmspInboundScanResultMapper.noIssueScanResultList(userName);
  277. }
  278. @Override
  279. public int changeInboundIscomplete(BigDecimal stackResultId) {
  280. // 根据stackResultId找到对应的成品并修改其状态
  281. WmspInboundStackResult wmspInboundStackResult =new WmspInboundStackResult();
  282. wmspInboundStackResult.setResultId(stackResultId);
  283. wmspInboundStackResult.setStackingStatus(new BigDecimal(1));
  284. return wmspInboundStackResultMapper.updateByPrimaryKeySelective(wmspInboundStackResult);
  285. }
  286. public int updateInboundScanStatus(BigDecimal resultId,BigDecimal inboundId) {
  287. return wmspInboundScanResultMapper.updataStatusByResultId(resultId,inboundId);
  288. }
  289. @Override
  290. public Integer getResultStatusByResultId(String resultId) {
  291. return wmspInboundScanResultMapper.getResultStatusByResultId(resultId);
  292. }
  293. @Override
  294. public int isExist2(String userName, String resultMaterial) {
  295. return wmspInboundScanResultMapper.isExist2(userName,resultMaterial);
  296. }
  297. @Override
  298. public Map<String, Object> createInboundScanResultByResultMaterial2(int scanedCount, String userName, String resultMaterial) throws ParseException {
  299. //创建入库扫描实绩、并且给对象赋值
  300. WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
  301. //设置主键自增,这里需要修改
  302. wmspInboundScanResult.setId(count());
  303. //分组 只需要扫一次没有分组信息
  304. //根据用户名和分组状态查询到分组信息
  305. // BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
  306. // wmspInboundScanResult.setInboundGroupId(groupId);
  307. //吊钢工扫描吊牌结果
  308. wmspInboundScanResult.setResultMaterial(resultMaterial);
  309. //扫描吊牌信息
  310. wmspInboundScanResult.setResultLoadTime(new Date());
  311. //新增钢材物资ID
  312. Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
  313. wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
  314. //创建用户
  315. //insertUsername
  316. wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
  317. //设置入库物资件数,默认一件
  318. wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
  319. // 状态:0:未下发;1:已下发
  320. wmspInboundScanResult.setResultStatus(new BigDecimal(0));
  321. //吊钢工已扫物资次数 ,目前已扫描为没有下发的物质
  322. //BigDecimal scanCount= wmspInboundScanResultMapper.getScanedNumber(userId);
  323. wmspInboundScanResult.setResultNumber(new BigDecimal(scanedCount));
  324. //逻辑删除:1:删除,0:未删除
  325. wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
  326. //扫码用户
  327. wmspInboundScanResult.setInsertUsername(userName);
  328. //创建时间
  329. wmspInboundScanResult.setInsertTime(new Date());
  330. int status = wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
  331. //判断是否创建成功
  332. if (status>0){
  333. materialSteel.putAll(JSON.parseObject(JSON.toJSONString(wmspInboundScanResult),new TypeReference<Map<String,Object>>(){}));
  334. return materialSteel;
  335. }
  336. return null;
  337. }
  338. @Override
  339. public List<Map<String, Object>> noIssueScanResultList2(String userName) {
  340. return wmspInboundScanResultMapper.noIssueScanResultList2(userName);
  341. }
  342. }