一楼单向出库口-生成堆垛机队列 到达出口完成mydojob任务,并通知wms

This commit is contained in:
liuhanqing
2025-09-23 14:51:25 +08:00
parent 00e807f71c
commit 3e994bfa17
16 changed files with 180 additions and 62 deletions

View File

@@ -98,12 +98,10 @@ public interface IApiService
/** /**
* 任务到达拣选口 * 任务到达拣选口
* @param agvFinishUrl
* @param point
* @param param * @param param
* @return * @return
*/ */
RequestLog finishMydoJob(String agvFinishUrl, String point, Map<String, Object> param); RequestLog finishMydoJob(Map<String, Object> param);
/** /**
* 发送agv开始状态 * 发送agv开始状态

View File

@@ -178,13 +178,11 @@ public class ApiServiceImpl implements IApiService {
/** /**
* 出库到达拣选口 * 出库到达拣选口
* @param agvFinishUrl
* @param endPoint
* @param param * @param param
* @return * @return
*/ */
@Override @Override
public RequestLog finishMydoJob(String agvFinishUrl, String endPoint, Map<String, Object> param) { public RequestLog finishMydoJob( Map<String, Object> param) {
return requestLogService.getRequestLog(JOB_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param)); return requestLogService.getRequestLog(JOB_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param));
} }

View File

@@ -58,4 +58,6 @@ public interface BasCargoSpaceMapper
* @return 结果 * @return 结果
*/ */
public int deleteBasCargoSpaceByCargoSpaceIds(String[] cargoSpaceIds); public int deleteBasCargoSpaceByCargoSpaceIds(String[] cargoSpaceIds);
BasCargoSpace selectBasCargoSpaceByWmsCargoSpaceId(String cargoSpaceId);
} }

View File

@@ -58,4 +58,6 @@ public interface IBasCargoSpaceService
* @return 结果 * @return 结果
*/ */
public int deleteBasCargoSpaceByCargoSpaceId(String cargoSpaceId); public int deleteBasCargoSpaceByCargoSpaceId(String cargoSpaceId);
BasCargoSpace selectBasCargoSpaceByWmsCargoSpaceId(String cargoSpaceId);
} }

View File

@@ -9,19 +9,19 @@ import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
/** /**
* 库存信息Service业务层处理 * 库存信息Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-23 * @date 2025-09-23
*/ */
@Service @Service
public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
{ {
@Autowired @Autowired
private BasCargoSpaceMapper basCargoSpaceMapper; private BasCargoSpaceMapper basCargoSpaceMapper;
/** /**
* 查询库存信息 * 查询库存信息
* *
* @param cargoSpaceId 库存信息主键 * @param cargoSpaceId 库存信息主键
* @return 库存信息 * @return 库存信息
*/ */
@@ -33,7 +33,7 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
/** /**
* 查询库存信息列表 * 查询库存信息列表
* *
* @param basCargoSpace 库存信息 * @param basCargoSpace 库存信息
* @return 库存信息 * @return 库存信息
*/ */
@@ -45,7 +45,7 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
/** /**
* 新增库存信息 * 新增库存信息
* *
* @param basCargoSpace 库存信息 * @param basCargoSpace 库存信息
* @return 结果 * @return 结果
*/ */
@@ -57,7 +57,7 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
/** /**
* 修改库存信息 * 修改库存信息
* *
* @param basCargoSpace 库存信息 * @param basCargoSpace 库存信息
* @return 结果 * @return 结果
*/ */
@@ -69,7 +69,7 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
/** /**
* 批量删除库存信息 * 批量删除库存信息
* *
* @param cargoSpaceIds 需要删除的库存信息主键 * @param cargoSpaceIds 需要删除的库存信息主键
* @return 结果 * @return 结果
*/ */
@@ -81,7 +81,7 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
/** /**
* 删除库存信息信息 * 删除库存信息信息
* *
* @param cargoSpaceId 库存信息主键 * @param cargoSpaceId 库存信息主键
* @return 结果 * @return 结果
*/ */
@@ -90,4 +90,9 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
{ {
return basCargoSpaceMapper.deleteBasCargoSpaceByCargoSpaceId(cargoSpaceId); return basCargoSpaceMapper.deleteBasCargoSpaceByCargoSpaceId(cargoSpaceId);
} }
@Override
public BasCargoSpace selectBasCargoSpaceByWmsCargoSpaceId(String cargoSpaceId) {
return basCargoSpaceMapper.selectBasCargoSpaceByWmsCargoSpaceId(cargoSpaceId);
}
} }

