add:异常口、退货口入库流程
This commit is contained in:
@@ -3,6 +3,7 @@ package org.nl.b_lms.pda.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -10,6 +11,10 @@ import org.nl.b_lms.pda.service.VehicleTwoService;
|
||||
import org.nl.b_lms.pdm.info.dao.PdmBiContainerinbound;
|
||||
import org.nl.b_lms.pdm.info.service.IPdmBiContainerinboundService;
|
||||
import org.nl.b_lms.pdm.productSpec.service.impl.PdmProductSpecServiceImpl;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
||||
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
@@ -37,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -70,7 +76,8 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
@Autowired
|
||||
private LmsToMesService lmsToMesService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService;
|
||||
/**
|
||||
* 点位服务
|
||||
*/
|
||||
@@ -79,8 +86,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
|
||||
@Autowired
|
||||
private InBussManageService inBussManageService;
|
||||
|
||||
@Autowired
|
||||
private IPdmBiContainerinboundService iPdmBiContainerinboundService;
|
||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -183,9 +191,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
public JSONObject boxIn(JSONObject whereJson) {
|
||||
// 调用接口
|
||||
String startCode = whereJson.getString("point_code");
|
||||
if ("MXRKW1".equals(startCode)){
|
||||
if ("MXRKW1".equals(startCode)) {
|
||||
inBoxManageService.boxBinVehicle(whereJson);
|
||||
}else if ("THRKDJW1".equals(startCode)){
|
||||
} else if ("THRKDJW1".equals(startCode)) {
|
||||
inBoxManageService.boxBinVehicleByTHRK(whereJson);
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
@@ -211,39 +219,26 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
String a = JSONObject.toJSONString(msg);
|
||||
List<String> list = JSONObject.parseObject(a, List.class);
|
||||
Optional<String> 称重 = list.stream().filter(m -> m.contains("称重")).findAny();
|
||||
if (称重.isPresent()){
|
||||
if (称重.isPresent()) {
|
||||
System.out.println(称重.get());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject reback(JSONObject whereJson) {
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
String bill_type = whereJson.getString("bill_type");
|
||||
whereJson.put("material_barcode", whereJson.getString("box_no"));
|
||||
whereJson.put("device_code", whereJson.getString("point_code"));
|
||||
if ("RK1002".equals(whereJson.getString("point_code"))){
|
||||
if (IOSEnum.SPECIAL_POINTS.code("异常出库口").equals(whereJson.getString("point_code"))) {
|
||||
List<SchBaseTask> list = ischBaseTaskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.select("task_id")
|
||||
.eq("point_code2", "RK1004")
|
||||
.eq("point_code2", IOSEnum.SPECIAL_POINTS.code("异常出库口"))
|
||||
.eq("task_type", "010706")
|
||||
.eq("is_delete", "0")
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("稍后再试,异常口存在正在执行的任务"+ list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(",")));
|
||||
}
|
||||
Param forceWeight = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("force_weight");
|
||||
if (forceWeight!=null && "1".equals(forceWeight.getValue())){
|
||||
PdmBiContainerinbound one = iPdmBiContainerinboundService.getOne(new QueryWrapper<PdmBiContainerinbound>()
|
||||
.eq("box", whereJson.getString("box_no")));
|
||||
if (one!=null && !StringUtils.isEmpty(one.getRemark())){
|
||||
List<String> remark = JSONObject.parseObject(one.getRemark(), List.class);
|
||||
Optional<String> 称重 = remark.stream().filter(m -> m.contains("称重")).findAny();
|
||||
if (称重.isPresent()){
|
||||
throw new BadRequestException("开启称重强制校验"+称重.get());
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
if (bill_type.equals("1")) {
|
||||
@@ -256,15 +251,17 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("手工入库"));
|
||||
}
|
||||
whereJson.put("box_no", whereJson.getString("box_no"));
|
||||
JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status in ('0','1')").getResultJSONArray(0);
|
||||
if (ObjectUtil.isEmpty(resultJSONArray)) {
|
||||
List<PdmBiSubpackagerelation> sub_list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>()
|
||||
.eq(PdmBiSubpackagerelation::getPackage_box_sn, whereJson.getString("material_barcode"))
|
||||
.in(PdmBiSubpackagerelation::getStatus, Arrays.asList('0', '1')));
|
||||
if (ObjectUtil.isEmpty(sub_list)) {
|
||||
throw new BadRequestException("未查询到子卷包装信息!");
|
||||
}
|
||||
String material_barcode = "";
|
||||
List<String> subs = new ArrayList<>();
|
||||
for (int i = 0; i < resultJSONArray.size(); i++) {
|
||||
JSONObject resultObj = resultJSONArray.getJSONObject(i);
|
||||
String containerName = resultObj.getString("container_name");
|
||||
for (int i = 0; i < sub_list.size(); i++) {
|
||||
PdmBiSubpackagerelation sub_jo = sub_list.get(i);
|
||||
String containerName = sub_jo.getContainer_name();
|
||||
subs.add(containerName);
|
||||
if (i == 0) {
|
||||
material_barcode = containerName;
|
||||
@@ -273,10 +270,10 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
}
|
||||
}
|
||||
whereJson.put("material_barcode", material_barcode);
|
||||
if (StringUtils.isBlank(resultJSONArray.getJSONObject(0).getString("package_box_sn"))) {
|
||||
if (StringUtils.isBlank(sub_list.get(0).getPackage_box_sn())) {
|
||||
throw new BadRequestException("木箱号不能为空!");
|
||||
}
|
||||
String boxNo = resultJSONArray.getJSONObject(0).getString("package_box_sn");
|
||||
String boxNo = sub_list.get(0).getPackage_box_sn();
|
||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo)
|
||||
@@ -286,46 +283,31 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
boxDao.setIs_packing("1");
|
||||
iBstIvtBoxinfoService.updateById(boxDao);
|
||||
} else {
|
||||
//查询mes木箱信息,插入木箱信息表
|
||||
try {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("box_no", boxNo);
|
||||
lmsToMesService.momGetPackingInfo(jo);
|
||||
} catch (Exception ex) {
|
||||
throw new BadRequestException("MES系统未查询到木箱信息!");
|
||||
}
|
||||
BstIvtBoxinfo boxDao1 = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo)
|
||||
);
|
||||
boxDao1.setIs_packing("1");
|
||||
iBstIvtBoxinfoService.updateById(boxDao1);
|
||||
whereJson.put("vehicleType", boxDao1.getVehicle_type());
|
||||
throw new BadRequestException("为查询到木箱【" + boxNo + "】相关信息");
|
||||
}
|
||||
// 更新载具对应木箱信息
|
||||
JSONObject jsonExt = extTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonExt)) {
|
||||
throw new BadRequestException("载具不存在!"+whereJson.getString("vehicle_code"));
|
||||
MdPbStoragevehicleext ext_jo = mdPbStoragevehicleextService.getOne(new LambdaQueryWrapper<MdPbStoragevehicleext>().eq(MdPbStoragevehicleext::getStoragevehicle_code, whereJson.getString("vehicle_code")));
|
||||
if (ObjectUtil.isEmpty(ext_jo)) {
|
||||
throw new BadRequestException("载具不存在!" + whereJson.getString("vehicle_code"));
|
||||
}
|
||||
int hasTask = ischBaseTaskService.count(new QueryWrapper<SchBaseTask>()
|
||||
.eq("is_delete", "0")
|
||||
.eq("vehicle_code2", whereJson.getString("vehicle_code"))
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (hasTask>0){
|
||||
throw new BadRequestException("托盘"+whereJson.getString("vehicle_code")+"存在执行的任务");
|
||||
if (hasTask > 0) {
|
||||
throw new BadRequestException("托盘" + whereJson.getString("vehicle_code") + "存在执行的任务");
|
||||
}
|
||||
String pcsn = jsonExt.getString("pcsn");
|
||||
if (StringUtils.isNotEmpty(pcsn)){
|
||||
String pcsn = ext_jo.getPcsn();
|
||||
if (StringUtils.isNotEmpty(pcsn)) {
|
||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0);
|
||||
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||
throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经绑定木箱"+pcsn);
|
||||
throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经绑定木箱" + pcsn);
|
||||
}
|
||||
}
|
||||
jsonExt.put("pcsn", whereJson.getString("box_no"));
|
||||
extTab.update(jsonExt);
|
||||
ext_jo.setPcsn(whereJson.getString("box_no"));
|
||||
mdPbStoragevehicleextService.updateById(ext_jo);
|
||||
|
||||
inBussManageService.inTask(whereJson);
|
||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.RK_YC,null,Boolean.TRUE,null,subs);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("message", "入库成功!");
|
||||
return result;
|
||||
|
||||
@@ -3,16 +3,25 @@ package org.nl.b_lms.sch.tasks;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.dto.SchBaseTaskVO;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -29,6 +38,9 @@ import static org.nl.wms.util.TaskUtil.getRoutePlanCode;
|
||||
@Service
|
||||
public class TwoInBoxTrussTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private IschBaseTaskService ischBaseTaskService;
|
||||
|
||||
/**
|
||||
* 处理类
|
||||
*/
|
||||
@@ -39,29 +51,31 @@ public class TwoInBoxTrussTask extends AbstractAcsTask {
|
||||
/*
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
List<SchBaseTask> task_list = ischBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getHandle_class, THIS_CLASS)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, "0"));
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
//JSONObject params = json.getJSONObject("params");
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
for (int i = 0; i < task_list.size(); i++) {
|
||||
SchBaseTask task = task_list.get(i);
|
||||
char dtl_type = task.getTask_type().charAt(task.getTask_type().length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.route_plan_code(getRoutePlanCode(json.getString("point_code2")))
|
||||
.vehicle_code(json.getString("vehicle_code"))
|
||||
.priority(json.getString("priority"))
|
||||
.ext_task_id(task.getTask_id())
|
||||
.task_code(task.getTask_code())
|
||||
.task_type(task.getAcs_task_type())
|
||||
.start_device_code(task.getPoint_code1())
|
||||
.next_device_code(task.getPoint_code2())
|
||||
.route_plan_code(getRoutePlanCode(task.getPoint_code2()))
|
||||
.vehicle_code(task.getVehicle_code())
|
||||
.priority(task.getPriority())
|
||||
.class_type(IOSEnum.ACS_TYPE.code("木箱入库行架任务"))
|
||||
.dtl_type(String.valueOf(dtl_type))
|
||||
.interaction_json(json.getJSONObject("request_param"))
|
||||
.remark(json.getString("remark"))
|
||||
.interaction_json((JSONObject) JSONObject.parse(task.getRequest_param()))
|
||||
.remark(task.getRemark())
|
||||
.product_area(IOSEnum.PRODUCT_AREA.code("BLK"))
|
||||
.build();
|
||||
|
||||
dto.setClass_type(json.getString("point_code1").equals(IOSEnum.POINT_CODE.code("退货入库位"))
|
||||
dto.setClass_type(task.getPoint_code1().equals(IOSEnum.POINT_CODE.code("退货入库位"))
|
||||
? IOSEnum.ACS_TYPE.code("退货入库行架任务") : IOSEnum.ACS_TYPE.code("木箱入库行架任务")
|
||||
);
|
||||
|
||||
@@ -73,43 +87,34 @@ public class TwoInBoxTrussTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
// 更新任务的参数
|
||||
JSONObject map = new JSONObject();
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
|
||||
/*
|
||||
* 1-执行中, 2-完成 ,0-acs取消
|
||||
*/
|
||||
// 执行中
|
||||
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
|
||||
|
||||
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
task.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
// 完成
|
||||
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
|
||||
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
task.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
}
|
||||
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
|
||||
if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
|
||||
// 更新任务表删除字段
|
||||
map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
|
||||
task.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
|
||||
map.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
map.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
map.put("update_time", DateUtil.now());
|
||||
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'");
|
||||
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
task.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
task.setUpdate_time(DateUtil.now());
|
||||
ischBaseTaskService.update(task, new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, task.getTask_id()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,39 +143,44 @@ public class TwoInBoxTrussTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("终点不能为空!");
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("vehicle_code2", form.getString("vehicle_code2"));
|
||||
json.put("vehicle_type", form.getString("vehicle_type"));
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
json.put("task_group_id", form.getLongValue("task_group_id"));
|
||||
json.put("point_code1", form.getString("start_device_code"));
|
||||
json.put("point_code2", form.getString("next_device_code"));
|
||||
json.put("product_area", "BLK");
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "6");
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
|
||||
return json.getString("task_id");
|
||||
SchBaseTaskVO schBaseTaskVo = SchBaseTaskVO.builder()
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_type(form.getString("task_type"))
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
//二次分配要用的类型
|
||||
.vehicle_code2(form.getString("vehicle_code2"))
|
||||
.vehicle_type(form.getString("vehicle_type"))
|
||||
.task_status(TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.task_group_id(form.getString("task_group_id"))
|
||||
.point_code1(form.getString("start_device_code"))
|
||||
.point_code2(form.getString("next_device_code"))
|
||||
.product_area("BLK")
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
.priority("1")
|
||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务") : form.getString("acs_task_type"))
|
||||
.request_param(form.getString("request_param"))
|
||||
.build();
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||
ischBaseTaskService.save(task);
|
||||
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forceFinish(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
|
||||
SchBaseTask task_jo = ischBaseTaskService.getOne(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, task_id));
|
||||
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(task_jo)), TaskStatusEnum.FINISHED.getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消"));
|
||||
SchBaseTask task_jo = ischBaseTaskService.getOne(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, task_id));
|
||||
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(task_jo)), IOSEnum.ACS_RESULT.code("取消"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,14 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
||||
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
@@ -37,6 +42,7 @@ import org.nl.wms.ext.mes.service.LmsToMesService;
|
||||
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
||||
import org.nl.wms.pdm.bi.service.SubpackagerelationService;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.service.TaskService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -91,6 +97,15 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
@Autowired
|
||||
private InBussManageService inBussManageService;
|
||||
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService;
|
||||
|
||||
@Autowired
|
||||
private IschBaseTaskService schBaseTaskService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void inBox(JSONObject whereJson) {
|
||||
@@ -115,11 +130,12 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
.eq("is_delete", "0")
|
||||
.orderByDesc("task_id")
|
||||
.last("limit 1"));
|
||||
if (one!=null){
|
||||
if (one != null) {
|
||||
String vehicleCode2 = one.getVehicle_code2();
|
||||
if (whereJson.getString("vehicle_code").equals(vehicleCode2)){
|
||||
throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经存在木箱入库任务"+one.getTask_code());
|
||||
};
|
||||
if (whereJson.getString("vehicle_code").equals(vehicleCode2)) {
|
||||
throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经存在木箱入库任务" + one.getTask_code());
|
||||
}
|
||||
;
|
||||
}
|
||||
//查询仓库是否存在相同木箱
|
||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0);
|
||||
@@ -370,7 +386,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
param.put("height", boxDao.getBox_high());
|
||||
param.put("containerType", boxDao.getVehicle_type());
|
||||
|
||||
param.put("barcode", whereJson.getString("box_no") + "-9" );
|
||||
param.put("barcode", whereJson.getString("box_no") + "-9");
|
||||
//根据木箱高度,判断入库仓位的高度
|
||||
String height = "";
|
||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||
@@ -427,28 +443,18 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
.ge(SchBaseTask::getCreate_time, queryDate)
|
||||
.le(SchBaseTask::getCreate_time, DateUtil.now())
|
||||
);
|
||||
if (hasCount>0) {
|
||||
throw new BadRequestException("当前木箱【"+whereJson.getString("box_no")+"】在1个小时之内生成过行架任务!");
|
||||
if (hasCount > 0) {
|
||||
throw new BadRequestException("当前木箱【" + whereJson.getString("box_no") + "】在1个小时之内生成过行架任务!");
|
||||
}
|
||||
|
||||
// 根据木箱号查询是否有托盘绑定关系,如果有则解绑
|
||||
JSONObject jsonExt = WQLObject.getWQLObject("md_pb_storagevehicleext")
|
||||
.query("pcsn = '" + whereJson.getString("box_no") + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonExt)) {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("pcsn", "");
|
||||
WQLObject.getWQLObject("md_pb_storagevehicleext")
|
||||
.update(param, "pcsn = '" + whereJson.getString("box_no") + "'");
|
||||
MdPbStoragevehicleext ext_jo = mdPbStoragevehicleextService.getOne(new QueryWrapper<MdPbStoragevehicleext>().lambda().eq(MdPbStoragevehicleext::getPcsn, whereJson.getString("box_no")));
|
||||
if (ObjectUtil.isNotEmpty(ext_jo)) {
|
||||
mdPbStoragevehicleextService.update(
|
||||
new UpdateWrapper<MdPbStoragevehicleext>().lambda().set(MdPbStoragevehicleext::getPcsn, "").eq(MdPbStoragevehicleext::getPcsn, whereJson.getString("box_no"))
|
||||
);
|
||||
}
|
||||
|
||||
// 更新子卷包装关系创建人
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
param2.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||
.update(param2, "package_box_sn = '" + whereJson.getString("box_no") + "'");
|
||||
|
||||
/*
|
||||
* 查询mes木箱信息,插入木箱信息表
|
||||
*/
|
||||
@@ -457,14 +463,23 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
throw new BadRequestException("未查询到子卷包装信息!");
|
||||
}
|
||||
|
||||
// 更新子卷包装关系创建人
|
||||
ipdmBiSubpackagerelationService.update(new UpdateWrapper<PdmBiSubpackagerelation>().lambda()
|
||||
.set(PdmBiSubpackagerelation::getCreate_id, SecurityUtils.getCurrentUserId())
|
||||
.set(PdmBiSubpackagerelation::getCreate_name, SecurityUtils.getCurrentNickName())
|
||||
.eq(PdmBiSubpackagerelation::getPackage_box_sn, whereJson.getString("box_no")));
|
||||
|
||||
|
||||
//木箱信息从木箱表里维护
|
||||
// lmsToMesService.momGetPackingInfo(whereJson);
|
||||
|
||||
//判断当前点位是否存在任务,如果存在则不生成任务
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject jsonObject = wo_Task.query("point_code1 = '" + whereJson.getString("point_code") + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonObject)) {
|
||||
throw new BadRequestException("点位【" + jsonObject.getString("point_code1") + "】存在未完成的任务!");
|
||||
SchBaseTask task_jo = schBaseTaskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getPoint_code1, whereJson.getString("point_code"))
|
||||
.lt(SchBaseTask::getTask_status, "07")
|
||||
.eq(SchBaseTask::getIs_delete, "0"));
|
||||
if (ObjectUtil.isNotEmpty(task_jo)) {
|
||||
throw new BadRequestException("点位【" + task_jo.getPoint_code1() + "】存在未完成的任务!");
|
||||
}
|
||||
|
||||
|
||||
@@ -485,7 +500,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("task_type", "010713");
|
||||
taskParam.put("start_device_code", whereJson.getString("point_code"));
|
||||
taskParam.put("next_device_code", "CK2005");
|
||||
taskParam.put("next_device_code", IOSEnum.SPECIAL_POINTS.code("退货入库口"));
|
||||
taskParam.put("vehicle_code", whereJson.getString("box_no"));
|
||||
//taskParam.put("vehicle_code2", whereJson.getString("box_no"));
|
||||
JSONObject param = new JSONObject();
|
||||
@@ -723,7 +738,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
// 如果是移库空并且仓位为空则报错
|
||||
if (ObjectUtil.isNotEmpty(block_num) && ObjectUtil.isEmpty(jsonAttr)) {
|
||||
throw new BadRequestException("转库任务巷道"+block_num+"仓位不足!");
|
||||
throw new BadRequestException("转库任务巷道" + block_num + "仓位不足!");
|
||||
}
|
||||
|
||||
// 为空则新找巷道
|
||||
@@ -767,6 +782,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
/**
|
||||
* 同巷道移库查看库位
|
||||
*
|
||||
* @param jsonParam
|
||||
* @return
|
||||
*/
|
||||
@@ -778,7 +794,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
* 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具
|
||||
*/
|
||||
String block_num = jsonParam.getString("move_block_num");
|
||||
if (StringUtils.isEmpty(block_num)){
|
||||
if (StringUtils.isEmpty(block_num)) {
|
||||
throw new BadRequestException("同巷道分配库位巷道参数不能为空");
|
||||
}
|
||||
JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
|
||||
@@ -802,7 +818,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
// 为空则新找巷道
|
||||
if (ObjectUtil.isEmpty(jsonAttr)) {
|
||||
throw new BadRequestException("当前巷道"+block_num+"没有可用库位");
|
||||
throw new BadRequestException("当前巷道" + block_num + "没有可用库位");
|
||||
}
|
||||
|
||||
notInRowList.clear();
|
||||
|
||||
@@ -304,16 +304,6 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
subs.add(pdmBiSubpackagerelation.getContainer_name());
|
||||
}
|
||||
String package_box_sn = (String) tableData.get(0).get("package_box_sn");
|
||||
|
||||
try {
|
||||
JSONObject param_jo = new JSONObject();
|
||||
param_jo.put("box_no", package_box_sn);
|
||||
param_jo.put("box_weight", pdmBiSubpackagerelations.get(0).getBox_weight());
|
||||
param_jo.put("container_name", subs);
|
||||
lmsToMesServiceImpl.BoxDataCollectionSubmit2(param_jo);
|
||||
} catch (Exception e) {
|
||||
log.error("验箱回传MES异常,BoxDataCollectionSubmit2给MES传输子卷包装关系异常,木箱号为:" + package_box_sn + ",异常信息:" + e);
|
||||
}
|
||||
mst.put("tableData", tableData);
|
||||
// 判断是否已经生成过入库单
|
||||
JSONObject param = new JSONObject();
|
||||
|
||||
@@ -101,7 +101,7 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
||||
structattrQuerry.setStor_id(jsonObject.getString("stor_id"));
|
||||
structattrQuerry.setSect_id(jsonObject.getString("sect_id"));
|
||||
structattrQuerry.setMaterial_id(jsonObject.getString("material_id"));
|
||||
structattrQuerry.setStor_id(jsonObject.getString("vehicle_type"));
|
||||
structattrQuerry.setVehicle_type(jsonObject.getString("vehicle_type"));
|
||||
structattrQuerry.setHeight(result);
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.md.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
|
||||
import org.nl.wms.basedata.master.service.dto.MaterialbaseDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -14,7 +15,7 @@ import java.util.Map;
|
||||
* @description 服务接口
|
||||
* @date 2021-12-07
|
||||
**/
|
||||
public interface MaterialbaseService {
|
||||
public interface MaterialbaseService extends IService<MdMeMaterialBase> {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
|
||||
@@ -43,7 +44,7 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class MaterialbaseServiceImpl implements MaterialbaseService {
|
||||
public class MaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialBaseMapper,MdMeMaterialBase> implements MaterialbaseService {
|
||||
private final ClassstandardService classstandardService;
|
||||
private final MdMeMaterialBaseMapper mdMeMaterialBaseMapper;
|
||||
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.lock_type = '1'
|
||||
AND IFNULL(attr.storagevehicle_code,'') = ''
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.storagevehicle_type = param.vehicle_type
|
||||
<if test="param.not_in_block_num != '' || param.not_in_block_num != null ">
|
||||
AND attr.block_num != param.block_num
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND attr.storagevehicle_type = #{param.vehicle_type}
|
||||
<if test="param.not_in_block_num != '' and param.not_in_block_num != null ">
|
||||
AND attr.block_num != #{param.block_num}
|
||||
</if>
|
||||
<if test=" param.not_block != null ">
|
||||
AND attr.block_num not in
|
||||
@@ -44,8 +44,8 @@
|
||||
WHERE
|
||||
attr.is_used = '1'
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND IFNULL(attr.storagevehicle_code,'') != ''
|
||||
AND box.is_packing = '1'
|
||||
|
||||
@@ -64,10 +64,10 @@
|
||||
</if>
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == param.block_num
|
||||
AND attr.block_num == #{param.block_num}
|
||||
</if>
|
||||
<if test="param.row_num != '' || param.row_num != null ">
|
||||
AND attr.row_num != param.row_num
|
||||
AND attr.row_num != #{param.row_num}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
@@ -84,35 +84,35 @@
|
||||
WHERE
|
||||
attr.is_used = '1'
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND IFNULL(attr.storagevehicle_code,'') != ''
|
||||
AND box.is_packing = '1'
|
||||
|
||||
<if test="param.material_id != '' || param.material_id != null ">
|
||||
AND mater.material_id == param.material_id
|
||||
AND mater.material_id == #{param.material_id}
|
||||
</if>
|
||||
|
||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
||||
AND sub.customer_name == param.customer_name
|
||||
AND sub.customer_name == #{param.customer_name}
|
||||
</if>
|
||||
|
||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
||||
AND sub.customer_name == param.customer_name
|
||||
AND sub.customer_name == #{param.customer_name}
|
||||
</if>
|
||||
|
||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
||||
AND sub.sale_order_name == param.sale_order_name
|
||||
AND sub.sale_order_name == #{param.sale_order_name}
|
||||
</if>
|
||||
|
||||
<if test="param.box_length != '' || param.box_length != null ">
|
||||
AND sub.box_length == param.box_length
|
||||
AND sub.box_length == #{param.box_length}
|
||||
</if>
|
||||
<if test="param.box_width != '' || param.box_width != null ">
|
||||
AND sub.box_width == param.box_width
|
||||
AND sub.box_width == #{param.box_width}
|
||||
</if>
|
||||
<if test="param.box_high != '' || param.box_high != null ">
|
||||
AND sub.box_high == param.box_high
|
||||
AND sub.box_high == #{param.box_high}
|
||||
</if>
|
||||
|
||||
|
||||
@@ -145,10 +145,10 @@
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.lock_type = '1'
|
||||
AND IFNULL(attr.storagevehicle_code,'') != ''
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND attr.zdepth = '2'
|
||||
AND attr.storagevehicle_type = param.vehicle_type
|
||||
AND attr.storagevehicle_type = #{param.vehicle_type}
|
||||
|
||||
AND attr.height in
|
||||
<foreach collection="param.height" open="(" close=")" separator="," index="height">
|
||||
@@ -156,23 +156,23 @@
|
||||
</foreach>
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == param.block_num
|
||||
AND attr.block_num == #{param.block_num}
|
||||
</if>
|
||||
|
||||
<if test="param.product_name != '' || param.product_name != null ">
|
||||
AND sub.product_name == param.product_name
|
||||
AND sub.product_name == #{param.product_name}
|
||||
</if>
|
||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
||||
AND sub.sale_order_name == param.sale_order_name
|
||||
AND sub.sale_order_name == #{param.sale_order_name}
|
||||
</if>
|
||||
<if test="param.box_length != '' || param.box_length != null ">
|
||||
AND sub.box_length == param.box_length
|
||||
AND sub.box_length == #{param.box_length}
|
||||
</if>
|
||||
<if test="param.box_width != '' || param.box_width != null ">
|
||||
AND sub.box_width == param.box_width
|
||||
AND sub.box_width == #{param.box_width}
|
||||
</if>
|
||||
<if test="param.box_high != '' || param.box_high != null ">
|
||||
AND sub.box_high == param.box_high
|
||||
AND sub.box_high == #{param.box_high}
|
||||
</if>
|
||||
|
||||
order by attr.col_num,attr.layer_num ASC
|
||||
@@ -186,10 +186,10 @@
|
||||
WHERE
|
||||
attr.is_used = '1'
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == param.block_num
|
||||
AND attr.block_num == #{param.block_num}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
@@ -204,15 +204,15 @@
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.lock_type = '1'
|
||||
AND IFNULL(attr.storagevehicle_code,'') = ''
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.storagevehicle_type = param.vehicle_type
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND attr.storagevehicle_type = #{param.vehicle_type}
|
||||
AND attr.height in
|
||||
<foreach collection="param.height" open="(" close=")" separator="," index="height">
|
||||
#{height}
|
||||
</foreach>
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == param.block_num
|
||||
AND attr.block_num == #{param.block_num}
|
||||
</if>
|
||||
|
||||
|
||||
@@ -238,16 +238,16 @@
|
||||
WHERE
|
||||
attr.is_used = '1'
|
||||
AND attr.is_delete = '0'
|
||||
AND attr.stor_id = param.stor_id
|
||||
AND attr.sect_id = param.sect_id
|
||||
AND attr.storagevehicle_type = param.vehicle_type
|
||||
AND attr.stor_id = #{param.stor_id}
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
AND attr.storagevehicle_type = #{param.vehicle_type}
|
||||
|
||||
AND attr.height in
|
||||
<foreach collection="param.height" open="(" close=")" separator="," index="height">
|
||||
#{height}
|
||||
</foreach>
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == param.block_num
|
||||
AND attr.block_num == #{param.block_num}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user