流利架 入库出库逻辑修改

This commit is contained in:
liuhanqing
2025-07-31 13:37:58 +08:00
parent e1f0f8f35e
commit 58c3822e07
18 changed files with 156 additions and 65 deletions

View File

@@ -30,9 +30,9 @@ public class ToWcsApiController {
/** /**
* 推送CTU流利架空料箱入库任务 * 推送CTU流利架空料箱入库任务
*/ */
@PostMapping("/pushInMydoJob") @Scheduled(fixedDelay=10000)
public void pushInMydoJob(String trayCode) { public void pushInMydoJob() {
toWcsService.pushInMydoJob(trayCode); toWcsService.pushInMydoJob();
} }
/** /**

View File

@@ -27,11 +27,20 @@ public class ToWmsApiController {
/** /**
* 入库任务请求 * 入库任务请求
*/ */
@PostMapping("/requestEnter") @PostMapping("/requestEnterByTrayCode")
public AjaxResult requestEnter(@RequestBody MydoJob mydoJob) { public AjaxResult requestEnterByTrayCode(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.requestEnter(mydoJob); AjaxResult ajaxResult = toWmsService.requestEnterByTrayCode(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJob"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJobByTrayCode",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); requestLogService.insertRequestLog(requestLog);
return ajaxResult;
}
/**
* 入库任务请求
*/
@PostMapping("/requestEnterByEnterId")
public AjaxResult requestEnterByEnterId(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.requestEnterByEnterId(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJobByEnterId",ajaxResult);
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }
@@ -42,8 +51,7 @@ public class ToWmsApiController {
@PostMapping("/startSignal") @PostMapping("/startSignal")
public AjaxResult startSignal(@RequestBody MydoJob mydoJob) { public AjaxResult startSignal(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.startSignal(mydoJob); AjaxResult ajaxResult = toWmsService.startSignal(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "startSignal"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "startSignal",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }
@@ -62,8 +70,7 @@ public class ToWmsApiController {
@PostMapping("/jobFinish") @PostMapping("/jobFinish")
public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) { public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) {
AjaxResult ajaxResult = toWmsService.jobFinish(wmsJobRequest); AjaxResult ajaxResult = toWmsService.jobFinish(wmsJobRequest);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(wmsJobRequest), "jobFinish"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(wmsJobRequest), "jobFinish",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }
@@ -74,8 +81,7 @@ public class ToWmsApiController {
@PostMapping("/reAssign") @PostMapping("/reAssign")
public AjaxResult reAssign(@RequestBody MydoJob mydoJob) { public AjaxResult reAssign(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.reAssign(mydoJob); AjaxResult ajaxResult = toWmsService.reAssign(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reAssign"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reAssign",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }
@@ -86,8 +92,7 @@ public class ToWmsApiController {
@PostMapping("/reMaterial") @PostMapping("/reMaterial")
public AjaxResult reMaterial(@RequestBody MydoJob mydoJob) { public AjaxResult reMaterial(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.reMaterial(mydoJob); AjaxResult ajaxResult = toWmsService.reMaterial(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reMaterial"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reMaterial",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }
@@ -100,8 +105,7 @@ public class ToWmsApiController {
@PostMapping("/getJob") @PostMapping("/getJob")
public AjaxResult getJob(@RequestBody MydoJob mydoJob) { public AjaxResult getJob(@RequestBody MydoJob mydoJob) {
AjaxResult ajaxResult = toWmsService.getJob(mydoJob); AjaxResult ajaxResult = toWmsService.getJob(mydoJob);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "getJob"); RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "getJob",ajaxResult);
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
requestLogService.insertRequestLog(requestLog); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }

View File

@@ -5,6 +5,8 @@ import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojob.domain.MydoJob;
import java.util.HashMap;
/** /**
* 作业统计 Service 接口 * 作业统计 Service 接口
*/ */
@@ -15,5 +17,7 @@ public interface IToWcsService {
AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest); AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest);
void pushInMydoJob(String trayCode); void pushInMydoJob();
AjaxResult outMydojobMakeSure(HashMap<String, String> outMydojobMakeSureParam);
} }

View File

@@ -11,7 +11,8 @@ import java.util.Map;
*/ */
public interface IToWmsService { public interface IToWmsService {
AjaxResult requestEnter(MydoJob mydoJob); AjaxResult requestEnterByTrayCode(MydoJob mydoJob);
AjaxResult requestEnterByEnterId(MydoJob mydoJob);
AjaxResult jobFinish(WmsJobRequest wmsJobRequest); AjaxResult jobFinish(WmsJobRequest wmsJobRequest);

View File

@@ -1,5 +1,6 @@
package com.ruoyi.api.service.impl; package com.ruoyi.api.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
@@ -39,9 +41,10 @@ public class ToWcsServiceImpl implements IToWcsService {
@Autowired @Autowired
private IMydoJobService mydoJobService; private IMydoJobService mydoJobService;
public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/agv/api/receiveOutMydoJob"; public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveOutMydoJob";
public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/agv/api/receiveInMydoJob"; public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/agv/wcs2Wms/api/receiveInMydoJob";
public static final String PUSH_AGV_MOVE_JOB = "http://localhost:8081/agv/api/receiveAgvMoveJob"; public static final String PUSH_AGV_MOVE_JOB = "http://localhost:8081/api/receiveAgvMoveJob";
public static final String OUT_MYDOJOB_MS = "http://localhost:8081/wcs2Wms/api/outMydojobMakesure";
@Override @Override
@@ -75,14 +78,30 @@ public class ToWcsServiceImpl implements IToWcsService {
} }
@Override @Override
public void pushInMydoJob(String trayCode) { public void pushInMydoJob() {
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCode); MydoJob mydoJobParam = new MydoJob();
if (ObjUtil.isNotNull(mydoJob)){ mydoJobParam.setInOrOut("1");
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务"); mydoJobParam.setStatus("1");
if ("1".equals(requestLog.getIsSuccessful())){ mydoJobParam.setExitId("fluent");
mydoJob.setStatus("2"); mydoJobParam.setEntranceId("fluent");
mydoJobService.updateMydoJob(mydoJob); 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);
}
} }
} }
} }
@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());
}
} }

View File

@@ -77,8 +77,7 @@ public class ToWmsServiceImpl implements IToWmsService {
@Override @Override
public AjaxResult requestEnterByTrayCode(MydoJob param) {
public AjaxResult requestEnter(MydoJob param) {
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTrayCode(param.getTrayCode()); mydoJobParam.setTrayCode(param.getTrayCode());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
@@ -95,6 +94,24 @@ public class ToWmsServiceImpl implements IToWmsService {
return AjaxResult.success(mydoJob); return AjaxResult.success(mydoJob);
} }
@Override
public AjaxResult requestEnterByEnterId(MydoJob param) {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setEntranceId(param.getEntranceId());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if(mydoJobs.isEmpty()){
return AjaxResult.warn(MessageUtils.message("warn.message"));
}
MydoJob mydoJob = mydoJobs.get(0);
if ("1".equals(mydoJob.getExecutionPhase())){
mydoJob.setExecutionPhase("2");
mydoJob.setTrayCode(param.getTrayCode());
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
}
return AjaxResult.success(mydoJob);
}
@Override @Override
public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) { public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) {
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();

View File

@@ -231,7 +231,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(job.getWarehouseId()); BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(job.getWarehouseId());
if("2".equals(basWarehouse.getWarehouseType())) { if("2".equals(basWarehouse.getWarehouseType())) {
if ("1".equals(job.getStatus()) || "2".equals(job.getStatus())) { if ("1".equals(job.getStatus()) || "2".equals(job.getStatus())) {
return AjaxResult.warn(MessageUtils.message("warn.message1")); return AjaxResult.warn(MessageUtils.message("warn.message13"));
} }
} }
if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) { if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) {

View File

@@ -1,6 +1,8 @@
package com.ruoyi.log.service; package com.ruoyi.log.service;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.log.domain.RequestLog; import com.ruoyi.log.domain.RequestLog;
/** /**
@@ -74,5 +76,5 @@ public interface IRequestLogService
* @param remark * @param remark
* @return * @return
*/ */
public RequestLog getRequestLog(String param, String remark); public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult);
} }

View File

@@ -10,6 +10,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
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 com.ruoyi.log.mapper.RequestLogMapper; import com.ruoyi.log.mapper.RequestLogMapper;
@@ -23,6 +24,7 @@ import com.ruoyi.log.service.IRequestLogService;
* @date 2025-07-02 * @date 2025-07-02
*/ */
@Service @Service
@Slf4j
public class RequestLogServiceImpl implements IRequestLogService public class RequestLogServiceImpl implements IRequestLogService
{ {
@Autowired @Autowired
@@ -61,7 +63,12 @@ public class RequestLogServiceImpl implements IRequestLogService
@Override @Override
public int insertRequestLog(RequestLog requestLog) public int insertRequestLog(RequestLog requestLog)
{ {
return requestLogMapper.insertRequestLog(requestLog); if (requestLog.getIsSuccessful().equals("1")){
return requestLogMapper.insertRequestLog(requestLog);
}else {
log.error("请求失败:" + requestLog.getErrorDetails());
return 0;
}
} }
/** /**
@@ -138,7 +145,7 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setIsSuccessful("0"); requestLog.setIsSuccessful("0");
requestLog.setResponseStatus("0"); requestLog.setResponseStatus("0");
} finally { } finally {
requestLogMapper.insertRequestLog(requestLog); insertRequestLog(requestLog);
} }
return requestLog; return requestLog;
} }
@@ -149,7 +156,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return requestLog * @return requestLog
*/ */
@Override @Override
public RequestLog getRequestLog(String param, String remark) { public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult) {
RequestLog requestLog = new RequestLog(); RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setRequestBody(param); requestLog.setRequestBody(param);
@@ -159,7 +166,13 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setRequestMethod("post"); requestLog.setRequestMethod("post");
requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS))); requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setIsSuccessful("1"); requestLog.setResponseStatus("1");
if (ajaxResult.isSuccess()){
requestLog.setIsSuccessful("1");
}else {
requestLog.setIsSuccessful("0");
}
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
return requestLog; return requestLog;
} }
} }

