opt:优化物料出库,出库确认。
This commit is contained in:
@@ -68,6 +68,14 @@ public class PdaIosInController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getRegion")
|
||||
@Log("获取区域")
|
||||
public ResponseEntity<Object> getRegion() {
|
||||
return new ResponseEntity<>(pdaIosInService.getRegion(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 组盘获取物料列表
|
||||
*/
|
||||
|
||||
@@ -58,12 +58,10 @@ public class PdaIosOutController {
|
||||
*/
|
||||
@PostMapping("bindOrUnbind")
|
||||
@Log("货架与站点绑定或解绑")
|
||||
public ResponseEntity<Object> bindOrUnbind(@RequestBody JSONObject param) {
|
||||
if (param == null || StringUtils.isEmpty(param.getString("siteCode")) || StringUtils.isEmpty(param.getString("shelfCode")) || StringUtils.isEmpty(param.getString("mode"))) {
|
||||
throw new BadRequestException("请求参数不能为空");
|
||||
}
|
||||
// pdaIosOutService.bindOrUnbind(param.getString("siteCode"), param.getString("shelfCode"), param.getString("mode"));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
public ResponseEntity<Object> bindOrUnbind(@RequestBody JSONObject whereJson) {
|
||||
assertNotBlankJson(whereJson, "请求参数不能为空", "siteCode", "shelfCode", "mode");
|
||||
return new ResponseEntity<>(pdaIosOutService.bindOrUnbind(whereJson), HttpStatus.OK);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -107,10 +105,9 @@ public class PdaIosOutController {
|
||||
*/
|
||||
@PostMapping("transferConfirm")
|
||||
@Log("转运确认")
|
||||
public ResponseEntity<Object> transferConfirm(@RequestBody JSONObject param) {
|
||||
// tranforTask.createTask(param);
|
||||
// return new ResponseEntity<>(pdaIosOutService.confirm(whereJson), HttpStatus.OK);
|
||||
return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK);
|
||||
public ResponseEntity<Object> transferConfirm(@RequestBody JSONObject whereJson) {
|
||||
assertNotBlankJson(whereJson, "请求参数不能为空", "storagevehicle_code");
|
||||
return new ResponseEntity<>(pdaIosOutService.transferConfirm(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -119,10 +116,9 @@ public class PdaIosOutController {
|
||||
*/
|
||||
@PostMapping("vehicleOutConfirm")
|
||||
@Log("空载具出库确认")
|
||||
public ResponseEntity<Object> vehicleOutConfirm(@RequestBody JSONObject param) {
|
||||
// tranforTask.createTask(param);
|
||||
// return new ResponseEntity<>(pdaIosOutService.confirm(whereJson), HttpStatus.OK);
|
||||
return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK);
|
||||
public ResponseEntity<Object> vehicleOutConfirm(@RequestBody JSONObject whereJson) {
|
||||
assertNotBlankJson(whereJson, "请求参数不能为空", "sect_id", "siteCode");
|
||||
return new ResponseEntity<>(pdaIosOutService.vehicleOutConfirm(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,6 +82,16 @@ public interface PdaIosInService {
|
||||
PdaResponse getSect();
|
||||
|
||||
|
||||
/**
|
||||
* 查询区域
|
||||
*
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse getRegion();
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 入库确认
|
||||
*
|
||||
|
||||
@@ -57,6 +57,20 @@ public interface PdaIosOutService {
|
||||
*/
|
||||
PdaResponse materialConfirm(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 货架与站点绑定或解绑
|
||||
*
|
||||
* @param whereJson {
|
||||
* siteCode: 点位
|
||||
* shelfCode: 货架编号
|
||||
* mode: 0解绑1绑定
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse bindOrUnbind(JSONObject whereJson);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 载具出库确认
|
||||
*
|
||||
@@ -67,4 +81,31 @@ public interface PdaIosOutService {
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse outStorageConfirm(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 转运确认
|
||||
*
|
||||
* @param whereJson {
|
||||
* storagevehicle_code: 载具码
|
||||
* point_code: 点位编码
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse transferConfirm(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 空载具出库确认
|
||||
*
|
||||
* @param whereJson {
|
||||
* sect_id: 库区
|
||||
* siteCode: 目标站点
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse vehicleOutConfirm(JSONObject whereJson);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,9 @@ import org.nl.wms.pda.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseRegionService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseRegion;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.BackInTask;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||
@@ -35,7 +37,6 @@ import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
||||
import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -123,6 +124,13 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
private IOStorInvDtlMapper ioStorInvDtlMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 区域服务
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBaseRegionService iSchBaseRegionService;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse groupPlate(JSONObject whereJson) {
|
||||
@@ -241,7 +249,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
@Override
|
||||
public PdaResponse getSect() {
|
||||
PageQuery page = new PageQuery();
|
||||
page.setSize(20);
|
||||
page.setSize(100);
|
||||
page.setPage(0);
|
||||
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), page);
|
||||
List<SectattrDto> result = sectList.getRecords();
|
||||
@@ -250,6 +258,15 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
return PdaResponse.requestParamOk(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getRegion() {
|
||||
PageQuery page = new PageQuery();
|
||||
page.setSize(100);
|
||||
page.setPage(0);
|
||||
IPage<SchBaseRegion> regionList = iSchBaseRegionService.queryAll(new HashMap(), page);
|
||||
return PdaResponse.requestParamOk(regionList.getRecords());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 余料回库确认
|
||||
@@ -282,7 +299,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
params.put("qty", whereJson.getString("qty"));
|
||||
params.put("pcsn", whereJson.getString("pcsn"));
|
||||
Structattr attrDao = iRawAssistIStorService.divBackStruct(params);
|
||||
//获取起点
|
||||
//确定起点
|
||||
SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code")));
|
||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||
throw new BadRequestException("未找到载具所在的点位信息,请检查");
|
||||
@@ -362,7 +379,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
|
||||
jsonMst.put("total_qty", total_qty);
|
||||
jsonMst.put("detail_count", 1);
|
||||
jsonMst.put("bill_type", IOSEnum.BILL_TYPE.code("生产入库"));
|
||||
jsonMst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("生产出库"));
|
||||
jsonMst.put("biz_date", DateUtil.now());
|
||||
// 组织明细数据
|
||||
ArrayList<HashMap> tableData = new ArrayList<>();
|
||||
|
||||
@@ -1,32 +1,52 @@
|
||||
package org.nl.wms.pda.ios_manage.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||
import org.nl.wms.pda.ios_manage.service.PdaIosOutService;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.PdaPointTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
||||
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_management.service.dao.IOStorInv;
|
||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
|
||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper;
|
||||
import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@@ -48,7 +68,17 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
@Autowired
|
||||
private MdPbGroupplateMapper mdPbGroupplateMapper;
|
||||
|
||||
/**
|
||||
* 出入库单主表
|
||||
*/
|
||||
@Resource
|
||||
private IOStorInvMapper ioStorInvMapper;
|
||||
|
||||
/**
|
||||
* 基础物料服务
|
||||
*/
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||
/**
|
||||
* 载具扩展属性服务
|
||||
*/
|
||||
@@ -91,6 +121,13 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
@Autowired
|
||||
private StOutTask stOutTask;
|
||||
|
||||
/**
|
||||
* 手持任务
|
||||
*/
|
||||
@Autowired
|
||||
private PdaPointTask pdaPointTask;
|
||||
|
||||
|
||||
/**
|
||||
* 入库服务服务
|
||||
*/
|
||||
@@ -128,6 +165,56 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse materialConfirm(JSONObject whereJson) {
|
||||
//创建出库单/明细/分配
|
||||
GroupPlate plateDao = mdPbGroupplateMapper.selectOne(
|
||||
new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStoragevehicle_code, whereJson.getString("group_id")));
|
||||
Structattr sectDao = iStructattrService.getOne(new LambdaQueryWrapper<Structattr>()
|
||||
.eq(Structattr::getStruct_code, whereJson.getString("struct_code")));
|
||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id());
|
||||
whereJson.put("material_id", materDao.getMaterial_id());
|
||||
whereJson.put("material_code", materDao.getMaterial_code());
|
||||
whereJson.put("store_id", sectDao.getStor_id());
|
||||
whereJson.put("store_code", sectDao.getStor_code());
|
||||
whereJson.put("store_name", sectDao.getStor_name());
|
||||
whereJson.put("sec", sectDao.getSect_id());
|
||||
whereJson.put("qty", plateDao.getQty());
|
||||
whereJson.put("pcsn", plateDao.getPcsn());
|
||||
whereJson.put("unit_id", plateDao.getQty_unit_id());
|
||||
whereJson.put("unit_name", plateDao.getQty_unit_name());
|
||||
//创建出库单据
|
||||
String disId = createOutBills(whereJson);
|
||||
//锁定货位
|
||||
JSONObject lock_map = new JSONObject();
|
||||
lock_map.put("struct_code", whereJson.getString("struct_code"));
|
||||
lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁"));
|
||||
iStructattrService.updateStatusByCode("0", lock_map);
|
||||
//创建任务
|
||||
JSONObject taskForm = new JSONObject();
|
||||
taskForm.put("task_type", "STOutTask");
|
||||
taskForm.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
taskForm.put("PickingLocation", whereJson.getString("struct_code"));
|
||||
taskForm.put("PlacedLocation", whereJson.getString("siteCode"));
|
||||
taskForm.put("vehicle_code", whereJson.getString("storagevehicle_code"));
|
||||
StOutTask stOutTask = SpringContextHolder.getBean("STOutTask");
|
||||
String taskId = stOutTask.create(taskForm);
|
||||
//更新任务id
|
||||
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<IOStorInvDis>()
|
||||
.set(IOStorInvDis::getTask_id, taskId)
|
||||
.eq(IOStorInvDis::getIostorinvdis_id, disId)
|
||||
);
|
||||
//更新组盘记录表
|
||||
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||
.eq(GroupPlate::getGroup_id, whereJson.getString("group_id"))
|
||||
);
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse vehicleOutConfirm(JSONObject whereJson) {
|
||||
//锁定货位
|
||||
JSONObject lock_map = new JSONObject();
|
||||
lock_map.put("struct_code", whereJson.getString("struct_code"));
|
||||
@@ -151,6 +238,110 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
private String createOutBills(JSONObject whereJson) {
|
||||
String now = DateUtil.now();
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
//主单
|
||||
JSONObject io_mst = new JSONObject();
|
||||
String iostorinv_id = IdUtil.getStringId();
|
||||
String bill_code = CodeUtil.getNewCode("IN_STORE_CODE");
|
||||
io_mst.put("iostorinv_id", iostorinv_id);
|
||||
io_mst.put("bill_code", bill_code);
|
||||
io_mst.put("io_type", IOSEnum.IO_TYPE.code("出库"));
|
||||
io_mst.put("bill_type", StatusEnum.IOBILL_TYPE_OUT.code("生产出库"));
|
||||
io_mst.put("biz_date", now.substring(0, 10));
|
||||
io_mst.put("stor_id", whereJson.get("store_id"));
|
||||
io_mst.put("stor_code", whereJson.get("store_code"));
|
||||
io_mst.put("stor_name", whereJson.get("store_name"));
|
||||
io_mst.put("detail_count", 1);
|
||||
io_mst.put("bill_status", IOSEnum.BILL_STATUS.code("分配完"));
|
||||
io_mst.put("create_mode", IOSEnum.CREATE_MODE.code("PC产生"));
|
||||
io_mst.put("input_optid", currentUserId + "");
|
||||
io_mst.put("input_optname", nickName);
|
||||
io_mst.put("input_time", now);
|
||||
io_mst.put("update_optid", currentUserId + "");
|
||||
io_mst.put("update_optname", nickName);
|
||||
io_mst.put("update_time", now);
|
||||
io_mst.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||
io_mst.put("is_upload", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||
Long deptId = SecurityUtils.getDeptId();
|
||||
io_mst.put("sysdeptid", deptId + "");
|
||||
io_mst.put("syscompanyid", deptId + "");
|
||||
io_mst.put("qty", whereJson.get("store_code"));
|
||||
ioStorInvMapper.insert(io_mst.toJavaObject(IOStorInv.class));
|
||||
//明细
|
||||
JSONObject ioStorInvDtl = new JSONObject();
|
||||
ioStorInvDtl.put("iostorinvdtl_id", IdUtil.getStringId());
|
||||
ioStorInvDtl.put("iostorinv_id", iostorinv_id);
|
||||
ioStorInvDtl.put("seq_no", "1");
|
||||
ioStorInvDtl.put("material_id", whereJson.get("material_id"));
|
||||
ioStorInvDtl.put("material_code", whereJson.get("material_code"));
|
||||
ioStorInvDtl.put("Pcsn", whereJson.get("pcsn"));
|
||||
ioStorInvDtl.put("bill_status", IOSEnum.BILL_STATUS.code("分配完"));
|
||||
ioStorInvDtl.put("qty_unit_id", whereJson.get("unit_id"));
|
||||
ioStorInvDtl.put("qty_unit_name", whereJson.get("unit_name"));
|
||||
ioStorInvDtl.put("assign_qty", whereJson.get("qty"));
|
||||
ioStorInvDtl.put("unassign_qty", "0");
|
||||
ioStorInvDtl.put("plan_qty", whereJson.get("qty"));
|
||||
ioStorInvDtlMapper.insert(ioStorInvDtl.toJavaObject(IOStorInvDtl.class));
|
||||
//分配
|
||||
JSONObject dis = new JSONObject();
|
||||
String disId = IdUtil.getStringId();
|
||||
dis.put("iostorinvdis_id", disId);
|
||||
dis.put("iostorinv_id", iostorinv_id);
|
||||
dis.put("iostorinvdtl_id", ioStorInvDtl.getString("iostorinvdtl_id"));
|
||||
dis.put("seq_no", 1);
|
||||
dis.put("material_id", whereJson.get("material_id"));
|
||||
dis.put("material_code", whereJson.get("material_code"));
|
||||
dis.put("pcsn", whereJson.get("pcsn"));
|
||||
dis.put("storagevehicle_code", whereJson.get("storagevehicle_code"));
|
||||
dis.put("work_status", IOSEnum.INBILL_DIS_STATUS.code("执行中"));
|
||||
dis.put("is_issued", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||
dis.put("qty_unit_id", whereJson.get("unit_id"));
|
||||
dis.put("qty_unit_name", whereJson.get("unit_name"));
|
||||
dis.put("plan_qty", whereJson.get("qty"));
|
||||
ioStorInvDisMapper.insert(dis.toJavaObject(IOStorInvDis.class));
|
||||
return disId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PdaResponse bindOrUnbind(JSONObject whereJson) {
|
||||
SchBasePoint sitePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode")).eq(SchBasePoint::getIs_used, true));
|
||||
if (sitePoint == null) {
|
||||
throw new BadRequestException("输入的站点编号有误或被禁用,请检查!");
|
||||
}
|
||||
List<SchBasePoint> cxPointLists = iSchBasePointService.checkEndPointTask(
|
||||
null,
|
||||
null,
|
||||
StatusEnum.SORT_TYPE.code("升序"), null, sitePoint.getPoint_code(), null, false);
|
||||
if (ObjectUtils.isNotEmpty(cxPointLists)) {
|
||||
throw new BadRequestException("该货架正在执行输送任务,状态为锁定,请等任务完成再做绑定或解绑!");
|
||||
}
|
||||
LambdaUpdateWrapper<SchBasePoint> wrapper = new LambdaUpdateWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode"));
|
||||
if ("1" .equals(whereJson.getString("mode"))) {
|
||||
if (StringUtils.isNotBlank(sitePoint.getVehicle_code())) {
|
||||
throw new BadRequestException("当前站点已绑定货架:" + sitePoint.getVehicle_code() + ",请先解绑:" + sitePoint.getVehicle_code());
|
||||
}
|
||||
//校验是否在其他站点绑定
|
||||
SchBasePoint shelfPoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("shelfCode")));
|
||||
if (shelfPoint != null) {
|
||||
throw new BadRequestException("当前货架已绑定在站点:" + sitePoint.getPoint_code() + ",请先解绑。");
|
||||
}
|
||||
wrapper.set(SchBasePoint::getVehicle_code, whereJson.getString("shelfCode"))
|
||||
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"));
|
||||
} else {
|
||||
wrapper.set(SchBasePoint::getVehicle_code, null)
|
||||
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"));
|
||||
}
|
||||
wrapper.set(SchBasePoint::getUpdate_time, DateUtil.now())
|
||||
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName());
|
||||
iSchBasePointService.update(wrapper);
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -163,10 +354,12 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
GroupPlate groupPlate = mdPbGroupplateMapper.selectById(whereJson.getString("group_id"));
|
||||
//更新组盘信息
|
||||
LambdaUpdateWrapper<GroupPlate> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
//出库确认
|
||||
if ("1" .equals(whereJson.getString("type"))) {
|
||||
BigDecimal qty = groupPlate.getQty().subtract(groupPlate.getFrozen_qty()).abs();
|
||||
updateWrapper.set(GroupPlate::getQty, qty).set(GroupPlate::getFrozen_qty, 0);
|
||||
} else {
|
||||
//强制确认
|
||||
updateWrapper.set(GroupPlate::getQty, 0).set(GroupPlate::getFrozen_qty, 0);
|
||||
}
|
||||
updateWrapper.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")).eq(GroupPlate::getGroup_id, whereJson.getString("group_id"));
|
||||
@@ -174,4 +367,45 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
// iSchBasePointService.unLockPoint(pointDao.getPoint_code());
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse transferConfirm(JSONObject whereJson) {
|
||||
if (StringUtils.isBlank(whereJson.getString("region_code")) && StringUtils.isBlank(whereJson.getString("siteCode"))) {
|
||||
throw new BadRequestException("请选择目标站点或区域!");
|
||||
}
|
||||
String pointCode = whereJson.getString("siteCode");
|
||||
if (StringUtils.isBlank(pointCode)) {
|
||||
List<SchBasePoint> pointList = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, whereJson.getString("region_code"))
|
||||
.eq(SchBasePoint::getIs_used, 1)
|
||||
.isNull(SchBasePoint::getVehicle_code)
|
||||
.orderByAsc(SchBasePoint::getIn_order_seq));
|
||||
if (CollectionUtils.isEmpty(pointList)) {
|
||||
throw new BadRequestException("该区域无可用空余点位!");
|
||||
}
|
||||
pointCode = pointList.get(0).getPoint_code();
|
||||
}
|
||||
//确定起点
|
||||
SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code")));
|
||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||
throw new BadRequestException("未找到载具所在的点位信息,请检查");
|
||||
}
|
||||
// 生成回库任务
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("config_code", IOSConstant.PDA_POINT_TASK);
|
||||
task.put("point_code1", schBasePoint.getPoint_code());
|
||||
task.put("point_code2", pointCode);
|
||||
task.put("vehicle_code", whereJson.getString("storagevehicle_code"));
|
||||
task.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
|
||||
pdaPointTask.create(task);
|
||||
// 更新起点绑定id
|
||||
iSchBasePointService.update(
|
||||
new UpdateWrapper<SchBasePoint>().lambda()
|
||||
.set(SchBasePoint::getIos_id, null)
|
||||
.eq(SchBasePoint::getPoint_code, schBasePoint.getPoint_code())
|
||||
);
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,4 +90,19 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
* @param point_code 点位编码
|
||||
*/
|
||||
void unLockPoint(String point_code);
|
||||
|
||||
/**
|
||||
* 查询没有搬运任务的空的目标点位
|
||||
*
|
||||
* @param regionCode 点位类型
|
||||
* @param getLockType 锁定状态
|
||||
* @param sortType 点位排序规则1:升序2:降序
|
||||
* @param pointType 0空载具1满载具
|
||||
* @param pointCode 点位编码
|
||||
* @param vehicleIsNull 载具是否为空
|
||||
* @param isFourPoint 是否判断4个任务点位
|
||||
* @return List<SchBasePoint>
|
||||
*/
|
||||
List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
||||
pointType, String pointCode, String vehicleIsNull, boolean isFourPoint);
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dto.SchBaseTaskQuery;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -68,4 +70,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
* @return /
|
||||
*/
|
||||
SchBaseTask getByCode(String taskCode);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch_manage.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTaskconfig;
|
||||
|
||||
import java.util.List;
|
||||
@@ -51,4 +52,7 @@ public interface ISchBaseTaskconfigService extends IService<SchBaseTaskconfig> {
|
||||
* @return List<SchBaseTaskconfig>
|
||||
*/
|
||||
List<SchBaseTaskconfig> getTaskConfigList();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.nl.wms.sch_manage.service.dto.SchBaseTaskQuery;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author lyd
|
||||
@@ -31,4 +32,9 @@ public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
||||
* }
|
||||
*/
|
||||
List<JSONObject> queryPdaTask(@Param("param") JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 获取点位任务数量
|
||||
*/
|
||||
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
||||
}
|
||||
|
||||
@@ -102,4 +102,29 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getTaskList" resultType="org.nl.wms.sch_manage.service.dao.SchBaseTask">
|
||||
SELECT config_code,task_id,point_code1, point_code2
|
||||
FROM sch_base_task
|
||||
WHERE
|
||||
<trim prefix="(" suffix=")" prefixOverrides="OR">
|
||||
<if test="pointCodes1 != null and pointCodes1.size() > 0">
|
||||
OR point_code1 IN
|
||||
<foreach item="code" collection="pointCodes1" open="(" separator="," close=")"> #{code} </foreach>
|
||||
</if>
|
||||
<if test="pointCodes2 != null and pointCodes2.size() > 0">
|
||||
OR point_code2 IN
|
||||
<foreach item="code" collection="pointCodes2" open="(" separator="," close=")"> #{code} </foreach>
|
||||
</if>
|
||||
<if test="pointCodes3 != null and pointCodes3.size() > 0">
|
||||
OR point_code3 IN
|
||||
<foreach item="code" collection="pointCodes3" open="(" separator="," close=")"> #{code} </foreach>
|
||||
</if>
|
||||
<if test="pointCodes4 != null and pointCodes4.size() > 0">
|
||||
OR point_code4 IN
|
||||
<foreach item="code" collection="pointCodes4" open="(" separator="," close=")"> #{code} </foreach>
|
||||
</if>
|
||||
</trim>
|
||||
AND (status <![CDATA[ < ]]> '80')
|
||||
AND (is_delete = '0')
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -11,25 +11,32 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseRegion;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseRegionMapper;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.sch_manage.service.dto.SchBasePointQuery;
|
||||
import org.nl.wms.sch_manage.service.util.PointUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
@@ -45,6 +52,8 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
|
||||
@Autowired
|
||||
private SchBaseRegionMapper regionMapper;
|
||||
@Autowired
|
||||
private SchBaseTaskMapper schBaseTaskMapper;
|
||||
|
||||
@Override
|
||||
public IPage<SchBasePoint> queryAll(SchBasePointQuery whereJson, PageQuery page) {
|
||||
@@ -191,10 +200,91 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
public void unLockPoint(String point_code) {
|
||||
this.update(
|
||||
new UpdateWrapper<SchBasePoint>().lambda()
|
||||
.eq(SchBasePoint::getPoint_code, point_code)
|
||||
.set(SchBasePoint::getVehicle_code, null)
|
||||
.set(SchBasePoint::getIos_id, null)
|
||||
.eq(SchBasePoint::getPoint_code, point_code)
|
||||
.set(SchBasePoint::getVehicle_code, null)
|
||||
.set(SchBasePoint::getIos_id, null)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询没有搬运任务的空的目标点位
|
||||
*
|
||||
* @param regionCode 点位类型
|
||||
* @param getLockType 锁定状态
|
||||
* @param sortType 点位排序规则1:升序2:降序
|
||||
* @param pointType 0空载具1满载具
|
||||
* @param pointCode 点位编码
|
||||
* @param vehicleIsNull 载具是否为空
|
||||
* @return List<SchBasePoint>
|
||||
*/
|
||||
@Override
|
||||
public List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
||||
pointType, String pointCode, String vehicleIsNull, boolean isFourPoint) {
|
||||
Set<String> pointSets;
|
||||
List<SchBaseTask> taskList;
|
||||
List<SchBasePoint> returList = new ArrayList<>();
|
||||
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getIs_used, true);
|
||||
if (StringUtils.isNotBlank(regionCode)) {
|
||||
queryWrapper.eq(SchBasePoint::getRegion_code, regionCode);
|
||||
}
|
||||
if (StringUtils.isNotBlank(pointCode)) {
|
||||
queryWrapper.eq(SchBasePoint::getPoint_code, pointCode);
|
||||
}
|
||||
if (StringUtils.isNotBlank(getLockType)) {
|
||||
queryWrapper.eq(SchBasePoint::getPoint_status, getLockType);
|
||||
}
|
||||
if (StringUtils.isNotBlank(pointType)) {
|
||||
queryWrapper.eq(SchBasePoint::getPoint_type, pointType);
|
||||
}
|
||||
if (StringUtils.isNotBlank(vehicleIsNull)) {
|
||||
boolean isNull = Boolean.parseBoolean(vehicleIsNull);
|
||||
if (isNull) {
|
||||
queryWrapper.isNull(SchBasePoint::getVehicle_code);
|
||||
} else {
|
||||
queryWrapper.isNotNull(SchBasePoint::getVehicle_code);
|
||||
}
|
||||
}
|
||||
if (StatusEnum.SORT_TYPE.code("升序").equals(sortType)) {
|
||||
queryWrapper.orderByAsc(SchBasePoint::getPoint_code);
|
||||
} else if (StatusEnum.SORT_TYPE.code("降序").equals(sortType)) {
|
||||
queryWrapper.orderByDesc(SchBasePoint::getPoint_code);
|
||||
} else {
|
||||
queryWrapper.orderByAsc(SchBasePoint::getPoint_code);
|
||||
}
|
||||
List<SchBasePoint> ivtList = this.list(queryWrapper);
|
||||
Set<String> pointIds = ivtList.stream()
|
||||
.map(SchBasePoint::getPoint_code)
|
||||
.collect(Collectors.toSet());
|
||||
if (ObjectUtils.isEmpty(pointIds)) {
|
||||
return returList;
|
||||
}
|
||||
if (isFourPoint) {
|
||||
//点位任务
|
||||
taskList = schBaseTaskMapper.getTaskList(pointIds, pointIds, pointIds, pointIds);
|
||||
pointSets = taskList.stream()
|
||||
.flatMap(task -> Stream.of(
|
||||
task.getPoint_code1(),
|
||||
task.getPoint_code2(),
|
||||
task.getPoint_code3(),
|
||||
task.getPoint_code4()
|
||||
))
|
||||
.filter(point -> point != null && !point.trim().isEmpty())
|
||||
.collect(Collectors.toSet());
|
||||
} else {
|
||||
taskList = schBaseTaskMapper.getTaskList(pointIds, pointIds, null, null);
|
||||
pointSets = taskList.stream()
|
||||
.flatMap(task -> Stream.of(
|
||||
task.getPoint_code1(),
|
||||
task.getPoint_code2()
|
||||
))
|
||||
.filter(point -> point != null && !point.trim().isEmpty())
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
}
|
||||
//符合条件的库存点位过滤掉已存在任务的点位
|
||||
return ivtList.stream()
|
||||
.filter(p -> !pointSets.contains(p.getPoint_code()) && p.getPoint_status().equals(getLockType))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,12 +12,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.sch_manage.service.dto.SchBaseTaskQuery;
|
||||
@@ -27,11 +32,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
@@ -45,6 +48,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
@Autowired
|
||||
private SchBaseTaskMapper schBaseTaskMapper;
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
|
||||
@Autowired
|
||||
private TaskFactory taskFactory;
|
||||
|
||||
@@ -161,4 +167,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
return this.getOne(lam);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -34,10 +34,7 @@ public class IOStorInv implements Serializable {
|
||||
*/
|
||||
private String io_type;
|
||||
|
||||
/**
|
||||
* 业务类型
|
||||
*/
|
||||
private String buss_type;
|
||||
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
|
||||
@@ -278,7 +278,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
map.put("bill_code", bill_code);
|
||||
map.put("biz_date", map.getString("biz_date").substring(0, 10));
|
||||
String bill_type = (String) map.get("bill_type");
|
||||
map.put("buss_type", bill_type.substring(0, 4));
|
||||
map.put("io_type", IOSEnum.IO_TYPE.code("出库"));
|
||||
map.put("detail_count", array.size() + "");
|
||||
map.put("create_mode", IOSEnum.CREATE_MODE.code("PC产生"));
|
||||
|
||||
@@ -16,7 +16,6 @@ import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
@@ -87,7 +86,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
@Override
|
||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("buss_type", (String) whereJson.get("buss_type"));
|
||||
map.put("stor_id", (String) whereJson.get("stor_id"));
|
||||
map.put("bill_type", (String) whereJson.get("bill_type"));
|
||||
map.put("create_mode", (String) whereJson.get("create_mode"));
|
||||
@@ -144,7 +142,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
String bill_code = CodeUtil.getNewCode("IN_STORE_CODE");
|
||||
io_mst.put("iostorinv_id", iostorinv_id);
|
||||
io_mst.put("bill_code", bill_code);
|
||||
io_mst.put("buss_type", ((String) whereJson.get("bill_type")).substring(0, 4));
|
||||
io_mst.put("io_type", IOSEnum.IO_TYPE.code("入库"));
|
||||
io_mst.put("bill_type", whereJson.get("bill_type"));
|
||||
io_mst.put("biz_date", whereJson.get("biz_date").toString().substring(0, 10));
|
||||
@@ -364,11 +361,11 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, map.get("storagevehicle_code"))
|
||||
);
|
||||
//判断仓位的长高宽是否能放下载具
|
||||
if (structattr.getWidth() < 0 &&
|
||||
structattr.getHeight() < 0 &&
|
||||
structattr.getZdepth() < 0) {
|
||||
throw new BadRequestException("载具不符合,请检查!");
|
||||
}
|
||||
// if (structattr.getWidth() < 0 &&
|
||||
// structattr.getHeight() < 0 &&
|
||||
// structattr.getZdepth() < 0) {
|
||||
// throw new BadRequestException("载具不符合,请检查!");
|
||||
// }
|
||||
sect_id = map.get("sect_id");
|
||||
sect_code = map.get("sect_code");
|
||||
sect_name = map.get("sect_name");
|
||||
@@ -469,7 +466,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
* pcsn 批次号
|
||||
*/
|
||||
public Structattr getStructattr(JSONObject param) {
|
||||
return RedissonUtils.lockAndReturn(() -> {
|
||||
List<Structattr> structattrs = iStructattrService.inBoundSectDiv(
|
||||
StrategyStructParam.builder()
|
||||
.ioType(param.getString("ioType"))
|
||||
@@ -484,7 +480,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
throw new BadRequestException("无可用货位");
|
||||
}
|
||||
return structattrs.get(0);
|
||||
}, "1" + param.getString("stor_code"), 5);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user