fix:1.持出库确认校验载具库存是否存在;
2.如果出库单据空出,修复ERP源单据数量;
This commit is contained in:
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.domain.constant.DictConstantPool;
|
import org.nl.common.domain.constant.DictConstantPool;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
@@ -17,9 +18,10 @@ import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
|||||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
|
||||||
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 org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@@ -49,6 +51,8 @@ public class OutStorageTask extends AbstractTask {
|
|||||||
private IStIvtStructattrService iStIvtStructattrService;
|
private IStIvtStructattrService iStIvtStructattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||||
|
@Autowired
|
||||||
|
private IPmFormDataService iPmFormDataService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -57,23 +61,23 @@ public class OutStorageTask extends AbstractTask {
|
|||||||
String target_point = from.getString("target_point");
|
String target_point = from.getString("target_point");
|
||||||
//通过全局变量获取目标位置
|
//通过全局变量获取目标位置
|
||||||
String product_area = from.getString("product_area");
|
String product_area = from.getString("product_area");
|
||||||
if (StringUtils.isEmpty(product_area)){
|
if (StringUtils.isEmpty(product_area)) {
|
||||||
JSONObject formData = from.getJSONObject("form_data");
|
JSONObject formData = from.getJSONObject("form_data");
|
||||||
if (!StringUtils.isEmpty(formData.getString("product_area"))){
|
if (!StringUtils.isEmpty(formData.getString("product_area"))) {
|
||||||
product_area = formData.getString("product_area");
|
product_area = formData.getString("product_area");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(product_area)){
|
if (StringUtils.isNotEmpty(product_area)) {
|
||||||
String configTarget;
|
String configTarget;
|
||||||
if (vehicle_code.contains("T")){
|
if (vehicle_code.contains("T")) {
|
||||||
configTarget = DictConstantPool.PRODUCT_OUT_POINT_TP.get(product_area);
|
configTarget = DictConstantPool.PRODUCT_OUT_POINT_TP.get(product_area);
|
||||||
}else {
|
} else {
|
||||||
configTarget = DictConstantPool.PRODUCT_OUT_POINT.get(product_area);
|
configTarget = DictConstantPool.PRODUCT_OUT_POINT.get(product_area);
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(configTarget)){
|
if (StringUtils.isEmpty(configTarget)) {
|
||||||
throw new BadRequestException("创建任务失败:出库点车间点位对应关系配置异常");
|
throw new BadRequestException("创建任务失败:出库点车间点位对应关系配置异常");
|
||||||
}
|
}
|
||||||
target_point=configTarget;
|
target_point = configTarget;
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){
|
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){
|
||||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.nl.wms.dispatch_manage.task.service;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@@ -63,4 +64,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
|||||||
|
|
||||||
JSONObject errorTask(JSONObject param,String type);
|
JSONObject errorTask(JSONObject param,String type);
|
||||||
|
|
||||||
|
JSONObject getIoSourceFormData(String vehicle_code, String pcsn);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.wms.dispatch_manage.task.service.dao.mapper;
|
package org.nl.wms.dispatch_manage.task.service.dao.mapper;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -24,4 +25,6 @@ public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
|||||||
IPage<SchBaseTask> selectPageLeftJoin(IPage<SchBaseTask> pages, @Param("whereJson") SchBaseTaskQuery whereJson, @Param("collect") List<String> collect);
|
IPage<SchBaseTask> selectPageLeftJoin(IPage<SchBaseTask> pages, @Param("whereJson") SchBaseTaskQuery whereJson, @Param("collect") List<String> collect);
|
||||||
|
|
||||||
List<Map> getByVehicle(@Param("vehicles") List<String> vehicles);
|
List<Map> getByVehicle(@Param("vehicles") List<String> vehicles);
|
||||||
|
|
||||||
|
JSONObject getIoSourceFormData(@Param("vehicle_code") String vehicle_code, @Param("pcsn") String pcsn);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,17 @@
|
|||||||
</where>
|
</where>
|
||||||
ORDER BY t.create_time DESC
|
ORDER BY t.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getIoSourceFormData" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
st_ivt_iostorinvdtl.source_form_data
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv ON st_ivt_iostorinv.id = st_ivt_iostorinvdtl.inv_id
|
||||||
|
WHERE
|
||||||
|
vehicle_code = #{vehicle_code}
|
||||||
|
AND pcsn = #{pcsn}
|
||||||
|
AND st_ivt_iostorinv.STATUS <![CDATA[<]]> 80
|
||||||
|
</select>
|
||||||
<select id="getByVehicle" resultType="java.util.Map">
|
<select id="getByVehicle" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
md_pb_vehicleMater.*,
|
md_pb_vehicleMater.*,
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
package org.nl.wms.dispatch_manage.task.service.impl;
|
package org.nl.wms.dispatch_manage.task.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.http.HttpStatus;
|
import cn.hutool.http.HttpStatus;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import cn.hutool.core.lang.Assert;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
@@ -20,10 +23,9 @@ import org.nl.common.publish.BussEventMulticaster;
|
|||||||
import org.nl.common.utils.*;
|
import org.nl.common.utils.*;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.impl.MoveStorageTask;
|
import org.nl.wms.dispatch_manage.task.handler.impl.MoveStorageTask;
|
||||||
|
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper;
|
import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper;
|
||||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery;
|
import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery;
|
||||||
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
||||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
||||||
@@ -32,6 +34,8 @@ import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
|||||||
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -63,9 +67,10 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
private MoveStorageTask moveStorageTask;
|
private MoveStorageTask moveStorageTask;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private WmsToAcsService wmsToAcsService;
|
private WmsToAcsService wmsToAcsService;
|
||||||
|
@Autowired
|
||||||
|
private IPmFormDataService iPmFormDataService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
||||||
@@ -176,6 +181,26 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
.in("task_code", taskCodes));
|
.in("task_code", taskCodes));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("取消"))) {
|
||||||
|
//出库任务空出取消,ERP源单数量变更回去
|
||||||
|
List<MdPbVehicleMater> vehicleMaterList = iMdPbVehicleMaterService.list(
|
||||||
|
new QueryWrapper<MdPbVehicleMater>()
|
||||||
|
.eq("task_code", task.getTask_code()).eq("vehicle_code", task.getVehicle_code())
|
||||||
|
|
||||||
|
);
|
||||||
|
if (ObjectUtils.isNotEmpty(vehicleMaterList)) {
|
||||||
|
//查找未完成的出库单与明细
|
||||||
|
JSONObject formData = this.getIoSourceFormData(task.getVehicle_code(), vehicleMaterList.get(0).getPcsn());
|
||||||
|
if (formData != null) {
|
||||||
|
String formDataId = formData.getJSONObject("source_form_data").getString("id");
|
||||||
|
String qty = formData.getJSONObject("source_form_data").getString("qty");
|
||||||
|
if (StringUtils.isNotBlank(formDataId) && StringUtils.isNotBlank(qty)) {
|
||||||
|
iPmFormDataService.update(new LambdaUpdateWrapper<PmFormData>()
|
||||||
|
.set(PmFormData::getQty, qty)
|
||||||
|
.eq(PmFormData::getId, formDataId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
.set("status", param.getString("status"))
|
.set("status", param.getString("status"))
|
||||||
@@ -238,6 +263,11 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JSONObject getIoSourceFormData(String vehicle_code, String pcsn) {
|
||||||
|
return this.baseMapper.getIoSourceFormData(vehicle_code, pcsn);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void moveTask(SchBaseTask task, String struct_code, StIvtStructattr stIvtStructattr) {
|
private void moveTask(SchBaseTask task, String struct_code, StIvtStructattr stIvtStructattr) {
|
||||||
AtomicReference<String> moveStruct = new AtomicReference<>();
|
AtomicReference<String> moveStruct = new AtomicReference<>();
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||||
@@ -18,9 +20,9 @@ import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
|||||||
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||||
import org.nl.wms.pda_manage.palletio.service.PalletIostorinvService;
|
|
||||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||||
|
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@@ -30,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -47,10 +50,11 @@ public class IOStorageController {
|
|||||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IActRuExecutionService iActRuExecutionService;
|
private IActRuExecutionService iActRuExecutionService;
|
||||||
@Autowired
|
|
||||||
private IPmFormDataService iPmFormDataService;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdGruopDickService iMdGruopDickService;
|
private IMdGruopDickService iMdGruopDickService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtStructattrService iStIvtStructattrService;
|
||||||
|
|
||||||
@PostMapping("out")
|
@PostMapping("out")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
@@ -60,16 +64,27 @@ public class IOStorageController {
|
|||||||
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||||
.eq("vehicle_code", vehicle_code)
|
.eq("vehicle_code", vehicle_code)
|
||||||
.eq("is_delete", false));
|
.eq("is_delete", false));
|
||||||
if (one!=null){
|
if (one != null) {
|
||||||
|
//校验料箱是否还存在库存
|
||||||
|
RedissonUtils.lock(() -> {
|
||||||
|
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||||
|
.eq("is_used", true)
|
||||||
|
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||||
|
.eq("vehicle_code", vehicle_code);
|
||||||
|
List<StIvtStructattr> list = iStIvtStructattrService.list(query);
|
||||||
|
if (ObjectUtils.isNotEmpty(list)) {
|
||||||
|
throw new BadRequestException(String.format("出库确认失败:当前载具号在立库的库位:%s中,请检查!", list.get(0).getStruct_code()));
|
||||||
|
}
|
||||||
|
}, StatusEnum.STRATEGY_TYPE.code("出库") + vehicle_code, 5);
|
||||||
//流程校验
|
//流程校验
|
||||||
String proc_inst_id = one.getProc_inst_id();
|
String proc_inst_id = one.getProc_inst_id();
|
||||||
if (!StringUtils.isEmpty(proc_inst_id)){
|
if (!StringUtils.isEmpty(proc_inst_id)) {
|
||||||
String parent_id = iActRuExecutionService.getParentByChild(proc_inst_id);
|
String parent_id = iActRuExecutionService.getParentByChild(proc_inst_id);
|
||||||
ActRuExecution ruExecution = iActRuExecutionService.getOne(new QueryWrapper<ActRuExecution>()
|
ActRuExecution ruExecution = iActRuExecutionService.getOne(new QueryWrapper<ActRuExecution>()
|
||||||
.eq("proc_inst_id",parent_id)
|
.eq("proc_inst_id", parent_id)
|
||||||
.lt("status", StatusEnum.FLOW_STATUS.code("完成")));
|
.lt("status", StatusEnum.FLOW_STATUS.code("完成")));
|
||||||
if (ruExecution!=null){
|
if (ruExecution != null) {
|
||||||
throw new BadRequestException(String.format("当前载具%s业务流程%s未完成",vehicle_code,parent_id));
|
throw new BadRequestException(String.format("当前载具%s业务流程%s未完成", vehicle_code, parent_id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//单据校验"针对托盘库做条件判断
|
//单据校验"针对托盘库做条件判断
|
||||||
|
|||||||
Reference in New Issue
Block a user