View File

@@ -3,22 +3,13 @@ package com.ruoyi.common;
public class TaskType { public class TaskType {
/** /**
* 输送线入库(PTL出口) * 堆垛机任务类型
*/ */
public static final String CONV_STOCKIN = "1"; //1-二楼双向
public static final int DDJ_RWLX_1 = 1;
//2-一楼单向
public static final int DDJ_RWLX_2 = 2;
//3-一楼双向
public static final int DDJ_RWLX_3 = 3;
/**
* 出库至输送线(PTL入口)---单个或组出库
*/
public static final String CONV_STOCKOUT_SINGLE_GROUP = "21";
/**
* 出库至输送线(PTL入口)---顺序出
*/
public static final String CONV_STOCKOUT_SEQUENCE = "22";
/**
* AGV点到点搬运
*/
public static final String AGV_MOVE = "3";
} }

View File

@@ -66,4 +66,6 @@ public interface MydoJobMapper
void InvalidMydoJob(HashMap<String, Object> map); void InvalidMydoJob(HashMap<String, Object> map);
MydoJob selectMydoJobByExitList(@Param("exitList") List<String> exitList); MydoJob selectMydoJobByExitList(@Param("exitList") List<String> exitList);
void insertHistory(String jobId);
} }

View File

@@ -66,4 +66,6 @@ public interface IMydoJobService
boolean InvalidMydoJob(Long rwh, Integer id); boolean InvalidMydoJob(Long rwh, Integer id);
MydoJob selectMydoJobByExitList(List<String> exitList); MydoJob selectMydoJobByExitList(List<String> exitList);
void insertHistory(String jobId);
} }

View File

@@ -131,4 +131,9 @@ public class MydoJobServiceImpl implements IMydoJobService
public MydoJob selectMydoJobByExitList(List<String> exitList) { public MydoJob selectMydoJobByExitList(List<String> exitList) {
return mydoJobMapper.selectMydoJobByExitList(exitList); return mydoJobMapper.selectMydoJobByExitList(exitList);
} }
@Override
public void insertHistory(String jobId) {
mydoJobMapper.insertHistory(jobId);
}
} }

View File

