WcsTaskSubService.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. package com.ruoyi.ams.xuankuang.service;
  2. import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
  3. import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
  4. import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
  5. import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
  6. import com.ruoyi.ams.asn.vo.SearchStockSkuVO;
  7. import com.ruoyi.ams.inv.domain.InvLotAtt;
  8. import com.ruoyi.ams.inv.domain.InvLotLocId;
  9. import com.ruoyi.ams.inv.service.IInvLotLocIdService;
  10. import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
  11. import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
  12. import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
  13. import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
  14. import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
  15. import com.ruoyi.ams.task.domain.WcsTask;
  16. import com.ruoyi.ams.task.service.IWcsTaskService;
  17. import com.ruoyi.base.constant.Constant;
  18. import com.ruoyi.base.domain.BaseLocationInfo;
  19. import com.ruoyi.base.service.IBaseLocationInfoService;
  20. import com.ruoyi.common.core.domain.AjaxResult;
  21. import com.ruoyi.common.core.domain.model.LoginUser;
  22. import com.ruoyi.common.utils.StringUtils;
  23. import com.ruoyi.hard.xuankang.StirringTankClient;
  24. import lombok.extern.slf4j.Slf4j;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import java.math.BigDecimal;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.Locale;
  32. /**
  33. * @author JWK
  34. * @version 1.0
  35. * @date 2023/4/4 10:48
  36. */
  37. @Slf4j
  38. @Service
  39. public class WcsTaskSubService {
  40. @Autowired
  41. private IWcsTaskService iWcsTaskService;
  42. @Autowired
  43. private IBaseLocationInfoService iBaseLocationInfoService;
  44. @Autowired
  45. private IInvLotLocIdService invLotLocIdService;
  46. @Autowired
  47. private IWmsDocAsnDetailsService iWmsDocAsnDetailsService;
  48. @Autowired
  49. private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
  50. @Autowired
  51. private IWmsDocOrderDetailsService iWmsDocOrderDetailsService;
  52. @Autowired
  53. private IWmsDocOrderHeaderService iWmsDocOrderHeaderService;
  54. @Autowired
  55. private WcsToWmsApiService wcsToWmsApiService;
  56. @Autowired
  57. private WmsDocOrderHeaderMapper wmsDocOrderHeaderMapper;
  58. /**
  59. * 增加四向车任务
  60. *
  61. * @return
  62. */
  63. public AjaxResult addWcsTask(String locationFrom, String locationTo
  64. , String asnNo
  65. , String palletNo
  66. , String wcsNo) {
  67. BaseLocationInfo baseLocationInfoFrom = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, 1l);
  68. BaseLocationInfo baseLocationInfoTo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, 1l);
  69. String taskNo = generateTaskNo();
  70. ;
  71. WcsTask wcsTask = new WcsTask();
  72. wcsTask.setTaskNo(taskNo);
  73. wcsTask.setState(10L);
  74. wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
  75. wcsTask.setBusinessType("01");
  76. wcsTask.setAreaFrom(baseLocationInfoFrom.getZoneId().toString());
  77. wcsTask.setLocationFrom(baseLocationInfoFrom.getId().toString());
  78. wcsTask.setAreaTo(baseLocationInfoTo.getZoneId().toString());
  79. wcsTask.setLocationTo(baseLocationInfoTo.getId().toString());
  80. wcsTask.setCreateTime(new Date());
  81. wcsTask.setCreateBy("Wcs");
  82. wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
  83. wcsTask.setPriority(10L);
  84. wcsTask.setExt1(asnNo);
  85. wcsTask.setExt2(palletNo);
  86. wcsTask.setExt3(wcsNo);
  87. wcsTask.setRemark("立体库任务");
  88. int i = iWcsTaskService.insertWcsTask(wcsTask);
  89. if (i > 0) {
  90. iBaseLocationInfoService.lockLocationStockStatus(Long.valueOf(wcsTask.getLocationFrom())
  91. , Long.valueOf(wcsTask.getLocationTo())
  92. , Constant.WAREHOUSE_ID, "Wcs");
  93. return AjaxResult.success("任务增加成功!", taskNo);
  94. }
  95. return AjaxResult.error("任务增加失败");
  96. }
  97. /**
  98. * 增加四向车出库任务
  99. *
  100. * @return
  101. */
  102. public AjaxResult addWcsOutTask(String locationFrom, String locationTo
  103. , String orderNo
  104. , String palletNo
  105. , String wcsNo) {
  106. BaseLocationInfo baseLocationInfoFrom = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, 1l);
  107. BaseLocationInfo baseLocationInfoTo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, 1l);
  108. String taskNo = generateTaskNo();
  109. WcsTask wcsTask = new WcsTask();
  110. wcsTask.setTaskNo(taskNo);
  111. wcsTask.setState(10L);
  112. wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
  113. wcsTask.setBusinessType("01");
  114. wcsTask.setAreaFrom(baseLocationInfoFrom.getZoneId().toString());
  115. wcsTask.setLocationFrom(baseLocationInfoFrom.getId().toString());
  116. wcsTask.setAreaTo(baseLocationInfoTo.getZoneId().toString());
  117. wcsTask.setLocationTo(baseLocationInfoTo.getId().toString());
  118. wcsTask.setCreateTime(new Date());
  119. wcsTask.setCreateBy("Wcs");
  120. wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
  121. wcsTask.setPriority(10L);
  122. wcsTask.setExt1(orderNo);
  123. wcsTask.setExt2(palletNo);
  124. wcsTask.setExt3(wcsNo);
  125. wcsTask.setRemark("立体库任务");
  126. int i = iWcsTaskService.insertWcsTask(wcsTask);
  127. if (i > 0) {
  128. iBaseLocationInfoService.lockLocationStockStatus(Long.valueOf(wcsTask.getLocationFrom())
  129. , Long.valueOf(wcsTask.getLocationTo())
  130. , Constant.WAREHOUSE_ID, "Wcs");
  131. return AjaxResult.success("任务增加成功!", taskNo);
  132. }
  133. return AjaxResult.error("任务增加失败");
  134. }
  135. /**
  136. * 增加越库任务
  137. *
  138. * @return
  139. */
  140. public AjaxResult addCrossDatabaseTasks(String asnNo) {
  141. String taskNo = generateTaskNo();
  142. WcsTask wcsTask = new WcsTask();
  143. wcsTask.setTaskNo(taskNo);
  144. wcsTask.setState(10L);
  145. wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
  146. wcsTask.setBusinessType("01");
  147. wcsTask.setCreateTime(new Date());
  148. wcsTask.setCreateBy("Wcs");
  149. wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
  150. wcsTask.setPriority(10L);
  151. wcsTask.setExt1(asnNo);
  152. wcsTask.setRemark("立体库任务");
  153. int i = iWcsTaskService.insertWcsTask(wcsTask);
  154. if (i > 0) {
  155. return AjaxResult.success(taskNo.toString());
  156. }
  157. return AjaxResult.error("任务增加失败");
  158. }
  159. /**
  160. * wcs任务反馈
  161. *
  162. * @param taskNo
  163. * @param state
  164. * @param carNo
  165. */
  166. @Transactional
  167. public void callBack(String taskNo, Integer state, Integer carNo) {
  168. String updateBy = "Wcs";
  169. log.info("wcs回传------------->" + taskNo + "," + state);
  170. WcsTask wcsTask = iWcsTaskService.selectWcsTaskByTaskNo(taskNo);
  171. if (wcsTask == null) {
  172. log.info("agv回传没有任务记录------------->");
  173. return;
  174. }
  175. if (state > 1 && state != 7) {
  176. wcsTask.setAgvNo(carNo + "");
  177. }
  178. if (wcsTask.getState() == 2 || wcsTask.getState() == 7) {
  179. log.info("已完成的任务无需反馈");
  180. return;
  181. }
  182. try {
  183. switch (state) {
  184. case 1:
  185. wcsTask.setStartTime(new Date());
  186. break;
  187. case 2://完成
  188. if (wcsTask.getState() == 2) {
  189. log.info("不能重复放货," + taskNo);
  190. return;
  191. }
  192. wcsTask.setEndTime(new Date());
  193. if (wcsTask.getExt2().equals("") && wcsTask.getExt1().startsWith("ASN")){
  194. completeTheCallbackYueKu(wcsTask);
  195. break;
  196. }
  197. if (wcsTask.getExt1().startsWith("ASN")) {
  198. // 解锁库位
  199. iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
  200. , Long.parseLong(wcsTask.getLocationTo())
  201. , Constant.WAREHOUSE_ID, updateBy);
  202. // 将起始点库存移动到终点库位
  203. iWcsTaskService.moveStartingPointToDestination(wcsTask);
  204. // 修改入库单收货数量
  205. completeTheCallback(wcsTask);
  206. }
  207. if (wcsTask.getExt1().startsWith("SO")) {
  208. // 解锁库位
  209. iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
  210. , Long.parseLong(wcsTask.getLocationTo())
  211. , Constant.WAREHOUSE_ID, updateBy);
  212. // 将起始点库存移动到终点库位
  213. iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
  214. invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
  215. // 修改出库单收货数量
  216. completeTheCallbackOut(wcsTask);
  217. }else if (wcsTask.getExt1().equals("")){
  218. // 解锁库位
  219. iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
  220. , Long.parseLong(wcsTask.getLocationTo())
  221. , Constant.WAREHOUSE_ID, updateBy);
  222. iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
  223. invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
  224. }
  225. break;
  226. case 4:
  227. if (wcsTask.getState() == 4) {
  228. log.info("不能重复取货," + taskNo);
  229. return;
  230. }
  231. // // 解锁起始库位
  232. // iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
  233. // , Constant.WAREHOUSE_ID, updateBy);
  234. // // 将起始点库存移动到终点位
  235. // iWcsTaskService.moveStartingPointToDestination(wcsTask);
  236. break;
  237. case 7://取消
  238. wcsTask.setEndTime(new Date());
  239. // 解锁终点和起始库位
  240. iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom()), Long.parseLong(wcsTask.getLocationTo())
  241. , Constant.WAREHOUSE_ID, updateBy);
  242. // 取消任务删除中间缓存库存
  243. // cancelTaskDelMiddleCache(wcsTask);
  244. break;
  245. default:
  246. break;
  247. }
  248. } catch (Exception e) {
  249. log.info(wcsTask.getTaskNo() + "-----" + "回调状态:" + state + "异常", e);
  250. wcsTask.setRemark("回调状态:" + state + "异常");
  251. throw new RuntimeException();
  252. }
  253. wcsTask.setState(state.longValue());
  254. wcsTask.setUpdateDate(new Date());
  255. iWcsTaskService.updateWcsTask(wcsTask);
  256. }
  257. /**
  258. * 任务完成后回调
  259. *
  260. * @param wcsTask
  261. * @return
  262. */
  263. public AjaxResult completeTheCallback(WcsTask wcsTask) {
  264. boolean con = true;
  265. boolean con1 = true;
  266. String palletNo = wcsTask.getExt2();
  267. String asnNo = wcsTask.getExt1();
  268. WmsDocAsnDetails wmsDocAsnDetails = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsByAsnNoLineNo(asnNo, "1");
  269. BigDecimal expectedQty = wmsDocAsnDetails.getExpectedQty();
  270. BigDecimal receivedQty = wmsDocAsnDetails.getReceivedQty();
  271. BigDecimal canQty = expectedQty.subtract(receivedQty);
  272. InvLotAtt invLotAtt = new InvLotAtt();
  273. invLotAtt.setLotatt07(palletNo);
  274. invLotAtt.setLotatt08(asnNo);
  275. List<InvLotLocId> invLotLocIds = invLotLocIdService.queryInvByInvLotatt(invLotAtt);
  276. for (InvLotLocId invLotLocId : invLotLocIds) {
  277. BigDecimal qty = invLotLocId.getQty();
  278. if (qty.compareTo(canQty) == 1) {
  279. continue;
  280. } else if (qty.compareTo(canQty) == 0) {
  281. wmsDocAsnDetails.setReceivedQty(expectedQty);
  282. int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
  283. if (i > 0) {
  284. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS40.getValue());
  285. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
  286. } else {
  287. con = false;
  288. continue;
  289. }
  290. } else if (qty.compareTo(canQty) == -1) {
  291. wmsDocAsnDetails.setReceivedQty(receivedQty.add(qty));
  292. int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
  293. if (i > 0) {
  294. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS30.getValue());
  295. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
  296. con1 = false;
  297. }
  298. }
  299. }
  300. if (con == true) {
  301. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  302. // 修改 单头40
  303. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS40.getValue());
  304. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  305. }
  306. if (con1 == false) {
  307. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  308. // 修改 单头30
  309. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS30.getValue());
  310. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  311. }
  312. return AjaxResult.success("");
  313. }
  314. /**
  315. * 出库完成任务回调
  316. *
  317. * @param wcsTask
  318. * @return
  319. */
  320. public AjaxResult completeTheCallbackOut(WcsTask wcsTask) {
  321. boolean con = true;
  322. boolean con1 = true;
  323. String palletNo = wcsTask.getExt2();
  324. String orderNo = wcsTask.getExt1();
  325. List<WmsDocOrderDetails> list = iWmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(orderNo);
  326. BigDecimal qtyOrderedEach = list.get(0).getQtyOrderedEach();
  327. BigDecimal allocatedEach = list.get(0).getQtyAllocated();
  328. String sku = list.get(0).getSku();
  329. BigDecimal canQty = qtyOrderedEach.subtract(allocatedEach);
  330. InvLotAtt invLotAtt = new InvLotAtt();
  331. invLotAtt.setLotatt07(palletNo);
  332. List<InvLotLocId> invLotLocIds = invLotLocIdService.queryInvByInvLotatt(invLotAtt);
  333. for (InvLotLocId invLotLocId : invLotLocIds) {
  334. BigDecimal qty = invLotLocId.getQty();
  335. if (qty.compareTo(canQty) == 1) {
  336. list.get(0).setQtyAllocated(qtyOrderedEach);
  337. int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  338. if (i > 0) {
  339. list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
  340. iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  341. } else {
  342. con = false;
  343. continue;
  344. }
  345. } else if (qty.compareTo(canQty) == 0) {
  346. list.get(0).setQtyAllocated(qtyOrderedEach);
  347. int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  348. if (i > 0) {
  349. list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
  350. iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  351. } else {
  352. con = false;
  353. continue;
  354. }
  355. } else if (qty.compareTo(canQty) == -1) {
  356. list.get(0).setQtyAllocated(allocatedEach.add(qty));
  357. int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  358. if (i > 0) {
  359. list.get(0).setLineStatus(Constant.ASN_STS.STS30.getValue());
  360. iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  361. con1 = false;
  362. con = false;
  363. }
  364. }
  365. }
  366. if (con == true) {
  367. WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
  368. // 修改 单头40
  369. wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
  370. int i = iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
  371. if (i >0) {
  372. if (sku.equals("Na2CO3")){
  373. wcsToWmsApiService.turnOffTheUnpacker();
  374. }
  375. if (sku.equals("C5H10OS2")){
  376. wcsToWmsApiService.turnOffTheUnpacker1();
  377. }
  378. if (sku.equals("(NaPO3)6")){
  379. wcsToWmsApiService.turnOffTheUnpacker2();
  380. }
  381. if (sku.equals("(NH4)2SO4")){
  382. wcsToWmsApiService.turnOffTheUnpacker3();
  383. }
  384. if (sku.equals("CH3CH2OCS2Na")){
  385. wcsToWmsApiService.turnOffTheUnpacker4();
  386. }
  387. };
  388. }
  389. if (con1 == false) {
  390. WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
  391. // 修改 单头30
  392. wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS30.getValue());
  393. iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
  394. }
  395. return AjaxResult.success("");
  396. }
  397. /**
  398. * 越库完成后回调
  399. *
  400. * @param wcsTask
  401. * @return
  402. */
  403. public AjaxResult completeTheCallbackYueKu(WcsTask wcsTask) {
  404. String asnNo = wcsTask.getExt1();
  405. WmsDocAsnDetails wmsDocAsnDetails = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsByAsnNoLineNo(asnNo, "1");
  406. String sku = wmsDocAsnDetails.getSku();
  407. //修改 入库单明细40
  408. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS40.getValue());
  409. wmsDocAsnDetails.setReceivedQty(wmsDocAsnDetails.getExpectedQty());
  410. wmsDocAsnDetails.setReceivedQtyEach(wmsDocAsnDetails.getExpectedQty());
  411. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
  412. // 修改 入库单单头40
  413. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  414. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS40.getValue());
  415. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  416. //查询对应的出库单
  417. WmsDocOrderHeader wmsDocOrderHeader = new WmsDocOrderHeader();
  418. wmsDocOrderHeader.setSoReference2(asnNo);
  419. List<WmsDocOrderHeader> wmsDocOrderHeaders = wmsDocOrderHeaderMapper.selectWmsDocOrderHeaderList2(wmsDocOrderHeader);
  420. String orderNo = wmsDocOrderHeaders.get(0).getOrderNo();
  421. //修改 出库单明细40
  422. List<WmsDocOrderDetails> list = iWmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(orderNo);
  423. list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
  424. list.get(0).setQtyAllocated(list.get(0).getQtyOrdered());
  425. list.get(0).setQtyAllocatedEach(list.get(0).getQtyOrdered());
  426. iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
  427. //修改 出库单单头40
  428. WmsDocOrderHeader wmsDocOrderHeader1 = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
  429. wmsDocOrderHeader1.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
  430. int i = iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader1);
  431. if (i >0) {
  432. if (sku.equals("Na2CO3")){
  433. wcsToWmsApiService.turnOffTheUnpacker();
  434. }
  435. if (sku.equals("C5H10OS2")){
  436. wcsToWmsApiService.turnOffTheUnpacker1();
  437. }
  438. if (sku.equals("(NaPO3)6")){
  439. wcsToWmsApiService.turnOffTheUnpacker2();
  440. }
  441. if (sku.equals("(NH4)2SO4")){
  442. wcsToWmsApiService.turnOffTheUnpacker3();
  443. }
  444. if (sku.equals("CH3CH2OCS2Na")){
  445. wcsToWmsApiService.turnOffTheUnpacker4();
  446. }
  447. };
  448. return AjaxResult.success("");
  449. }
  450. /**
  451. * 生成唯一任务号
  452. *
  453. * @return
  454. */
  455. public synchronized String generateTaskNo() {
  456. try {
  457. Thread.sleep(1);
  458. } catch (InterruptedException e) {
  459. e.printStackTrace();
  460. }
  461. return System.currentTimeMillis() + "";
  462. }
  463. }