流利架 入库出库逻辑修改

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流利架空料箱入库任务
*/
@PostMapping("/pushInMydoJob")
public void pushInMydoJob(String trayCode) {
toWcsService.pushInMydoJob(trayCode);
@Scheduled(fixedDelay=10000)
public void pushInMydoJob() {
toWcsService.pushInMydoJob();
}
/**

View File

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

View File

@@ -5,6 +5,8 @@ import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob;
import java.util.HashMap;
/**
* 作业统计 Service 接口
*/
@@ -15,5 +17,7 @@ public interface IToWcsService {
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 {
AjaxResult requestEnter(MydoJob mydoJob);
AjaxResult requestEnterByTrayCode(MydoJob mydoJob);
AjaxResult requestEnterByEnterId(MydoJob mydoJob);
AjaxResult jobFinish(WmsJobRequest wmsJobRequest);

View File

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

View File

@@ -231,7 +231,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(job.getWarehouseId());
if("2".equals(basWarehouse.getWarehouseType())) {
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())) {

View File

@@ -1,6 +1,8 @@
package com.ruoyi.log.service;
import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.log.domain.RequestLog;
/**
@@ -74,5 +76,5 @@ public interface IRequestLogService
* @param remark
* @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.json.JSONUtil;
import com.ruoyi.common.core.domain.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.log.mapper.RequestLogMapper;
@@ -23,6 +24,7 @@ import com.ruoyi.log.service.IRequestLogService;
* @date 2025-07-02
*/
@Service
@Slf4j
public class RequestLogServiceImpl implements IRequestLogService
{
@Autowired
@@ -61,7 +63,12 @@ public class RequestLogServiceImpl implements IRequestLogService
@Override
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.setResponseStatus("0");
} finally {
requestLogMapper.insertRequestLog(requestLog);
insertRequestLog(requestLog);
}
return requestLog;
}
@@ -149,7 +156,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return requestLog
*/
@Override
public RequestLog getRequestLog(String param, String remark) {
public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult) {
RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setRequestBody(param);
@@ -159,7 +166,13 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setRequestMethod("post");
requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
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;
}
}

View File

@@ -18,6 +18,8 @@ import com.ruoyi.bas.tag.domain.BasTag;
import com.ruoyi.bas.tag.service.IBasTagService;
import com.ruoyi.common.core.domain.AjaxResult;
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.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg;
@@ -46,6 +48,8 @@ public class TagTaskServiceImpl implements ITagTaskService {
private IBasTagService basTagService;
@Autowired
private PdaService pdaService;
@Autowired
private IMydoJobService mydoJobService;
private HashMap<String, ExecuteSocket> tagSockteMap = new HashMap<>();
@@ -242,12 +246,23 @@ public class TagTaskServiceImpl implements ITagTaskService {
String type = s.substring(4, 6);//指令类型 01是下发成功反馈 12是拍灭绿灯指令
if ("12".equals(type)) {
//12为 绿色拍灯指令
//生成agv空料箱入库作业
TrayCodeMsg trayCodeMsg = new TrayCodeMsg();
trayCodeMsg.setTrayCode(IdUtil.fastSimpleUUID());
trayCodeMsg.setWarehouseId("02");
trayCodeMsg.setEntranceId(basTag.getPickAdd());
pdaService.emptyBoxIn(trayCodeMsg);
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setInOrOut("1");
mydoJobParam.setExitId("fluent");
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
if (CollUtil.isEmpty(mydoJobs)){
//生成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.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer;
@@ -102,6 +103,8 @@ public class PdaServiceImp implements PdaService {
private IBasWarehouseService basWarehouseService;
@Autowired
private IBasContainerService basContainerService;
@Autowired
private IToWcsService iToWcsService;
/**
* 空托盘入库
@@ -306,15 +309,14 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1");
pdaMapper.outMakeSure(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
//通知wcs 出库确认
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -383,7 +385,7 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>();
@@ -392,6 +394,7 @@ public class PdaServiceImp implements PdaService {
pdaMapper.outMakeSure(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -434,12 +437,13 @@ public class PdaServiceImp implements PdaService {
}
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId());
if (mydoJobDetails.stream().allMatch(x -> "1".equals(x.getSpare3()))) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
@@ -476,6 +480,8 @@ public class PdaServiceImp implements PdaService {
private void deleteTagTask(TrayCodeMakeSure trayCodeMakeSure, BasWarehouse basWarehouse) {
if ("2".equals(basWarehouse.getWarehouseType())) {
BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode());
basTag.setTrayCode("");
basTagService.updateBasTag(basTag);
//删除电子标签
TagTask param = new TagTask();
param.setTagId(basTag.getId());
@@ -485,6 +491,13 @@ public class PdaServiceImp implements PdaService {
.map(TagTask::getId)
.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.message1=任务已开始
warn.message13=任务未开始
warn.message2=子任务不存在
warn.message3=暂不支持的任务类型
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="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="entranceId != null and entranceId != ''"> and mj.entrance_id = #{entranceId}</if>
<if test="exitId != null and exitId != ''"> and mj.exit_id = #{exitId}</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 like concat('%', #{exitId}, '%')</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="faultFlag != null and faultFlag != ''"> and mj.fault_flag = #{faultFlag}</if>
@@ -216,7 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="pointOut" parameterType="java.util.Map" statementType="CALLABLE">
{call point_out(
{call proc_point_out(
#{stockId,jdbcType=VARCHAR,mode=IN},
#{exitId,jdbcType=VARCHAR,mode=IN},
#{v_result,mode=OUT,jdbcType=INTEGER},

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.outStockoutDetail.mapper.OutStockoutDetailMapper">
<resultMap type="OutStockoutDetail" id="OutStockoutDetailResult">
<result property="stockoutDetailId" column="stockout_detail_id" />
<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">
<include refid="selectOutStockoutDetailVo"/>
<where>
<where>
<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="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>
</where>
</select>
<select id="selectOutStockoutDetailByStockoutDetailId" parameterType="String" resultMap="OutStockoutDetailResult">
<include refid="selectOutStockoutDetailVo"/>
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="unit != null">unit = #{unit},</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="cargoNo != null">cargo_no = #{cargoNo},</if>
<if test="createTime != null">create_time = #{createTime},</if>
@@ -216,7 +215,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<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=")">
#{stockoutDetailId}
</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
where d.stockout_guid = #{stockoutGuid}
</select>
</mapper>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.outStockoutFinish.mapper.OutStockoutFinishMapper">
<resultMap type="OutStockoutFinish" id="OutStockoutFinishResult">
<result property="stockoutGuid" column="stockout_guid" />
<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">
<include refid="selectOutStockoutFinishVo"/>
<where>
<where>
<if test="stockoutGuid != null and stockoutGuid != ''"> and stockout_guid = #{stockoutGuid}</if>
<if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</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>
</where>
</select>
<select id="selectOutStockoutFinishByStockoutGuid" parameterType="String" resultMap="OutStockoutFinishResult">
<include refid="selectOutStockoutFinishVo"/>
where stockout_guid = #{stockoutGuid}
@@ -128,7 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<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=")">
#{stockoutGuid}
</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="customerName != null and customerName != ''"> and bc.customer_name like concat('%', #{customerName}, '%')</if>
</where>
order by o.create_date desc
</select>
</mapper>
</mapper>

View File

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