@@ -5,15 +5,15 @@ import com.ruoyi.queue.ddj.domain.DdjDeviceExecutionQueue;
/** /**
* 堆垛机执行队列Mapper接口 * 堆垛机执行队列Mapper接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-22 * @date 2025-09-22
*/ */
public interface DdjDeviceExecutionQueueMapper public interface DdjDeviceExecutionQueueMapper
{ {
/** /**
* 查询堆垛机执行队列 * 查询堆垛机执行队列
* *
* @param uuid 堆垛机执行队列主键 * @param uuid 堆垛机执行队列主键
* @return 堆垛机执行队列 * @return 堆垛机执行队列
*/ */
@@ -21,7 +21,7 @@ public interface DdjDeviceExecutionQueueMapper
/** /**
* 查询堆垛机执行队列列表 * 查询堆垛机执行队列列表
* *
* @param ddjDeviceExecutionQueue 堆垛机执行队列 * @param ddjDeviceExecutionQueue 堆垛机执行队列
* @return 堆垛机执行队列集合 * @return 堆垛机执行队列集合
*/ */
@@ -29,7 +29,7 @@ public interface DdjDeviceExecutionQueueMapper
/** /**
* 新增堆垛机执行队列 * 新增堆垛机执行队列
* *
* @param ddjDeviceExecutionQueue 堆垛机执行队列 * @param ddjDeviceExecutionQueue 堆垛机执行队列
* @return 结果 * @return 结果
*/ */
@@ -37,7 +37,7 @@ public interface DdjDeviceExecutionQueueMapper
/** /**
* 修改堆垛机执行队列 * 修改堆垛机执行队列
* *
* @param ddjDeviceExecutionQueue 堆垛机执行队列 * @param ddjDeviceExecutionQueue 堆垛机执行队列
* @return 结果 * @return 结果
*/ */
@@ -45,7 +45,7 @@ public interface DdjDeviceExecutionQueueMapper
/** /**
* 删除堆垛机执行队列 * 删除堆垛机执行队列
* *
* @param uuid 堆垛机执行队列主键 * @param uuid 堆垛机执行队列主键
* @return 结果 * @return 结果
*/ */
@@ -53,9 +53,11 @@ public interface DdjDeviceExecutionQueueMapper
/** /**
* 批量删除堆垛机执行队列 * 批量删除堆垛机执行队列
* *
* @param uuids 需要删除的数据主键集合 * @param uuids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteDdjDeviceExecutionQueueByUuids(String[] uuids); public int deleteDdjDeviceExecutionQueueByUuids(String[] uuids);
List<DdjDeviceExecutionQueue> selectDdjDeviceExecutionQueueListByRwlx(Integer rwlx);
} }

View File

@@ -60,4 +60,6 @@ public interface IDdjDeviceExecutionQueueService
public int deleteDdjDeviceExecutionQueueByUuid(String uuid); public int deleteDdjDeviceExecutionQueueByUuid(String uuid);
DdjDeviceExecutionQueue selectDdjDeviceExecutionQueueByRwh(Long rwh); DdjDeviceExecutionQueue selectDdjDeviceExecutionQueueByRwh(Long rwh);
List<DdjDeviceExecutionQueue> selectDdjDeviceExecutionQueueListByRwlx(Integer rwlx);
} }

View File

@@ -95,4 +95,9 @@ public class DdjDeviceExecutionQueueServiceImpl implements IDdjDeviceExecutionQu
public DdjDeviceExecutionQueue selectDdjDeviceExecutionQueueByRwh(Long rwh) { public DdjDeviceExecutionQueue selectDdjDeviceExecutionQueueByRwh(Long rwh) {
return null; return null;
} }
@Override
public List<DdjDeviceExecutionQueue> selectDdjDeviceExecutionQueueListByRwlx(Integer rwlx) {
return ddjDeviceExecutionQueueMapper.selectDdjDeviceExecutionQueueListByRwlx(rwlx);
}
} }

View File

@@ -1,19 +1,28 @@
package com.ruoyi.schedule.scheduleTask.ssj.floor1; package com.ruoyi.schedule.scheduleTask.ssj.floor1;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IApiService;
import com.ruoyi.bas.cargospace.domain.BasCargoSpace;
import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.job.domain.MydoJob; import com.ruoyi.job.domain.MydoJob;
import com.ruoyi.job.service.IMydoJobService; import com.ruoyi.job.service.IMydoJobService;
import com.ruoyi.queue.agv.service.IAgvQueueService; import com.ruoyi.queue.agv.service.IAgvQueueService;
import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.queue.ddj.domain.DdjDeviceExecutionQueue;
import com.ruoyi.queue.ddj.service.IDdjDeviceExecutionQueueService;
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead; import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List; import static com.ruoyi.common.TaskType.DDJ_RWLX_2;
import java.util.Map;
/** /**
* 一楼单向出库线程 循环出库作业+巷道口空闲 生成堆垛机出库队列 * 一楼单向出库线程 循环出库作业+巷道口空闲 生成堆垛机出库队列
@@ -22,28 +31,41 @@ import java.util.Map;
public class Floor1SingleSsjThread implements Runnable { public class Floor1SingleSsjThread implements Runnable {
public HashMap<String, List<String>> ssjCodeList; public HashMap<String, List<String>> ssjCodeList;
private IApiService apiService; private IApiService apiService;
private IMydoJobService mydoJobService; private IMydoJobService mydoJobService;
public boolean isRun = true; public boolean isRun = true;
private final Map<String,String> exitRoadwayMap = new HashMap<>();
private Map<String,String> exitRoadwayMap = new HashMap<>(); private IDdjDeviceExecutionQueueService ddjDeviceExecutionQueueService;
private IBasCargoSpaceService basCargoSpaceService;
private Map<String,List<Integer>> roadwayMap = new HashMap<>();
public void init() { public void init() {
//设置要循环的输送机
ssjCodeList = new HashMap<>(); ssjCodeList = new HashMap<>();
ArrayList<String> ssjCodes = new ArrayList<>(); ArrayList<String> outRoadwaySsjList = new ArrayList<>();
ssjCodes.add("L2001"); outRoadwaySsjList.add("L2001");
ssjCodes.add("L2007"); outRoadwaySsjList.add("L2007");
ssjCodeList.put("outRoadwaySsj", ssjCodes); ssjCodeList.put("outRoadwaySsj", outRoadwaySsjList);
ArrayList<String> outSsjList = new ArrayList<>();
outSsjList.add("L2002");
outSsjList.add("L2008");
ssjCodeList.put("outSsj", outSsjList);
//初始化服务
apiService = SpringUtils.getBean(IApiService.class); apiService = SpringUtils.getBean(IApiService.class);
mydoJobService = SpringUtils.getBean(IMydoJobService.class); mydoJobService = SpringUtils.getBean(IMydoJobService.class);
exitRoadwayMap.put("L2001","L2011"); ddjDeviceExecutionQueueService = SpringUtils.getBean(IDdjDeviceExecutionQueueService.class);
exitRoadwayMap.put("L2007","L2014"); basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class);
log.info("初始化服务 {},{}", apiService, mydoJobService);
//初始化出口和巷道口映射关系
exitRoadwayMap.put("L2001","L2002");
exitRoadwayMap.put("L2007","L2008");
//初始化巷道口 排 列 层
roadwayMap.put("L2001",Arrays.asList(1,1,1));
roadwayMap.put("L2007",Arrays.asList(1,1,1));
} }
@Override @Override
@@ -51,7 +73,7 @@ public class Floor1SingleSsjThread implements Runnable {
init(); init();
while (isRun){ while (isRun){
for (String type : ssjCodeList.keySet()) { for (String type : ssjCodeList.keySet()) {
//一楼单向出库口 //一楼单向巷道口
if ("outRoadwaySsj".equals(type)) { if ("outRoadwaySsj".equals(type)) {
for (String ssjCode : ssjCodeList.get(type)) { for (String ssjCode : ssjCodeList.get(type)) {
try { try {
@@ -66,6 +88,19 @@ public class Floor1SingleSsjThread implements Runnable {
} }
} }
if ("outSsj".equals(type)){
for (String ssjCode : ssjCodeList.get(type)) {
try {
if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
dispatch2(PlcSsjRead.deviceSsjMap.get(ssjCode));
} else {
log.error("设备不存在 ssjCode{}", ssjCode);
}
} catch (RuntimeException e) {
log.error(e.getMessage(), e);
}
}
}
} }
try { try {
Thread.sleep(1500); Thread.sleep(1500);
@@ -76,14 +111,67 @@ public class Floor1SingleSsjThread implements Runnable {
} }
/**
* 一楼单向出库口调度
*
* @param ssj 输送机
*/
private void dispatch2(DeviceSsj ssj) {
if (ssj.getDw()==1 && ssj.getTaskNo()>0){
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo()));
if (ObjUtil.isNotNull(mydoJob)) {
HashMap<String,Object> param = new HashMap<>();
param.put("taskNo",mydoJob.getTaskNo());
param.put("jobId",mydoJob.getJobId());
RequestLog result = apiService.finishMydoJob(param);
if ("1".equals(result.getIsSuccessful())){
log.info("完成任务 taskNo{} ",mydoJob.getTaskNo());
mydoJobService.insertHistory(mydoJob.getJobId());
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
}
}
}
}
/**
* 一楼单向巷道口调度
* @param ssj 输送机
*/
public void dispatch(DeviceSsj ssj) { public void dispatch(DeviceSsj ssj) {
//如果入库请求1 并且 托盘码不为空 //如果入库请求1 并且 托盘码不为空
if (ssj.getKx()==1){ if (ssj.getKx()==1){
String exitId = exitRoadwayMap.get(ssj.getDeviceCode()); String exitId = exitRoadwayMap.get(ssj.getDeviceCode());
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(List.of(exitId)); List<String> exitList = new ArrayList<>();
exitList.add(exitId);
MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList);
if (ObjUtil.isNotNull(mydoJob)){ if (ObjUtil.isNotNull(mydoJob)){
//生成队列 BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
if (ObjUtil.isNull(basCargoSpace)){
log.error("货位不存在 cargoSpaceId{}",mydoJob.getCargoSpaceId());
}else {
//生成队列
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2);
List<Integer> pclList = roadwayMap.get(ssj.getDeviceCode());
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)){
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
ddjDeviceExecutionQueue.setRwzt(0);
ddjDeviceExecutionQueue.setYph(Convert.toInt(basCargoSpace.getThePlatoon()));
ddjDeviceExecutionQueue.setYlh(Convert.toInt(basCargoSpace.getTheColumn()));
ddjDeviceExecutionQueue.setYch(Convert.toInt(basCargoSpace.getTheFloor()));
ddjDeviceExecutionQueue.setMbph(pclList.get(0));
ddjDeviceExecutionQueue.setMblh(pclList.get(1));
ddjDeviceExecutionQueue.setMbch(pclList.get(2));
ddjDeviceExecutionQueue.setDdjxf("0");
ddjDeviceExecutionQueue.setMlfs(5);
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
}
}
} }
} }
} }

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.bas.cargospace.mapper.BasCargoSpaceMapper"> <mapper namespace="com.ruoyi.bas.cargospace.mapper.BasCargoSpaceMapper">
<resultMap type="BasCargoSpace" id="BasCargoSpaceResult"> <resultMap type="BasCargoSpace" id="BasCargoSpaceResult">
<result property="cargoSpaceId" column="cargo_space_id" /> <result property="cargoSpaceId" column="cargo_space_id" />
<result property="warehouseId" column="warehouse_id" /> <result property="warehouseId" column="warehouse_id" />
@@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectBasCargoSpaceList" parameterType="BasCargoSpace" resultMap="BasCargoSpaceResult"> <select id="selectBasCargoSpaceList" parameterType="BasCargoSpace" resultMap="BasCargoSpaceResult">
<include refid="selectBasCargoSpaceVo"/> <include refid="selectBasCargoSpaceVo"/>
<where> <where>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if> <if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="roadwayId != null and roadwayId != ''"> and roadway_id = #{roadwayId}</if> <if test="roadwayId != null and roadwayId != ''"> and roadway_id = #{roadwayId}</if>
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if> <if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
@@ -55,11 +55,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="wmsCargoSpaceId != null and wmsCargoSpaceId != ''"> and wms_cargo_space_id = #{wmsCargoSpaceId}</if> <if test="wmsCargoSpaceId != null and wmsCargoSpaceId != ''"> and wms_cargo_space_id = #{wmsCargoSpaceId}</if>
</where> </where>
</select> </select>
<select id="selectBasCargoSpaceByCargoSpaceId" parameterType="String" resultMap="BasCargoSpaceResult"> <select id="selectBasCargoSpaceByCargoSpaceId" parameterType="String" resultMap="BasCargoSpaceResult">
<include refid="selectBasCargoSpaceVo"/> <include refid="selectBasCargoSpaceVo"/>
where cargo_space_id = #{cargoSpaceId} where cargo_space_id = #{cargoSpaceId}
</select> </select>
<select id="selectBasCargoSpaceByWmsCargoSpaceId"
resultMap="BasCargoSpaceResult">
<include refid="selectBasCargoSpaceVo"/>
where wms_cargo_space_id = #{wmsCargoSpaceId}
</select>
<insert id="insertBasCargoSpace" parameterType="BasCargoSpace"> <insert id="insertBasCargoSpace" parameterType="BasCargoSpace">
insert into bas_cargo_space insert into bas_cargo_space
@@ -140,9 +145,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<delete id="deleteBasCargoSpaceByCargoSpaceIds" parameterType="String"> <delete id="deleteBasCargoSpaceByCargoSpaceIds" parameterType="String">
delete from bas_cargo_space where cargo_space_id in delete from bas_cargo_space where cargo_space_id in
<foreach item="cargoSpaceId" collection="array" open="(" separator="," close=")"> <foreach item="cargoSpaceId" collection="array" open="(" separator="," close=")">
#{cargoSpaceId} #{cargoSpaceId}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>

View File

@@ -120,6 +120,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="faultFlag != null">#{faultFlag},</if> <if test="faultFlag != null">#{faultFlag},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertHistory">
insert into mydo_job_wcs_history
select * from mydo_job_wcs where job_id = #{jobId}
</insert>
<update id="updateMydoJob" parameterType="MydoJob"> <update id="updateMydoJob" parameterType="MydoJob">
update mydo_job_wcs update mydo_job_wcs

View File

@@ -61,6 +61,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectDdjDeviceExecutionQueueVo"/> <include refid="selectDdjDeviceExecutionQueueVo"/>
where uuid = #{uuid} where uuid = #{uuid}
</select> </select>
<select id="selectDdjDeviceExecutionQueueListByRwlx"
resultMap="DdjDeviceExecutionQueueResult">
<include refid="selectDdjDeviceExecutionQueueVo"/>
where rwlx = #{rwlx}
</select>
<insert id="insertDdjDeviceExecutionQueue" parameterType="DdjDeviceExecutionQueue"> <insert id="insertDdjDeviceExecutionQueue" parameterType="DdjDeviceExecutionQueue">
insert into ddj_device_execution_queue insert into ddj_device_execution_queue