WmsDocAsnSubService.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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.mapper.WmsDocAsnHeaderMapper;
  5. import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
  6. import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
  7. import com.ruoyi.ams.task.service.IWcsTaskService;
  8. import com.ruoyi.ams.xuankuang.domain.form.BillTaskForm;
  9. import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
  10. import com.ruoyi.base.constant.Constant;
  11. import com.ruoyi.base.domain.BaseSku;
  12. import com.ruoyi.base.service.IBaseSkuService;
  13. import com.ruoyi.base.utils.IdSequenceUtils;
  14. import com.ruoyi.common.core.domain.AjaxResult;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import org.springframework.web.bind.annotation.PathVariable;
  20. import java.util.List;
  21. /**
  22. * 入库业务
  23. *
  24. * @author JWK
  25. * @version 1.0
  26. * @date 2023/3/30 10:51
  27. */
  28. @Slf4j
  29. @Service
  30. public class WmsDocAsnSubService {
  31. @Autowired
  32. private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
  33. @Autowired
  34. private IWmsDocAsnDetailsService iWmsDocAsnDetailsService;
  35. @Autowired
  36. private IBaseSkuService iBaseSkuService;
  37. @Autowired
  38. private WmsDocOrderSubService wmsDocOrderSubService;
  39. @Autowired
  40. private WcsToWmsApiService wcsToWmsApiService;
  41. @Autowired
  42. private WmsToWcsApiService wmsToWcsApiService;
  43. @Autowired
  44. private WcsTaskSubService wcsTaskSubService;
  45. @Autowired
  46. private IdSequenceUtils idSequenceUtils;
  47. @Autowired
  48. private WmsDocAsnHeaderMapper wmsDocAsnHeaderMapper;
  49. @Autowired
  50. private IWcsTaskService wcsTaskService;
  51. /**
  52. * 工单任务下发接口
  53. * @param asnNo
  54. * @return
  55. */
  56. @Transactional
  57. public AjaxResult queryDocAsnDetails(@PathVariable("asnNo") String asnNo) {
  58. // 根据单号,和创建状态为00
  59. WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
  60. wmsDocAsnDetails.setAsnNo(asnNo);
  61. wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
  62. List<WmsDocAsnDetails> list = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsList(wmsDocAsnDetails);
  63. WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
  64. boolean con = true;
  65. for (WmsDocAsnDetails details:list) {
  66. BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, details.getSku());
  67. BillTaskForm billTaskForm = new BillTaskForm();
  68. billTaskForm.setDocNo(details.getAsnNo());
  69. billTaskForm.setPackageType(Integer.valueOf(baseSku.getSkuType()));
  70. billTaskForm.setType(Constant.ASN_TYP.getByValue(wmsDocAsnHeader.getAsnType()).getValue1());
  71. billTaskForm.setNum(details.getExpectedQty().intValue());
  72. billTaskForm.setLineNo(details.getAsnLineNo().toString());
  73. if (Constant.ASN_TYP.getByValue(wmsDocAsnHeader.getAsnType()).getValue1() == 2){
  74. billTaskForm.setDest(Integer.parseInt(wmsDocAsnHeader.getAsnReference2()));
  75. AjaxResult ajaxResult = wcsTaskSubService.addCrossDatabaseTasks(asnNo);
  76. String msg = ajaxResult.getMsg();
  77. billTaskForm.setLineNo(msg);
  78. }
  79. billTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
  80. //调用工单下发
  81. WmsToWcsApiService wmsToWcsApiService = new WmsToWcsApiService();
  82. WcsResponseVo wcsResponseVo = wmsToWcsApiService.wmsBillTask(billTaskForm);
  83. if (!wcsResponseVo.isSuccess()) {
  84. con = false;
  85. wmsDocAsnHeader.setNotes(wcsResponseVo.getMessage());
  86. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  87. continue;
  88. }
  89. // 修改 明细行状态为10
  90. details.setLineStatus(Constant.ASN_STS.STS10.getValue());
  91. iWmsDocAsnDetailsService.updateWmsDocAsnDetails(details);
  92. }
  93. if (con == true) {
  94. wmsDocAsnHeader.setNotes("");
  95. // 修改 单头10
  96. wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS10.getValue());
  97. iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
  98. }
  99. if(wmsDocAsnHeader.getAsnStatus().equals(Constant.ASN_STS.STS10.getValue()) && wmsDocAsnHeader.getAsnType().equals(Constant.ASN_TYP.YK.getValue())){
  100. wmsDocOrderSubService.addCrossingOutboundOrder(asnNo);
  101. }
  102. return AjaxResult.success("", list);
  103. }
  104. /**
  105. * agv回调wcs卸货完成
  106. * @param taskNo
  107. * @return
  108. */
  109. public AjaxResult wmsAgvCallbackIntask(String taskNo){
  110. wmsToWcsApiService.wmsAgvCallbackIntask(taskNo);
  111. return AjaxResult.success();
  112. }
  113. /**
  114. * agv回调wcs取货完成
  115. * @param wcsId
  116. * @return
  117. */
  118. public AjaxResult wmsAgvCallbackOuttask(String wcsId){
  119. wmsToWcsApiService.wmsAgvCallbackOuttask(wcsId);
  120. return AjaxResult.success();
  121. }
  122. }