WmsDocAsnSubService.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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.xuankuang.domain.form.AgvInTaskForm;
  7. import com.ruoyi.ams.xuankuang.domain.form.BillTaskForm;
  8. import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
  9. import com.ruoyi.base.constant.Constant;
  10. import com.ruoyi.base.domain.BaseSku;
  11. import com.ruoyi.base.service.IBaseSkuService;
  12. import com.ruoyi.common.core.domain.AjaxResult;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import org.springframework.web.bind.annotation.GetMapping;
  20. import org.springframework.web.bind.annotation.PathVariable;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.io.Console;
  24. import java.util.List;
  25. import java.util.Map;
  26. /**
  27. * 入库业务
  28. *
  29. * @author JWK
  30. * @version 1.0
  31. * @date 2023/3/30 10:51
  32. */
  33. @Slf4j
  34. @Service
  35. public class WmsDocAsnSubService {
  36. @Autowired
  37. private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
  38. @Autowired
  39. private IWmsDocAsnDetailsService iWmsDocAsnDetailsService;
  40. @Autowired
  41. private IBaseSkuService iBaseSkuService;
  42. @Autowired
  43. private WmsDocOrderSubService wmsDocOrderSubService;
  44. @Autowired
  45. private WcsToWmsApiService wcsToWmsApiService;
  46. @Autowired
  47. private WmsToWcsApiService wmsToWcsApiService;
  48. @Autowired
  49. private WcsTaskSubService wcsTaskSubService;
  50. /**
  51. * 工单任务下发接口
  52. * @param asnNo
  53. * @return
  54. */
  55. @Transactional
  56. public AjaxResult queryDocAsnDetails(@PathVariable("asnNo") String asnNo) {
  57. // 根据单号,和创建状态为00
  58. WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
  59. wmsDocAsnDetails.setAsnNo(asnNo);
  60. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
  61. List<WmsDocAsnDetails> list = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsList(wmsDocAsnDetails);
  62. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  63. boolean con = true;
  64. for (WmsDocAsnDetails details:list) {
  65. BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, details.getSku());
  66. BillTaskForm billTaskForm = new BillTaskForm();
  67. billTaskForm.setDocNo(details.getAsnNo());
  68. billTaskForm.setPackageType(Integer.valueOf(baseSku.getSkuType()));
  69. billTaskForm.setType(Constant.ASN_TYP.getByValue(wmsDocAsnHeader.getAsnType()).getValue1());
  70. billTaskForm.setNum(details.getExpectedQty().intValue());
  71. billTaskForm.setLineNo(details.getAsnLineNo().toString());
  72. if (Constant.ASN_TYP.getByValue(wmsDocAsnHeader.getAsnType()).getValue1() == 2){
  73. billTaskForm.setDest(Integer.parseInt(wmsDocAsnHeader.getAsnReference2()));
  74. AjaxResult ajaxResult = wcsTaskSubService.addCrossDatabaseTasks(asnNo);
  75. String msg = ajaxResult.getMsg();
  76. billTaskForm.setLineNo(msg);
  77. }
  78. billTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
  79. //调用工单下发
  80. WmsToWcsApiService wmsToWcsApiService = new WmsToWcsApiService();
  81. WcsResponseVo wcsResponseVo = wmsToWcsApiService.wmsBillTask(billTaskForm);
  82. if (!wcsResponseVo.isSuccess()) {
  83. con = false;
  84. wmsDocAsnHeader.setNotes(wcsResponseVo.getMessage());
  85. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  86. continue;
  87. }
  88. // 修改 明细行状态为10
  89. details.setLineStatus(Constant.ASN_STS.STS10.getValue());
  90. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(details);
  91. }
  92. if (con == true) {
  93. wmsDocAsnHeader.setNotes("");
  94. // 修改 单头10
  95. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS10.getValue());
  96. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  97. }
  98. if(wmsDocAsnHeader.getAsnStatus().equals(Constant.ASN_STS.STS10.getValue()) && wmsDocAsnHeader.getAsnType().equals(Constant.ASN_TYP.YK.getValue())){
  99. wmsDocOrderSubService.addCrossingOutboundOrder(asnNo);
  100. }
  101. return AjaxResult.success("", list);
  102. }
  103. /**
  104. * agv入库任务下发
  105. * @param asnNo
  106. * @return
  107. */
  108. @Transactional
  109. public AjaxResult agvInTask(@PathVariable("asnNo") String asnNo) {
  110. // 根据单号,和创建状态为00
  111. WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
  112. wmsDocAsnDetails.setAsnNo(asnNo);
  113. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
  114. List<WmsDocAsnDetails> list = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsList(wmsDocAsnDetails);
  115. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  116. boolean con = true;
  117. for (WmsDocAsnDetails details:list) {
  118. BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, details.getSku());
  119. AgvInTaskForm agvInTaskForm = new AgvInTaskForm();
  120. agvInTaskForm.setAgvId("1");
  121. agvInTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
  122. agvInTaskForm.setDocNo(asnNo);
  123. agvInTaskForm.setNum(details.getExpectedQty().intValue());
  124. // wms物料编码
  125. String sku = iBaseSkuService.selectBaseSkuByMaterialType("5").getSku();
  126. //托盘码
  127. String pallentNo = "1234567";
  128. // AjaxResult ajaxResult = wcsToWmsApiService.theBucketIsLoadedIntoTheLibrary(sku, asnNo, pallentNo, details.getExpectedQty());
  129. // Object data = ajaxResult.getData();
  130. // Map map = (Map) data;
  131. // String taskNo = map.get("taskNo").toString();
  132. // String row = map.get("row").toString();
  133. // String col = map.get("col").toString();
  134. // String floor = map.get("floor").toString();
  135. agvInTaskForm.setTaskNo("1234556");
  136. agvInTaskForm.setPalletId(pallentNo);
  137. agvInTaskForm.setRow(Integer.parseInt("2"));
  138. agvInTaskForm.setCol(Integer.parseInt("4"));
  139. agvInTaskForm.setFloor(Integer.parseInt("1"));
  140. //调用agv入库任务下发
  141. WmsToWcsApiService wmsToWcsApiService = new WmsToWcsApiService();
  142. WcsResponseVo wcsResponseVo = wmsToWcsApiService.wmsAgvInTask(agvInTaskForm);
  143. if (!wcsResponseVo.isSuccess()) {
  144. con = false;
  145. wmsDocAsnHeader.setNotes(wcsResponseVo.getMessage());
  146. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  147. continue;
  148. }
  149. // 修改 明细行状态为10
  150. details.setLineStatus(Constant.ASN_STS.STS10.getValue());
  151. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(details);
  152. }
  153. if (con == true) {
  154. wmsDocAsnHeader.setNotes("");
  155. // 修改 单头10
  156. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS10.getValue());
  157. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  158. }
  159. return AjaxResult.success("", list);
  160. }
  161. /**
  162. * agv回调wcs卸货完成
  163. * @param taskNo
  164. * @return
  165. */
  166. public AjaxResult wmsAgvCallbackIntask(String taskNo){
  167. wmsToWcsApiService.wmsAgvCallbackIntask(taskNo);
  168. return AjaxResult.success();
  169. }
  170. /**
  171. * agv回调wcs取货完成
  172. * @param wcsId
  173. * @return
  174. */
  175. public AjaxResult wmsAgvCallbackOuttask(String wcsId){
  176. wmsToWcsApiService.wmsAgvCallbackOuttask(wcsId);
  177. return AjaxResult.success();
  178. }
  179. }