|
@@ -1,13 +1,22 @@
|
|
package com.ruoyi.ams.xuankuang.service;
|
|
package com.ruoyi.ams.xuankuang.service;
|
|
|
|
|
|
|
|
+import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
|
|
|
|
+import com.ruoyi.ams.inv.service.IInvLotLocIdService;
|
|
|
|
+import com.ruoyi.ams.task.domain.WcsTask;
|
|
|
|
+import com.ruoyi.ams.task.service.IWcsTaskService;
|
|
import com.ruoyi.ams.xuankuang.domain.form.StackingCompletionForm;
|
|
import com.ruoyi.ams.xuankuang.domain.form.StackingCompletionForm;
|
|
|
|
+import com.ruoyi.ams.xuankuang.domain.form.TaskStatusForm;
|
|
import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
|
|
import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
|
|
|
|
+import com.ruoyi.base.constant.Constant;
|
|
|
|
+import com.ruoyi.base.domain.BaseLocationInfo;
|
|
import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
|
|
import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
|
|
|
|
+import com.ruoyi.base.service.IBaseLocationInfoService;
|
|
import com.ruoyi.base.service.IBaseSkuService;
|
|
import com.ruoyi.base.service.IBaseSkuService;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
* @author HuKang
|
|
* @author HuKang
|
|
@@ -21,7 +30,15 @@ public class WcsToWmsApiService {
|
|
@Autowired
|
|
@Autowired
|
|
private IBaseSkuService iBaseSkuService;
|
|
private IBaseSkuService iBaseSkuService;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private IBaseLocationInfoService iBaseLocationInfoService;
|
|
|
|
+ @Autowired
|
|
private BaseLocationInfoSubService baseLocationInfoSubService;
|
|
private BaseLocationInfoSubService baseLocationInfoSubService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private InvLotLocIdSubService InvLotLocIdSubService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private WcsTaskSubService wcsTaskSubService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IWcsTaskService iWcsTaskService;
|
|
|
|
|
|
|
|
|
|
* 组盘上报
|
|
* 组盘上报
|
|
@@ -29,7 +46,8 @@ public class WcsToWmsApiService {
|
|
* @param stackingCompletion
|
|
* @param stackingCompletion
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public AjaxResult stackingCompletion(StackingCompletionForm stackingCompletion) {
|
|
+ @Transactional
|
|
|
|
+ public synchronized AjaxResult stackingCompletion(StackingCompletionForm stackingCompletion) {
|
|
|
|
|
|
int reportType = stackingCompletion.getReportType();
|
|
int reportType = stackingCompletion.getReportType();
|
|
|
|
|
|
@@ -39,9 +57,30 @@ public class WcsToWmsApiService {
|
|
|
|
|
|
String sku = iBaseSkuService.selectBaseSkuByMaterialType(materialType).getSku();
|
|
String sku = iBaseSkuService.selectBaseSkuByMaterialType(materialType).getSku();
|
|
|
|
|
|
- int qty = stackingCompletion.getQty();
|
|
+ Double qty = (double) stackingCompletion.getQty();
|
|
|
|
|
|
String asnNo = stackingCompletion.getRelatedWmsNo();
|
|
String asnNo = stackingCompletion.getRelatedWmsNo();
|
|
|
|
+
|
|
|
|
+ String wcsNo = stackingCompletion.getWcsNo();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ WcsTask wcsTaskQuery = new WcsTask();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ wcsTaskQuery.setExt3(wcsNo);
|
|
|
|
+ WcsTask wcsTask = iWcsTaskService.selectWcsTaskByModel(wcsTaskQuery);
|
|
|
|
+ if (wcsTask != null) {
|
|
|
|
+ String locationTo = wcsTask.getLocationTo();
|
|
|
|
+ BaseLocationInfo baseLocationInfo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, Constant.WAREHOUSE_ID);
|
|
|
|
+ LocationCoordinateVo locationCoordinateVo = new LocationCoordinateVo();
|
|
|
|
+ locationCoordinateVo.setTaskNo(wcsTask.getTaskNo());
|
|
|
|
+ locationCoordinateVo.setLocationId(baseLocationInfo.getLocationNo());
|
|
|
|
+ locationCoordinateVo.setFloor(Integer.valueOf(baseLocationInfo.getShiftNo()));
|
|
|
|
+ locationCoordinateVo.setCol(Integer.valueOf(baseLocationInfo.getRowNo()));
|
|
|
|
+ locationCoordinateVo.setRow(Integer.valueOf(baseLocationInfo.getRowIndex()));
|
|
|
|
+ return AjaxResult.success("仓位获取成功!", locationCoordinateVo);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
BaseLocationLotattVO baseLocationLotattVO = baseLocationInfoSubService.recommendAReceiptLocation(sku);
|
|
BaseLocationLotattVO baseLocationLotattVO = baseLocationInfoSubService.recommendAReceiptLocation(sku);
|
|
@@ -49,12 +88,22 @@ public class WcsToWmsApiService {
|
|
AjaxResult.error("没有可以推荐的目标库位!");
|
|
AjaxResult.error("没有可以推荐的目标库位!");
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
+
|
|
-
|
|
+ String taskNo = "";
|
|
-
|
|
+ AjaxResult ajaxResult = wcsTaskSubService.addWcsTask(Constant.LOC_STAGE_CACHE.toString()
|
|
-
|
|
+ , baseLocationLotattVO.getId().toString()
|
|
|
|
+ , asnNo
|
|
|
|
+ , palletNo
|
|
|
|
+ , wcsNo);
|
|
|
|
+ if (!ajaxResult.isSuccess()) {
|
|
|
|
+ return ajaxResult;
|
|
|
|
+ }
|
|
|
|
+ taskNo = ajaxResult.get("data").toString();
|
|
|
|
+
|
|
|
|
+ InvLotLocIdSubService.initInv(Constant.LOC_STAGE_CACHE.toString(), sku, palletNo, asnNo, taskNo, qty);
|
|
|
|
|
|
LocationCoordinateVo locationCoordinateVo = new LocationCoordinateVo();
|
|
LocationCoordinateVo locationCoordinateVo = new LocationCoordinateVo();
|
|
|
|
+ locationCoordinateVo.setTaskNo(taskNo);
|
|
locationCoordinateVo.setLocationId(baseLocationLotattVO.getLocationNo());
|
|
locationCoordinateVo.setLocationId(baseLocationLotattVO.getLocationNo());
|
|
locationCoordinateVo.setFloor(Integer.valueOf(baseLocationLotattVO.getShiftNo()));
|
|
locationCoordinateVo.setFloor(Integer.valueOf(baseLocationLotattVO.getShiftNo()));
|
|
locationCoordinateVo.setCol(Integer.valueOf(baseLocationLotattVO.getRowNo()));
|
|
locationCoordinateVo.setCol(Integer.valueOf(baseLocationLotattVO.getRowNo()));
|
|
@@ -63,4 +112,18 @@ public class WcsToWmsApiService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+ * 任务状态反馈
|
|
|
|
+ *
|
|
|
|
+ * @param taskStatusForm
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public AjaxResult taskStatusResponse(TaskStatusForm taskStatusForm) {
|
|
|
|
+ String taskNo = taskStatusForm.getTaskNo();
|
|
|
|
+ int status = taskStatusForm.getStatus();
|
|
|
|
+ wcsTaskSubService.callBack(taskNo, status, null);
|
|
|
|
+ return AjaxResult.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|