View File

@@ -18,6 +18,8 @@ import com.ruoyi.bas.tag.domain.BasTag;
import com.ruoyi.bas.tag.service.IBasTagService; import com.ruoyi.bas.tag.service.IBasTagService;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.out.tagTask.domain.ExecuteSocket; import com.ruoyi.out.tagTask.domain.ExecuteSocket;
import com.ruoyi.pda.domain.TrayCodeMakeSure; import com.ruoyi.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.domain.TrayCodeMsg;
@@ -46,6 +48,8 @@ public class TagTaskServiceImpl implements ITagTaskService {
private IBasTagService basTagService; private IBasTagService basTagService;
@Autowired @Autowired
private PdaService pdaService; private PdaService pdaService;
@Autowired
private IMydoJobService mydoJobService;
private HashMap<String, ExecuteSocket> tagSockteMap = new HashMap<>(); private HashMap<String, ExecuteSocket> tagSockteMap = new HashMap<>();
@@ -242,12 +246,23 @@ public class TagTaskServiceImpl implements ITagTaskService {
String type = s.substring(4, 6);//指令类型 01是下发成功反馈 12是拍灭绿灯指令 String type = s.substring(4, 6);//指令类型 01是下发成功反馈 12是拍灭绿灯指令
if ("12".equals(type)) { if ("12".equals(type)) {
//12为 绿色拍灯指令 //12为 绿色拍灯指令
//生成agv空料箱入库作业 MydoJob mydoJobParam = new MydoJob();
TrayCodeMsg trayCodeMsg = new TrayCodeMsg(); mydoJobParam.setInOrOut("1");
trayCodeMsg.setTrayCode(IdUtil.fastSimpleUUID()); mydoJobParam.setExitId("fluent");
trayCodeMsg.setWarehouseId("02"); List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
trayCodeMsg.setEntranceId(basTag.getPickAdd()); if (CollUtil.isEmpty(mydoJobs)){
pdaService.emptyBoxIn(trayCodeMsg); //生成agv空料箱入库作业
TrayCodeMsg trayCodeMsg = new TrayCodeMsg();
trayCodeMsg.setTrayCode(IdUtil.fastSimpleUUID());
trayCodeMsg.setWarehouseId("02");
trayCodeMsg.setEntranceId(basTag.getPickAdd());
pdaService.emptyBoxIn(trayCodeMsg);
}else {
MydoJob mydoJob = mydoJobs.get(0);
mydoJob.setEntranceId(basTag.getPickAdd());
mydoJobService.updateMydoJob(mydoJob);
}
} }
} }
} }

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer; import com.ruoyi.bas.container.domain.BasContainer;
@@ -102,6 +103,8 @@ public class PdaServiceImp implements PdaService {
private IBasWarehouseService basWarehouseService; private IBasWarehouseService basWarehouseService;
@Autowired @Autowired
private IBasContainerService basContainerService; private IBasContainerService basContainerService;
@Autowired
private IToWcsService iToWcsService;
/** /**
* 空托盘入库 * 空托盘入库
@@ -306,15 +309,14 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam); List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity())); boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) { if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1"); map.put("v_type", "1");
pdaMapper.outMakeSure(map); pdaMapper.outMakeSure(map);
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
//通知wcs 出库确认
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString()); return AjaxResult.success(map.get("v_resultmsg").toString());
} else { } else {
return AjaxResult.warn(map.get("v_resultmsg").toString()); return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -383,7 +385,7 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam); List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity())); boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) { if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
@@ -392,6 +394,7 @@ public class PdaServiceImp implements PdaService {
pdaMapper.outMakeSure(map); pdaMapper.outMakeSure(map);
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString()); return AjaxResult.success(map.get("v_resultmsg").toString());
} else { } else {
return AjaxResult.warn(map.get("v_resultmsg").toString()); return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -434,12 +437,13 @@ public class PdaServiceImp implements PdaService {
} }
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId()); List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId());
if (mydoJobDetails.stream().allMatch(x -> "1".equals(x.getSpare3()))) { if (mydoJobDetails.stream().allMatch(x -> "1".equals(x.getSpare3()))) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map); pdaMapper.checkMakeSure(map);
String result = map.get("v_result").toString(); String result = map.get("v_result").toString();
if ("10".equals(result)) { if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString()); return AjaxResult.success(map.get("v_resultmsg").toString());
} else { } else {
return AjaxResult.warn(map.get("v_resultmsg").toString()); return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -476,6 +480,8 @@ public class PdaServiceImp implements PdaService {
private void deleteTagTask(TrayCodeMakeSure trayCodeMakeSure, BasWarehouse basWarehouse) { private void deleteTagTask(TrayCodeMakeSure trayCodeMakeSure, BasWarehouse basWarehouse) {
if ("2".equals(basWarehouse.getWarehouseType())) { if ("2".equals(basWarehouse.getWarehouseType())) {
BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode()); BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode());
basTag.setTrayCode("");
basTagService.updateBasTag(basTag);
//删除电子标签 //删除电子标签
TagTask param = new TagTask(); TagTask param = new TagTask();
param.setTagId(basTag.getId()); param.setTagId(basTag.getId());
@@ -485,6 +491,13 @@ public class PdaServiceImp implements PdaService {
.map(TagTask::getId) .map(TagTask::getId)
.toArray(Long[]::new)); .toArray(Long[]::new));
} }
//通知wcs出库确认成功
HashMap<String, String> outMydojobMakeSureParam = new HashMap<>();
outMydojobMakeSureParam.put("trayCode", trayCodeMakeSure.getTrayCode());
AjaxResult ajaxResult = iToWcsService.outMydojobMakeSure(outMydojobMakeSureParam);
if (!ajaxResult.isSuccess()){
throw new RuntimeException(ajaxResult.toString());
}
} }
} }

View File

@@ -50,6 +50,7 @@ table.result.success=查询成功
#warn message #warn message
warn.message=任务不存在 warn.message=任务不存在
warn.message1=任务已开始 warn.message1=任务已开始
warn.message13=任务未开始
warn.message2=子任务不存在 warn.message2=子任务不存在
warn.message3=暂不支持的任务类型 warn.message3=暂不支持的任务类型
warn.message4=单据不存在 warn.message4=单据不存在

View File

@@ -79,8 +79,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="inOrOut != null and inOrOut != ''"> and mj.in_or_out = #{inOrOut}</if> <if test="inOrOut != null and inOrOut != ''"> and mj.in_or_out = #{inOrOut}</if>
<if test="startTime != null and startTime != ''"> and mj.start_time like concat('%', #{startTime}, '%')</if> <if test="startTime != null and startTime != ''"> and mj.start_time like concat('%', #{startTime}, '%')</if>
<if test="finishTime != null and finishTime != ''"> and mj.finish_time like concat('%', #{finishTime}, '%')</if> <if test="finishTime != null and finishTime != ''"> and mj.finish_time like concat('%', #{finishTime}, '%')</if>
<if test="entranceId != null and entranceId != ''"> and mj.entrance_id = #{entranceId}</if> <if test="entranceId != null and entranceId != ''"> and mj.entrance_id like concat('%',#{entranceId},'%')</if>
<if test="exitId != null and exitId != ''"> and mj.exit_id = #{exitId}</if> <if test="exitId != null and exitId != ''"> and mj.exit_id like concat('%', #{exitId}, '%')</if>
<if test="classId != null and classId != ''"> and mj.class_id = #{classId}</if> <if test="classId != null and classId != ''"> and mj.class_id = #{classId}</if>
<if test="warehouseId != null and warehouseId != ''"> and mj.warehouse_id = #{warehouseId}</if> <if test="warehouseId != null and warehouseId != ''"> and mj.warehouse_id = #{warehouseId}</if>
<if test="faultFlag != null and faultFlag != ''"> and mj.fault_flag = #{faultFlag}</if> <if test="faultFlag != null and faultFlag != ''"> and mj.fault_flag = #{faultFlag}</if>
@@ -216,7 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="pointOut" parameterType="java.util.Map" statementType="CALLABLE"> <select id="pointOut" parameterType="java.util.Map" statementType="CALLABLE">
{call point_out( {call proc_point_out(
#{stockId,jdbcType=VARCHAR,mode=IN}, #{stockId,jdbcType=VARCHAR,mode=IN},
#{exitId,jdbcType=VARCHAR,mode=IN}, #{exitId,jdbcType=VARCHAR,mode=IN},
#{v_result,mode=OUT,jdbcType=INTEGER}, #{v_result,mode=OUT,jdbcType=INTEGER},

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.outStockoutDetail.mapper.OutStockoutDetailMapper"> <mapper namespace="com.ruoyi.out.outStockoutDetail.mapper.OutStockoutDetailMapper">
<resultMap type="OutStockoutDetail" id="OutStockoutDetailResult"> <resultMap type="OutStockoutDetail" id="OutStockoutDetailResult">
<result property="stockoutDetailId" column="stockout_detail_id" /> <result property="stockoutDetailId" column="stockout_detail_id" />
<result property="stockoutGuid" column="stockout_guid" /> <result property="stockoutGuid" column="stockout_guid" />
@@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectOutStockoutDetailList" parameterType="OutStockoutDetail" resultMap="OutStockoutDetailResult"> <select id="selectOutStockoutDetailList" parameterType="OutStockoutDetail" resultMap="OutStockoutDetailResult">
<include refid="selectOutStockoutDetailVo"/> <include refid="selectOutStockoutDetailVo"/>
<where> <where>
<if test="stockoutDetailId != null and stockoutDetailId != ''"> and stockout_detail_id = #{stockoutDetailId}</if> <if test="stockoutDetailId != null and stockoutDetailId != ''"> and stockout_detail_id = #{stockoutDetailId}</if>
<if test="stockoutGuid != null and stockoutGuid != ''"> and stockout_guid = #{stockoutGuid}</if> <if test="stockoutGuid != null and stockoutGuid != ''"> and stockout_guid = #{stockoutGuid}</if>
<if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</if> <if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</if>
@@ -95,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="printDate != null and printDate != ''"> and d.print_date = #{printDate}</if> <if test="printDate != null and printDate != ''"> and d.print_date = #{printDate}</if>
</where> </where>
</select> </select>
<select id="selectOutStockoutDetailByStockoutDetailId" parameterType="String" resultMap="OutStockoutDetailResult"> <select id="selectOutStockoutDetailByStockoutDetailId" parameterType="String" resultMap="OutStockoutDetailResult">
<include refid="selectOutStockoutDetailVo"/> <include refid="selectOutStockoutDetailVo"/>
where stockout_detail_id = #{stockoutDetailId} where stockout_detail_id = #{stockoutDetailId}
@@ -202,7 +202,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="erpStockoutId != null">erp_stockout_id = #{erpStockoutId},</if> <if test="erpStockoutId != null">erp_stockout_id = #{erpStockoutId},</if>
<if test="unit != null">unit = #{unit},</if> <if test="unit != null">unit = #{unit},</if>
<if test="spec != null">spec = #{spec},</if> <if test="spec != null">spec = #{spec},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if> <if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="cargoNo != null">cargo_no = #{cargoNo},</if> <if test="cargoNo != null">cargo_no = #{cargoNo},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
@@ -216,7 +215,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<delete id="deleteOutStockoutDetailByStockoutDetailIds" parameterType="String"> <delete id="deleteOutStockoutDetailByStockoutDetailIds" parameterType="String">
delete from out_stockout_detail where stockout_detail_id in delete from out_stockout_detail where stockout_detail_id in
<foreach item="stockoutDetailId" collection="array" open="(" separator="," close=")"> <foreach item="stockoutDetailId" collection="array" open="(" separator="," close=")">
#{stockoutDetailId} #{stockoutDetailId}
</foreach> </foreach>
@@ -233,4 +232,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join bas_product bp on d.product_id = bp.product_id left join bas_product bp on d.product_id = bp.product_id
where d.stockout_guid = #{stockoutGuid} where d.stockout_guid = #{stockoutGuid}
</select> </select>
</mapper> </mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.outStockoutFinish.mapper.OutStockoutFinishMapper"> <mapper namespace="com.ruoyi.out.outStockoutFinish.mapper.OutStockoutFinishMapper">
<resultMap type="OutStockoutFinish" id="OutStockoutFinishResult"> <resultMap type="OutStockoutFinish" id="OutStockoutFinishResult">
<result property="stockoutGuid" column="stockout_guid" /> <result property="stockoutGuid" column="stockout_guid" />
<result property="stockoutId" column="stockout_id" /> <result property="stockoutId" column="stockout_id" />
@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectOutStockoutFinishList" parameterType="OutStockoutFinish" resultMap="OutStockoutFinishResult"> <select id="selectOutStockoutFinishList" parameterType="OutStockoutFinish" resultMap="OutStockoutFinishResult">
<include refid="selectOutStockoutFinishVo"/> <include refid="selectOutStockoutFinishVo"/>
<where> <where>
<if test="stockoutGuid != null and stockoutGuid != ''"> and stockout_guid = #{stockoutGuid}</if> <if test="stockoutGuid != null and stockoutGuid != ''"> and stockout_guid = #{stockoutGuid}</if>
<if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</if> <if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</if>
<if test="outType != null and outType != ''"> and out_type = #{outType}</if> <if test="outType != null and outType != ''"> and out_type = #{outType}</if>
@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishDate != null and finishDate != ''"> and finish_date = #{finishDate}</if> <if test="finishDate != null and finishDate != ''"> and finish_date = #{finishDate}</if>
</where> </where>
</select> </select>
<select id="selectOutStockoutFinishByStockoutGuid" parameterType="String" resultMap="OutStockoutFinishResult"> <select id="selectOutStockoutFinishByStockoutGuid" parameterType="String" resultMap="OutStockoutFinishResult">
<include refid="selectOutStockoutFinishVo"/> <include refid="selectOutStockoutFinishVo"/>
where stockout_guid = #{stockoutGuid} where stockout_guid = #{stockoutGuid}
@@ -128,7 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<delete id="deleteOutStockoutFinishByStockoutGuids" parameterType="String"> <delete id="deleteOutStockoutFinishByStockoutGuids" parameterType="String">
delete from out_stockout_finish where stockout_guid in delete from out_stockout_finish where stockout_guid in
<foreach item="stockoutGuid" collection="array" open="(" separator="," close=")"> <foreach item="stockoutGuid" collection="array" open="(" separator="," close=")">
#{stockoutGuid} #{stockoutGuid}
</foreach> </foreach>
@@ -162,5 +162,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productName != null and productName != ''"> and bp.product_name like concat('%', #{productName}, '%')</if> <if test="productName != null and productName != ''"> and bp.product_name like concat('%', #{productName}, '%')</if>
<if test="customerName != null and customerName != ''"> and bc.customer_name like concat('%', #{customerName}, '%')</if> <if test="customerName != null and customerName != ''"> and bc.customer_name like concat('%', #{customerName}, '%')</if>
</where> </where>
order by o.create_date desc
</select> </select>
</mapper> </mapper>

View File

@@ -67,6 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</if> </if>
</where> </where>
order by o.create_date desc
</select> </select>
<select id="selectOutStockoutByStockoutGuid" parameterType="String" resultMap="OutStockoutResult"> <select id="selectOutStockoutByStockoutGuid" parameterType="String" resultMap="OutStockoutResult">

View File

@@ -809,7 +809,8 @@ export default {
cargoSpaceStatus: '锁定状态', cargoSpaceStatus: '锁定状态',
cargoSpaceStockStatus: '货位状态', cargoSpaceStockStatus: '货位状态',
deleteConfirm:"删除库存", deleteConfirm:"删除库存",
designatedStorageLocationForOutboundShipment:"指定货位出库" designatedStorageLocationForOutboundShipment:"指定货位出库",
confirmPointOut:'确认出库'
}, },

View File

@@ -367,7 +367,7 @@ export default {
/** 审核单据按钮操作 */ /** 审核单据按钮操作 */
handleReview(row){ handleReview(row){
let stockIn = this.stockInListSelected[0]; let stockIn = this.stockInListSelected[0];
if (stockIn.status !== "2") { if (stockIn.status === "2") {
this.$modal.msgError(this.$t('inStockin.alreadyReviewed')) this.$modal.msgError(this.$t('inStockin.alreadyReviewed'))
return return
} }