feat(api): 重构WCS和WMS接口服务并添加货位重量查询功能
- 新增BasCargoSpaceWeight实体类用于货位重量统计 - 在BasCargoSpaceMapper中添加selectPlatByWeight方法查询每排重量 - 实现selectPlatByWeight方法的SQL查询逻辑 - 在IBasCargoSpaceService中添加selectPlatByWeight接口 - 实现selectPlatByWeight服务方法用于分配重量平衡的货位 - 更新RequestLogService接口添加sourceSystem参数 - 在ToErpApiController中添加接口调用日志记录功能 - 在ToMesApiController中添加接口调用日志记录功能 - 重构ToWcsApiController添加任务完成、重新分配等接口 - 移除IToWmsService中已废弃的接口方法 - 移除PdaController中已废弃的addInJob方法 - 在ToWcsServiceImpl中实现货位分配和任务处理逻辑 - 添加RequestEnterResponse用于返回货位分配结果
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package com.ruoyi.api.controller;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.bas.BasCustomer.domain.BasCustomer;
|
||||
import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.in.stockin.domain.vo.InstockInVo;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -22,20 +25,28 @@ public class ToErpApiController {
|
||||
|
||||
@Autowired
|
||||
private IToErpService toErpService;
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
|
||||
/**
|
||||
* 接收物料信息
|
||||
*/
|
||||
@PostMapping("/receiveMaterial")
|
||||
public AjaxResult receiveMaterial(@RequestBody BasProduct basProduct) {
|
||||
return toErpService.receiveMaterial(basProduct);
|
||||
AjaxResult ajaxResult = toErpService.receiveMaterial(basProduct);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(basProduct), "接收ERP物料信息",ajaxResult, "ERP");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
/**
|
||||
* 接收客户信息
|
||||
*/
|
||||
@PostMapping("/receiveCustomer")
|
||||
public AjaxResult receiveCustomer(@RequestBody BasCustomer basProduct) {
|
||||
return toErpService.receiveCustomer(basProduct);
|
||||
public AjaxResult receiveCustomer(@RequestBody BasCustomer basCustomer) {
|
||||
AjaxResult ajaxResult = toErpService.receiveCustomer(basCustomer);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(basCustomer), "接收ERP客户信息",ajaxResult, "ERP");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,7 +54,10 @@ public class ToErpApiController {
|
||||
*/
|
||||
@PostMapping("/receiveSupplier")
|
||||
public AjaxResult receiveSupplier(@RequestBody BasSupplier basSupplier) {
|
||||
return toErpService.receiveSupplier(basSupplier);
|
||||
AjaxResult ajaxResult = toErpService.receiveSupplier(basSupplier);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(basSupplier), "接收ERP供应商信息",ajaxResult, "ERP");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,7 +65,10 @@ public class ToErpApiController {
|
||||
*/
|
||||
@PostMapping("/receiveInBill")
|
||||
public AjaxResult receiveInBill(@RequestBody InstockInVo inStockinVo) {
|
||||
return toErpService.receiveInBill(inStockinVo);
|
||||
AjaxResult ajaxResult = toErpService.receiveInBill(inStockinVo);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(inStockinVo), "接收ERP入库单据信息",ajaxResult, "ERP");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,7 +76,10 @@ public class ToErpApiController {
|
||||
*/
|
||||
@PostMapping("/receiveOutBill")
|
||||
public AjaxResult receiveOutBill(@RequestBody OutStockoutVo outStockoutVo) {
|
||||
return toErpService.receiveOutBill(outStockoutVo);
|
||||
AjaxResult ajaxResult = toErpService.receiveOutBill(outStockoutVo);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(outStockoutVo), "接收ERP出库单据信息", ajaxResult, "ERP");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
/**
|
||||
* 单据信息回传
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.api.controller;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.api.service.IToMesService;
|
||||
import com.ruoyi.bas.BasCustomer.domain.BasCustomer;
|
||||
@@ -7,6 +8,8 @@ import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.in.stockin.domain.vo.InstockInVo;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -20,13 +23,18 @@ public class ToMesApiController {
|
||||
|
||||
@Autowired
|
||||
private IToMesService toMesService;
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
|
||||
/**
|
||||
* 接收物料信息
|
||||
*/
|
||||
@PostMapping("/receiveMaterial")
|
||||
public AjaxResult receiveMaterial(@RequestBody BasProduct basProduct) {
|
||||
return toMesService.receiveMaterial(basProduct);
|
||||
AjaxResult ajaxResult = toMesService.receiveMaterial(basProduct);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(basProduct), "接收MES物料信息",ajaxResult,"MES");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -34,7 +42,10 @@ public class ToMesApiController {
|
||||
*/
|
||||
@PostMapping("/receiveInBill")
|
||||
public AjaxResult receiveInBill(@RequestBody InstockInVo inStockinVo) {
|
||||
return toMesService.receiveInBill(inStockinVo);
|
||||
AjaxResult ajaxResult = toMesService.receiveInBill(inStockinVo);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(inStockinVo), "接收MES入库单据信息",ajaxResult,"MES");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,7 +53,10 @@ public class ToMesApiController {
|
||||
*/
|
||||
@PostMapping("/receiveOutBill")
|
||||
public AjaxResult receiveOutBill(@RequestBody OutStockoutVo outStockoutVo) {
|
||||
return toMesService.receiveOutBill(outStockoutVo);
|
||||
AjaxResult ajaxResult = toMesService.receiveOutBill(outStockoutVo);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(outStockoutVo), "接收MES出库单据信息",ajaxResult,"MES");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
/**
|
||||
* 单据信息回传
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package com.ruoyi.api.controller;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.domain.AgvMoveParam;
|
||||
import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.api.service.IToWcsService;
|
||||
import com.ruoyi.api.service.IToWmsService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@@ -19,14 +26,62 @@ public class ToWcsApiController {
|
||||
|
||||
@Autowired
|
||||
private IToWcsService toWcsService;
|
||||
@Autowired
|
||||
private IToWmsService toWmsService;
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
|
||||
|
||||
/**
|
||||
* 推送agv搬运作业
|
||||
* @return
|
||||
* 获取入库作业
|
||||
*/
|
||||
@PostMapping("/pushAgvMoveJob")
|
||||
public AjaxResult pushAgvMoveJob(@RequestBody AgvMoveParam agvMoveParam) {
|
||||
return toWcsService.pushAgvMoveJob(agvMoveParam);
|
||||
@RequestMapping("/requestEnterByTrayCodeAndEntranceId")
|
||||
public AjaxResult requestEnterByTrayCodeAndEntranceId(@RequestBody RequestEnter requestEnter) {
|
||||
AjaxResult ajaxResult = toWcsService.requestEnterByTrayCodeAndEntranceId(requestEnter);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "获取入库作业",ajaxResult,"WCS");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 入库、出库 任务完成回传
|
||||
* Map<String, String>
|
||||
* "wmsType": "任务类型" 1-入库 2-出库 3-agv搬运,
|
||||
* taskNo:出库 入库任务号
|
||||
* trayCode:托盘码
|
||||
* positionCode1:起点
|
||||
* positionCode2:终点
|
||||
* containerCode:容器编码
|
||||
*
|
||||
*/
|
||||
@PostMapping("/jobFinish")
|
||||
public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) {
|
||||
AjaxResult ajaxResult = toWcsService.jobFinish(wmsJobRequest);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(wmsJobRequest), "jobFinish",ajaxResult,"WCS");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 放货有货,重新分配货位
|
||||
*/
|
||||
@PostMapping("/reAssign")
|
||||
public AjaxResult reAssign(@RequestBody ReMaterialParam reMaterialParam) {
|
||||
AjaxResult ajaxResult = toWcsService.reAssign(reMaterialParam);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(reMaterialParam), "重新分配货位",ajaxResult,"WCS");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取货无货,重新分配物料
|
||||
*/
|
||||
@PostMapping("/reMaterial")
|
||||
public AjaxResult reMaterial(@RequestBody ReMaterialParam reMaterialParam) {
|
||||
AjaxResult ajaxResult = toWcsService.reMaterial(reMaterialParam);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(reMaterialParam), "重新分配物料",ajaxResult,"WCS");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,84 +23,9 @@ import java.util.Map;
|
||||
@RequestMapping("/api2wms")
|
||||
public class ToWmsApiController {
|
||||
|
||||
@Autowired
|
||||
private IToWmsService toWmsService;
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
|
||||
/**
|
||||
* 入库请求生成作业
|
||||
*/
|
||||
@PostMapping("/requestEnterByTrayCode")
|
||||
public AjaxResult requestEnterByTrayCode(@RequestBody RequestEnter requestEnter) {
|
||||
AjaxResult ajaxResult = toWmsService.requestEnterByTrayCode(requestEnter);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "入库任务创建请求",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求补码作业
|
||||
*/
|
||||
@RequestMapping("/requestByNoTrayCode")
|
||||
public AjaxResult requestByNoTrayCode(@RequestBody RequestEnter requestEnter) {
|
||||
AjaxResult ajaxResult = toWmsService.selectMydoJobByEntranceId(requestEnter);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "请求补码作业",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入库作业
|
||||
*/
|
||||
@RequestMapping("/requestEnterByTrayCodeAndEntranceId")
|
||||
public AjaxResult requestEnterByTrayCodeAndEntranceId(@RequestBody RequestEnter requestEnter) {
|
||||
AjaxResult ajaxResult = toWmsService.requestEnterByTrayCodeAndEntranceId(requestEnter);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "获取入库作业",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 入库、出库 任务完成回传
|
||||
* Map<String, String>
|
||||
* "wmsType": "任务类型" 1-入库 2-出库 3-agv搬运,
|
||||
* taskNo:出库 入库任务号
|
||||
* trayCode:托盘码
|
||||
* positionCode1:起点
|
||||
* positionCode2:终点
|
||||
* containerCode:容器编码
|
||||
*
|
||||
*/
|
||||
@PostMapping("/jobFinish")
|
||||
public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) {
|
||||
AjaxResult ajaxResult = toWmsService.jobFinish(wmsJobRequest);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(wmsJobRequest), "jobFinish",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 放货有货,重新分配货位
|
||||
*/
|
||||
@PostMapping("/reAssign")
|
||||
public AjaxResult reAssign(@RequestBody ReMaterialParam reMaterialParam) {
|
||||
AjaxResult ajaxResult = toWmsService.reAssign(reMaterialParam);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(reMaterialParam), "reAssign",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取货无货,重新分配物料
|
||||
*/
|
||||
@PostMapping("/reMaterial")
|
||||
public AjaxResult reMaterial(@RequestBody ReMaterialParam reMaterialParam) {
|
||||
AjaxResult ajaxResult = toWmsService.reMaterial(reMaterialParam);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(reMaterialParam), "reMaterial",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.ruoyi.api.service;
|
||||
|
||||
import com.ruoyi.api.domain.AgvMoveParam;
|
||||
import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -14,24 +17,6 @@ public interface IToWcsService {
|
||||
* 推送CTU出库任务
|
||||
*/
|
||||
void pushOutMydoJob();
|
||||
/**
|
||||
* 推送agv搬运作业
|
||||
* @return
|
||||
*/
|
||||
AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam);
|
||||
|
||||
/**
|
||||
* 推送流利架入库任务
|
||||
*/
|
||||
void pushInMydoJob();
|
||||
|
||||
/**
|
||||
* 出库作业确认
|
||||
* @param outMydojobMakeSureParam
|
||||
* @return
|
||||
*/
|
||||
AjaxResult outMydojobMakeSure(HashMap<String, String> outMydojobMakeSureParam);
|
||||
|
||||
/**
|
||||
* 取消任务
|
||||
* @param taskNo
|
||||
@@ -39,5 +24,20 @@ public interface IToWcsService {
|
||||
*/
|
||||
AjaxResult cancelTaskByTaskNo(String taskNo);
|
||||
|
||||
|
||||
/**
|
||||
* 入库任务请求根据托盘码和入口
|
||||
*/
|
||||
AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter);
|
||||
/**
|
||||
* 入出库任务完成
|
||||
*/
|
||||
AjaxResult jobFinish(WmsJobRequest wmsJobRequest);
|
||||
/**
|
||||
* 放货有货,重新分配货位
|
||||
*/
|
||||
AjaxResult reAssign(ReMaterialParam reMaterialParam);
|
||||
/**
|
||||
* 取货无货,重新分配单据
|
||||
*/
|
||||
AjaxResult reMaterial(ReMaterialParam reMaterialParam);
|
||||
}
|
||||
|
||||
@@ -11,36 +11,5 @@ import java.util.Map;
|
||||
* 作业统计 Service 接口
|
||||
*/
|
||||
public interface IToWmsService {
|
||||
/**
|
||||
* 入库任务请求根据托盘码
|
||||
*/
|
||||
AjaxResult requestEnterByTrayCode(RequestEnter requestEnter);
|
||||
|
||||
AjaxResult selectMydoJobByEntranceId(RequestEnter requestEnter);
|
||||
|
||||
/**
|
||||
* 入库、出库 任务完成回传
|
||||
* Map<String, String>
|
||||
* "wmsType": "任务类型" 1-入库 2-出库
|
||||
* taskNo:出库 入库任务号
|
||||
* trayCode:托盘码
|
||||
* positionCode1:起点
|
||||
* positionCode2:终点
|
||||
* containerCode:容器编码
|
||||
*
|
||||
*/
|
||||
AjaxResult jobFinish(WmsJobRequest wmsJobRequest);
|
||||
/**
|
||||
* 放货有货,重新分配货位
|
||||
*/
|
||||
AjaxResult reAssign(ReMaterialParam reMaterialParam);
|
||||
/**
|
||||
* 取货无货,重新分配物料
|
||||
*/
|
||||
AjaxResult reMaterial(ReMaterialParam reMaterialParam);
|
||||
|
||||
/**
|
||||
* 获取入库作业
|
||||
*/
|
||||
AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,30 @@
|
||||
package com.ruoyi.api.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.domain.AgvMoveParam;
|
||||
import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.RequestEnterResponse;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.api.service.IToWcsService;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.device.agv.domain.AgvContainerTask;
|
||||
import com.ruoyi.device.agv.service.IAgvContainerTaskService;
|
||||
import com.ruoyi.job.mydojob.domain.MydoJob;
|
||||
import com.ruoyi.job.mydojob.service.IMydoJobService;
|
||||
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
|
||||
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import com.ruoyi.out.outStockout.service.IOutStockoutService;
|
||||
import com.ruoyi.pda.domain.TrayCodeMsg;
|
||||
import com.ruoyi.pda.service.PdaService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -24,18 +35,22 @@ import java.util.*;
|
||||
* 作业统计 Service 实现
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ToWcsServiceImpl implements IToWcsService {
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
@Autowired
|
||||
private IMydoJobService mydoJobService;
|
||||
@Autowired
|
||||
private IAgvContainerTaskService agvContainerTaskService;
|
||||
private IMydoJobDetailService mydoJobDetailService;
|
||||
@Autowired
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
@Autowired
|
||||
private IOutStockoutService outStockoutService;
|
||||
@Autowired
|
||||
private PdaService pdaService;
|
||||
|
||||
public static final String PUSH_OUT_MYDO_JOB = "http://localhost:10012/wcs2Wms/api/receiveOutMydoJob";
|
||||
public static final String PUSH_IN_MYDO_JOB = "http://localhost:10012/wcs2Wms/api/receiveInMydoJob";
|
||||
public static final String PUSH_AGV_MOVE_JOB = "http://localhost:10012/agv/api/receiveAgvMoveJob";
|
||||
public static final String OUT_MYDOJOB_MS = "http://localhost:10012/wcs2Wms/api/outMydojobMakesure";
|
||||
public static final String CANCEL_MYDOJOB = "http://localhost:10012/wcs2Wms/api/cancelMydoJob";
|
||||
|
||||
|
||||
@@ -62,60 +77,6 @@ public class ToWcsServiceImpl implements IToWcsService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam) {
|
||||
agvMoveParam.setTaskNo(IdUtil.fastSimpleUUID());
|
||||
RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(agvMoveParam), "推送搬运任务");
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
AgvContainerTask agvContainerTask = new AgvContainerTask();
|
||||
agvContainerTask.setContainer(agvMoveParam.getContainerCode());
|
||||
agvContainerTask.setStartPoint(agvMoveParam.getStartPoint());
|
||||
agvContainerTask.setEndPoint(agvMoveParam.getEndPoint());
|
||||
agvContainerTask.setStatus("0");
|
||||
agvContainerTask.setTaskNo(agvMoveParam.getTaskNo());
|
||||
agvContainerTask.setCreateTime(new Date());
|
||||
agvContainerTaskService.insertAgvContainerTask(agvContainerTask);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
return AjaxResult.error(requestLog.getErrorDetails());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pushInMydoJob() {
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setInOrOut("1");
|
||||
mydoJobParam.setStatus("1");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (CollUtil.isNotEmpty(mydoJobs)){
|
||||
for (MydoJob mydoJob : mydoJobs) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务");
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
mydoJob.setStatus("2");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
}
|
||||
}
|
||||
mydoJobParam.setEntranceId("fluent");
|
||||
mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (CollUtil.isNotEmpty(mydoJobs)){
|
||||
for (MydoJob mydoJob : mydoJobs) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务");
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
mydoJob.setStatus("2");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult outMydojobMakeSure(HashMap<String, String> outMydojobMakeSureParam) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(OUT_MYDOJOB_MS, JSONUtil.toJsonStr(outMydojobMakeSureParam), "推送出库任务");
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
return AjaxResult.error(requestLog.getDuration());
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult cancelTaskByTaskNo(String taskNo) {
|
||||
@@ -128,5 +89,174 @@ public class ToWcsServiceImpl implements IToWcsService {
|
||||
return AjaxResult.error(requestLog.getErrorDetails());
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter) {
|
||||
HashMap<String, String> result = new HashMap<>();
|
||||
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
||||
return AjaxResult.error("托盘条码不能为空");
|
||||
}
|
||||
if (requestEnter.getHeight()==0) {
|
||||
return AjaxResult.error("未检测到入库高度");
|
||||
}
|
||||
/*if (requestEnter.getWeight() ==0){
|
||||
return AjaxResult.error("未检测到入库重量");
|
||||
}*/
|
||||
|
||||
log.info("扫码内容{},入库高度{}", requestEnter.getTrayCode(), requestEnter.getHeight());
|
||||
|
||||
MydoJob param = new MydoJob();
|
||||
param.setStatus("1");
|
||||
param.setTrayCode(requestEnter.getTrayCode());
|
||||
param.setWarehouseId(requestEnter.getWarehouseId());
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(param);
|
||||
if (CollUtil.isEmpty(mydoJobs)){
|
||||
//生成杂料入库任务
|
||||
TrayCodeMsg trayCodeMsg = new TrayCodeMsg();
|
||||
trayCodeMsg.setTrayCode(requestEnter.getTrayCode());
|
||||
trayCodeMsg.setWarehouseId(requestEnter.getWarehouseId());
|
||||
pdaService.zlin(trayCodeMsg);
|
||||
mydoJobs = mydoJobService.selectMydoJobListApi(param);
|
||||
if (CollUtil.isEmpty(mydoJobs)){
|
||||
return AjaxResult.error("杂料入库任务生成失败", requestEnter.getTrayCode());
|
||||
}
|
||||
}
|
||||
MydoJob mydoJob = mydoJobs.get(0);
|
||||
if(StrUtil.isEmpty(mydoJob.getCargoSpaceId())){
|
||||
//根据重量平衡 两排货位
|
||||
//查询重量
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
basCargoSpaceParam.setWarehouseId(requestEnter.getWarehouseId());
|
||||
basCargoSpaceParam.setRoadwayId(requestEnter.getRoadwayId());
|
||||
//找到重量小的排数
|
||||
Long plat = basCargoSpaceService.selectPlatByWeight(requestEnter);
|
||||
basCargoSpaceParam.setThePlatoon(plat);
|
||||
if (requestEnter.getHeight()==1){
|
||||
basCargoSpaceParam.setCargoHight("975");
|
||||
}else {
|
||||
basCargoSpaceParam.setCargoHight("1519");
|
||||
}
|
||||
//查找货位
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
if (ObjUtil.isNull(basCargoSpace)){
|
||||
//去除排的条件 再次查询货位
|
||||
basCargoSpaceParam.setThePlatoon(null);
|
||||
basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
if (ObjUtil.isNull(basCargoSpace)){
|
||||
return AjaxResult.error("没有空货位");
|
||||
}
|
||||
}
|
||||
|
||||
//修改作业状态为正执行
|
||||
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
mydoJob.setRoadwayId(requestEnter.getRoadwayId());
|
||||
mydoJob.setLineId(Convert.toStr(requestEnter.getWeight()));
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
//修改货位状态为已分配
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
}
|
||||
|
||||
//返回结果
|
||||
result.put("jobId", mydoJob.getJobId());
|
||||
result.put("taskNo", mydoJob.getTaskNo());
|
||||
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
||||
result.put("roadwayId", mydoJob.getRoadwayId());
|
||||
result.put("entranceId", mydoJob.getEntranceId());
|
||||
result.put("inOrOut", mydoJob.getInOrOut());
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) {
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
switch (wmsJobRequest.getWmsType()) {
|
||||
case "1":
|
||||
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
|
||||
return AjaxResult.error("任务号不能为空");
|
||||
}
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getJobId())) {
|
||||
return AjaxResult.error("任务Id不能为空");
|
||||
}
|
||||
//入库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
mydoJobParam.setJobId(wmsJobRequest.getJobId());
|
||||
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (inMydoJobs.isEmpty()) {
|
||||
return AjaxResult.error("任务不存在");
|
||||
}
|
||||
MydoJob inMydoJob = inMydoJobs.get(0);
|
||||
mydoJobService.manualCompleted(inMydoJob, 1);
|
||||
break;
|
||||
case "2":
|
||||
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
|
||||
return AjaxResult.error("任务号不能为空");
|
||||
}
|
||||
//出库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (outMydoJobs.isEmpty()) {
|
||||
return AjaxResult.error("任务不存在");
|
||||
}
|
||||
MydoJob outJob = outMydoJobs.get(0);
|
||||
outJob.setExecutionPhase("2");
|
||||
mydoJobService.updateMydoJob(outJob);
|
||||
if (outJob.getInOrOut().equals("23")){
|
||||
String[] jobIds = new String[]{outJob.getJobId()};
|
||||
mydoJobService.OuthandFinish(jobIds);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
log.error("作业类型错误");
|
||||
return AjaxResult.error(MessageUtils.message("error.message12"));
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult reAssign(ReMaterialParam reMaterialParam) {
|
||||
//重新分配货位
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId());
|
||||
//先标记原来货位有问题
|
||||
String cargoSpaceId = mydoJob.getCargoSpaceId();
|
||||
BasCargoSpace oldBasCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId);
|
||||
oldBasCargoSpace.setStatus("5");
|
||||
basCargoSpaceService.updateBasCargoSpace(oldBasCargoSpace);
|
||||
String warehouseId = mydoJob.getWarehouseId();
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
basCargoSpaceParam.setWarehouseId(warehouseId);
|
||||
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
if (basCargoSpace == null) {
|
||||
return AjaxResult.error("没有空货位");
|
||||
} else {
|
||||
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||
mydoJob.setFaultFlag("1");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
return AjaxResult.success(new RequestEnterResponse(basCargoSpace.getCargoSpaceId(), mydoJob.getTrayCode(), mydoJob.getJobId()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult reMaterial(ReMaterialParam reMaterialParam) {
|
||||
//重新分配物料
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId());
|
||||
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
|
||||
mydoJobDetailParam.setJobId(mydoJob.getJobId());
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
|
||||
String stockOutId = mydoJobDetails.get(0).getInOrOutId();
|
||||
// 作废作业
|
||||
mydoJobService.OuthandInvalidation(new String[]{mydoJob.getJobId()});
|
||||
//调用自动分配
|
||||
return outStockoutService.autoAllot(stockOutId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,28 +9,11 @@ import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.RequestEnterResponse;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.api.service.IToWmsService;
|
||||
import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasProduct.service.IBasProductService;
|
||||
import com.ruoyi.bas.BasProductCode.util.ProcodeUtils;
|
||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.container.service.IBasContainerService;
|
||||
import com.ruoyi.bas.roadway.domain.BasRoadway;
|
||||
import com.ruoyi.bas.roadway.service.IBasRoadwayService;
|
||||
import com.ruoyi.bas.tag.service.IBasTagService;
|
||||
import com.ruoyi.bas.taskNo.service.IBasTaskNoService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.device.agv.service.IAgvContainerTaskService;
|
||||
import com.ruoyi.in.erp.domain.TransferBillCallback;
|
||||
import com.ruoyi.in.erp.service.ITransferBillCallbackService;
|
||||
import com.ruoyi.in.stockin.domain.InStockin;
|
||||
import com.ruoyi.in.stockin.service.IInStockinService;
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
|
||||
import com.ruoyi.job.mydojob.domain.MydoJob;
|
||||
import com.ruoyi.job.mydojob.service.IMydoJobService;
|
||||
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
|
||||
@@ -46,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 作业统计 Service 实现
|
||||
@@ -66,186 +48,8 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
private PdaService pdaService;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult selectMydoJobByEntranceId(RequestEnter requestEnter) {
|
||||
MydoJob param = new MydoJob();
|
||||
param.setStatus("1");
|
||||
param.setEntranceId(requestEnter.getEntranceId());
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param);
|
||||
|
||||
HashMap<String, String> result = new HashMap<>();
|
||||
result.put("jobId", mydoJob.getJobId());
|
||||
result.put("taskNo", mydoJob.getTaskNo());
|
||||
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
||||
result.put("roadwayId", mydoJob.getRoadwayId());
|
||||
result.put("entranceId", mydoJob.getEntranceId());
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) {
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
switch (wmsJobRequest.getWmsType()) {
|
||||
case "1":
|
||||
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
|
||||
return AjaxResult.error("任务号不能为空");
|
||||
}
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getJobId())) {
|
||||
return AjaxResult.error("任务Id不能为空");
|
||||
}
|
||||
//入库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
mydoJobParam.setJobId(wmsJobRequest.getJobId());
|
||||
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (inMydoJobs.isEmpty()) {
|
||||
return AjaxResult.error("任务不存在");
|
||||
}
|
||||
MydoJob inMydoJob = inMydoJobs.get(0);
|
||||
mydoJobService.manualCompleted(inMydoJob, 1);
|
||||
break;
|
||||
case "2":
|
||||
|
||||
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
|
||||
return AjaxResult.error("任务号不能为空");
|
||||
}
|
||||
//出库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (outMydoJobs.isEmpty()) {
|
||||
return AjaxResult.error("任务不存在");
|
||||
}
|
||||
MydoJob outJob = outMydoJobs.get(0);
|
||||
outJob.setExecutionPhase("2");
|
||||
mydoJobService.updateMydoJob(outJob);
|
||||
if (outJob.getInOrOut().equals("23")){
|
||||
String[] jobIds = new String[]{outJob.getJobId()};
|
||||
mydoJobService.OuthandFinish(jobIds);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
log.error("作业类型错误");
|
||||
return AjaxResult.error(MessageUtils.message("error.message12"));
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult reAssign(ReMaterialParam reMaterialParam) {
|
||||
//重新分配货位
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId());
|
||||
//先标记原来货位有问题
|
||||
String cargoSpaceId = mydoJob.getCargoSpaceId();
|
||||
BasCargoSpace oldBasCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId);
|
||||
oldBasCargoSpace.setStatus("5");
|
||||
basCargoSpaceService.updateBasCargoSpace(oldBasCargoSpace);
|
||||
String warehouseId = mydoJob.getWarehouseId();
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
basCargoSpaceParam.setWarehouseId(warehouseId);
|
||||
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
if (basCargoSpace == null) {
|
||||
return AjaxResult.error("没有空货位");
|
||||
} else {
|
||||
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||
mydoJob.setFaultFlag("1");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
return AjaxResult.success(new RequestEnterResponse(basCargoSpace.getCargoSpaceId(), mydoJob.getTrayCode(), mydoJob.getJobId()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult reMaterial(ReMaterialParam reMaterialParam) {
|
||||
//重新分配物料
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId());
|
||||
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
|
||||
mydoJobDetailParam.setJobId(mydoJob.getJobId());
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
|
||||
String stockOutId = mydoJobDetails.get(0).getInOrOutId();
|
||||
// 作废作业
|
||||
mydoJobService.OuthandInvalidation(new String[]{mydoJob.getJobId()});
|
||||
//调用自动分配
|
||||
return outStockoutService.autoAllot(stockOutId);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter) {
|
||||
HashMap<String, String> result = new HashMap<>();
|
||||
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
||||
return AjaxResult.error("托盘条码不能为空");
|
||||
}
|
||||
if (requestEnter.getHeight()==0) {
|
||||
return AjaxResult.error("未检测到入库高度");
|
||||
}
|
||||
/*if (requestEnter.getWeight() ==0){
|
||||
return AjaxResult.error("未检测到入库重量");
|
||||
}*/
|
||||
|
||||
log.info("扫码内容{},入库高度{}", requestEnter.getTrayCode(), requestEnter.getHeight());
|
||||
|
||||
MydoJob param = new MydoJob();
|
||||
param.setStatus("1");
|
||||
param.setTrayCode(requestEnter.getTrayCode());
|
||||
param.setWarehouseId(requestEnter.getWarehouseId());
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(param);
|
||||
if (CollUtil.isEmpty(mydoJobs)){
|
||||
//生成杂料入库任务
|
||||
TrayCodeMsg trayCodeMsg = new TrayCodeMsg();
|
||||
trayCodeMsg.setTrayCode(requestEnter.getTrayCode());
|
||||
trayCodeMsg.setWarehouseId(requestEnter.getWarehouseId());
|
||||
pdaService.zlin(trayCodeMsg);
|
||||
mydoJobs = mydoJobService.selectMydoJobListApi(param);
|
||||
if (CollUtil.isEmpty(mydoJobs)){
|
||||
return AjaxResult.error("杂料入库任务生成失败", requestEnter.getTrayCode());
|
||||
}
|
||||
}
|
||||
MydoJob mydoJob = mydoJobs.get(0);
|
||||
if(StrUtil.isEmpty(mydoJob.getCargoSpaceId())){
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
basCargoSpaceParam.setWarehouseId(requestEnter.getWarehouseId());
|
||||
basCargoSpaceParam.setRoadwayId(requestEnter.getRoadwayId());
|
||||
if (requestEnter.getHeight()==1){
|
||||
basCargoSpaceParam.setCargoHight("975");
|
||||
}else {
|
||||
basCargoSpaceParam.setCargoHight("1519");
|
||||
}
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
if (ObjUtil.isNull(basCargoSpace)){
|
||||
return AjaxResult.error("没有空货位");
|
||||
}
|
||||
|
||||
//修改作业状态为正执行
|
||||
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
mydoJob.setRoadwayId(requestEnter.getRoadwayId());
|
||||
mydoJob.setLineId(Convert.toStr(requestEnter.getWeight()));
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
//修改货位状态为已分配
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
}
|
||||
|
||||
//返回结果
|
||||
result.put("jobId", mydoJob.getJobId());
|
||||
result.put("taskNo", mydoJob.getTaskNo());
|
||||
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
||||
result.put("roadwayId", mydoJob.getRoadwayId());
|
||||
result.put("entranceId", mydoJob.getEntranceId());
|
||||
result.put("inOrOut", mydoJob.getInOrOut());
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.bas.cargoSpace.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BasCargoSpaceWeight {
|
||||
private String thePlatoon;
|
||||
private String weightSum;
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.bas.cargoSpace.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpaceWeight;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
|
||||
import java.util.List;
|
||||
@@ -84,4 +85,10 @@ public interface BasCargoSpaceMapper extends BaseMapper<BasCargoSpace>
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListByRoadway(BasCargoSpace basCargoSpace);
|
||||
/**
|
||||
* 查询每排重量
|
||||
* @param basCargoSpaceParam
|
||||
* @return
|
||||
*/
|
||||
Double selectPlatByWeight(BasCargoSpace basCargoSpaceParam);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.bas.cargoSpace.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
|
||||
@@ -76,4 +77,10 @@ public interface IBasCargoSpaceService extends IService<BasCargoSpace>
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListByRoadway(BasCargoSpace basCargoSpace);
|
||||
/**
|
||||
* 获取要分配的货位
|
||||
* @param requestEnter
|
||||
* @return
|
||||
*/
|
||||
Long selectPlatByWeight(RequestEnter requestEnter);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.bas.cargoSpace.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpaceWeight;
|
||||
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
@@ -113,4 +116,20 @@ public class BasCargoSpaceServiceImpl extends ServiceImpl<BasCargoSpaceMapper,Ba
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceListByRoadway(basCargoSpace);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long selectPlatByWeight(RequestEnter requestEnter) {
|
||||
BasCargoSpace param = new BasCargoSpace();
|
||||
param.setWarehouseId(requestEnter.getWarehouseId());
|
||||
param.setRoadwayId(requestEnter.getRoadwayId());
|
||||
param.setThePlatoon(1L);
|
||||
Double platWeight1 = basCargoSpaceMapper.selectPlatByWeight(param);
|
||||
param.setThePlatoon(2L);
|
||||
Double platWeight2 = basCargoSpaceMapper.selectPlatByWeight(param);
|
||||
if (platWeight1 >= platWeight2){
|
||||
return 2L;
|
||||
}else {
|
||||
return 1L;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -76,5 +76,5 @@ public interface IRequestLogService
|
||||
* @param remark
|
||||
* @return
|
||||
*/
|
||||
public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult);
|
||||
public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult,String sourceSystem);
|
||||
}
|
||||
|
||||
@@ -154,12 +154,12 @@ public class RequestLogServiceImpl implements IRequestLogService
|
||||
* @return requestLog
|
||||
*/
|
||||
@Override
|
||||
public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult) {
|
||||
public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult,String sourceSystem) {
|
||||
RequestLog requestLog = new RequestLog();
|
||||
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
|
||||
requestLog.setRequestBody(param);
|
||||
requestLog.setSourceSystem("wms");
|
||||
requestLog.setTargetSystem("wcs");
|
||||
requestLog.setSourceSystem(sourceSystem);
|
||||
requestLog.setTargetSystem("WMS");
|
||||
requestLog.setEndpoint(remark);
|
||||
requestLog.setRequestMethod("post");
|
||||
requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
|
||||
|
||||
@@ -50,14 +50,6 @@ public class PdaController extends BaseController {
|
||||
private PdaService pdaService;
|
||||
|
||||
|
||||
/**
|
||||
* 入库扫码生成作业
|
||||
*/
|
||||
@RequestMapping("/addInJob")
|
||||
@ResponseBody
|
||||
public AjaxResult addInJob(@RequestBody RequestEnter requestEnter) {
|
||||
return pdaService.addInJob(requestEnter);
|
||||
}
|
||||
|
||||
@RequestMapping("/selectDetailByTray")
|
||||
@ResponseBody
|
||||
|
||||
@@ -14,7 +14,6 @@ public interface PdaService {
|
||||
|
||||
|
||||
|
||||
public AjaxResult addInJob(RequestEnter requestEnter);
|
||||
|
||||
public AjaxResult selectDetailByTray(TrayCodeMakeSure trayCodeMakeSure);
|
||||
|
||||
|
||||
@@ -58,21 +58,7 @@ public class PdaServiceImp implements PdaService {
|
||||
private BasStockMapper basStockMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public AjaxResult addInJob(RequestEnter requestEnter) {
|
||||
if(requestEnter.getEntranceId()!=null && "G1005".equals(requestEnter.getEntranceId())){
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setEntranceId(requestEnter.getEntranceId());
|
||||
mydoJob.setStatus("1");
|
||||
MydoJob mydoJob1 = mydoJobService.selectMydoJobByEntranceId(mydoJob);
|
||||
if(mydoJob1!=null){
|
||||
return AjaxResult.error("该入口已有补码作业");
|
||||
}
|
||||
}
|
||||
AjaxResult ajaxResult = iToWmsService.requestEnterByTrayCode(requestEnter);
|
||||
return ajaxResult;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult selectDetailByTray(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
|
||||
@@ -184,6 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and locked = 'N'
|
||||
and warehouse_id = #{warehouseId}
|
||||
and roadway_id = #{roadwayId}
|
||||
and cargo_hight = #{cargoHight}
|
||||
ORDER BY the_floor,the_column,the_platoon
|
||||
</select>
|
||||
<select id="selectBasCargoSpaceListByRoadway" parameterType="BasCargoSpace" resultMap="BasCargoSpaceResult">
|
||||
@@ -217,4 +218,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="spare7 != null and spare7 != ''"> and bs.spare7 = #{spare7}</if>
|
||||
<if test="stockStatus != null and stockStatus != ''"> and bs.stock_status = #{stockStatus}</if>
|
||||
</select>
|
||||
<select id="selectPlatByWeight" resultType="java.lang.Double">
|
||||
select sum(CAST(ISNULL(bs.net_weight, 0) AS FLOAT))
|
||||
from bas_cargo_space bcs
|
||||
LEFT join bas_stock bs on bcs.cargo_space_id = bs.cargo_space_id
|
||||
where bcs.warehouse_id = #{warehouseId}
|
||||
and bcs.roadway_id = #{roadwayId}
|
||||
and bcs.the_platoon = #{thePlatoon}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -104,7 +104,7 @@ public class SecurityConfig
|
||||
// 静态资源,可匿名访问
|
||||
.requestMatchers(HttpMethod.GET, "/", "/*.html", "/**.html", "/**.css", "/**.js", "/profile/**").permitAll()
|
||||
.requestMatchers("/swagger-ui.html", "/v3/api-docs/**", "/swagger-ui/**", "/druid/**").permitAll()
|
||||
.requestMatchers("/api/**","/api2wms/**","/api2erp/**","/api2mes/**").permitAll()
|
||||
.requestMatchers("/api/**","/api2wms/**","/api2erp/**","/api2mes/**","/api2wcs/**").permitAll()
|
||||
// 除上面外的所有请求全部需要鉴权认证
|
||||
.anyRequest().authenticated();
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user