opt:空载具出入库
This commit is contained in:
@@ -34,6 +34,8 @@ import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto;
|
||||
import org.nl.wms.decision_manage.service.sectStrategy.IStSectStrategyService;
|
||||
import org.nl.wms.decision_manage.service.sectStrategy.dao.StSectStrategy;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.impl.base.EmptyVehicleOutHandler;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.enums.StragegyTypeEnum;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.record.service.IStIvtStructivtflowService;
|
||||
@@ -354,7 +356,12 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
for (String decisionerType : strategy) {
|
||||
Decisioner decisioner = decisionerMap.get(decisionerType);
|
||||
log.info("执行出库规格:" + decisioner.strategyConfig.getStrategy_name());
|
||||
list = decisioner.handler(list, JSONObject.toJSON(param));
|
||||
if(StragegyTypeEnum.STRAGEGY_TYPE.code("空托盘").equals(param.getStragegyType()) || StatusEnum.IOBILL_TYPE_IN.code("空桶入库").equals(param.getStragegyType())) {
|
||||
EmptyVehicleOutHandler emptyVehicleOutHandler = SpringContextHolder.getBean(EmptyVehicleOutHandler.class);
|
||||
list = emptyVehicleOutHandler.handler(list, (JSONObject) JSON.toJSON(param));
|
||||
} else {
|
||||
list = decisioner.handler(list, JSONObject.toJSON(param));
|
||||
}
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("当前策略" + decisioner.strategyConfig.getStrategy_name() + "无可用货位,分配前数量:" + list.size());
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class StStrategyConfig implements Serializable {
|
||||
*限定参数
|
||||
*/
|
||||
@TableField(typeHandler = FastjsonSortTypeHandler.class)
|
||||
private JSONObject form_data = new JSONObject();;
|
||||
private JSONObject form_data = new JSONObject();
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package org.nl.wms.decision_manage.service.strategyConfig.decisioner.impl.base;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.enums.StragegyTypeEnum;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zxm
|
||||
* @Date 2025年11月4日15:12:37
|
||||
* 空载具出库任务
|
||||
*/
|
||||
@Service("emptyVehicleOut")
|
||||
@Slf4j
|
||||
public class EmptyVehicleOutHandler extends Decisioner<StrategyStructMaterialVO, JSONObject> {
|
||||
|
||||
/**
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
@Override
|
||||
public List<StrategyStructMaterialVO> handler(List<StrategyStructMaterialVO> list, JSONObject param) {
|
||||
//查新空托盘
|
||||
//当前条件只有id,批次
|
||||
log.info("---------执行空托盘出库分配规则---------");
|
||||
BigDecimal planQty = param.getBigDecimal("qty");
|
||||
List<StructattrVechielDto> vechielDtos =
|
||||
iStructattrService.collectVechicleNoGroup(MapOf.of(
|
||||
"stor_code", param.getString("stor_code")
|
||||
, "sect_code", param.getString("sect_code")
|
||||
, "is_lock", "false"
|
||||
, "occupancy_state", "2"
|
||||
, "order_by", "ivt.update_time asc"));
|
||||
if (ObjectUtils.isEmpty(vechielDtos)) {
|
||||
throw new BadRequestException("库存分配失败,失败原因:没有空托盘");
|
||||
}
|
||||
|
||||
List<StrategyStructMaterialVO> divStruct = new ArrayList<>();
|
||||
for (StructattrVechielDto vechielDto : vechielDtos) {
|
||||
StrategyStructMaterialVO materialVO = new StrategyStructMaterialVO();
|
||||
BeanUtils.copyProperties(vechielDto, materialVO);
|
||||
divStruct.add(materialVO);
|
||||
}
|
||||
return divStruct;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -530,7 +530,7 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
param.put("material_code", materDao.getMaterial_code());
|
||||
param.put("pcsn", groupPlate.getPcsn());
|
||||
param.put("qty", dto.getQty());
|
||||
param.put("qty_unit_name", dto.getQty_unit_name());
|
||||
param.put("qty_unit_name", groupPlate.getQty_unit_name());
|
||||
param.put("stor_id", sectattr.getStor_id());
|
||||
param.put("supp_code", groupPlate.getSupp_code());
|
||||
param.put("supp_name", groupPlate.getSupp_name());
|
||||
|
||||
@@ -335,7 +335,9 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
if (StringUtils.isNotBlank(whereJson.getString("search"))) {
|
||||
materialQuery.setSearch(whereJson.getString("search").trim().toUpperCase());
|
||||
}
|
||||
Page mapPage = iMdMeMaterialbaseService.pageMaps(pageQuery.build(), materialQuery.build());
|
||||
|
||||
materialQuery.setIs_used("1");
|
||||
Page mapPage = iMdMeMaterialbaseService.pageMaps(pageQuery.build(), materialQuery.build().orderByAsc("material_code"));
|
||||
return PdaResponse.build(mapPage);
|
||||
}
|
||||
|
||||
@@ -707,12 +709,20 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
|
||||
if (vehicleDao.getStoragevehicle_name().contains("托盘")) {
|
||||
String materialCode = StatusEnum.VEHICLE_TYPE.code("空托盘");
|
||||
whereJson.put("material_id", iMdMeMaterialbaseService.getByCode(materialCode, false).getMaterial_id());
|
||||
MdMeMaterialbase mdMeMaterialbase = iMdMeMaterialbaseService.getByCode(materialCode, false);
|
||||
if(null == mdMeMaterialbase){
|
||||
throw new BadRequestException("请先维护物料编码=【"+StatusEnum.VEHICLE_TYPE.code("空托盘")+"】的空托盘物料");
|
||||
}
|
||||
whereJson.put("material_id", mdMeMaterialbase.getMaterial_id());
|
||||
whereJson.put("material_code", materialCode);
|
||||
whereJson.put("pcsn", "空托盘入库");
|
||||
} else {
|
||||
String materialCode = StatusEnum.VEHICLE_TYPE.code("空料桶");
|
||||
whereJson.put("material_id", iMdMeMaterialbaseService.getByCode(materialCode, false).getMaterial_id());
|
||||
MdMeMaterialbase mdMeMaterialbase = iMdMeMaterialbaseService.getByCode(materialCode, false);
|
||||
if(null == mdMeMaterialbase){
|
||||
throw new BadRequestException("请先维护物料编码=【"+StatusEnum.VEHICLE_TYPE.code("空料桶")+"】的空料桶物料");
|
||||
}
|
||||
whereJson.put("material_id", mdMeMaterialbase.getMaterial_id());
|
||||
whereJson.put("material_code", materialCode);
|
||||
whereJson.put("pcsn", "空料桶入库");
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.sch_manage.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dto.SchBasePointQuery;
|
||||
|
||||
@@ -50,7 +51,7 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
||||
* @param pages 参数
|
||||
* @return IPage<SchBasePoint>
|
||||
*/
|
||||
IPage<SchBasePoint> selectPageLeftJoin(IPage<SchBasePoint> pages, SchBasePointQuery whereJson);
|
||||
IPage<SchBasePoint> selectPageLeftJoin(IPage<SchBasePoint> pages, @Param("whereJson")SchBasePointQuery whereJson);
|
||||
|
||||
SchBasePoint getNotTaskByRegionAndType(String regionCode, String type);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
<where>
|
||||
<if test="whereJson.workshop_code != null and workshop_code != ''">
|
||||
<if test="whereJson.workshop_code != null and whereJson.workshop_code != ''">
|
||||
p.workshop_code = #{whereJson.workshop_code}
|
||||
</if>
|
||||
<if test="whereJson.blurry != null">
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.ext_manage.service.WmsToMesService;
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
@@ -191,8 +191,9 @@ public class VehicleOutTask extends AbstractTask {
|
||||
new UpdateWrapper<SchBasePoint>().lambda()
|
||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
|
||||
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
||||
.set(SchBasePoint::getIng_task_code,null)
|
||||
.set(SchBasePoint::getIng_task_code,null)
|
||||
.set(SchBasePoint::getIos_id, null)
|
||||
.set(SchBasePoint::getVehicle_qty, 1)
|
||||
.set(SchBasePoint::getPoint_status,"2"));
|
||||
|
||||
//删除组盘表
|
||||
|
||||
@@ -225,6 +225,13 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<GroupPlate> groupPlates = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>().lambda()
|
||||
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||
|
||||
outBillService.taskFinish(taskObj);
|
||||
|
||||
//点位2
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
.set(SchBasePoint::getVehicle_code, null)
|
||||
@@ -236,11 +243,6 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
.set(SchBasePoint::getIng_task_code,null)
|
||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()));
|
||||
|
||||
List<GroupPlate> groupPlates = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>().lambda()
|
||||
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||
|
||||
|
||||
boolean groupPlatesNotEmpty = CollectionUtils.isNotEmpty(groupPlates);
|
||||
String groupId = null;
|
||||
if(groupPlatesNotEmpty){
|
||||
@@ -281,8 +283,6 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
// //删除
|
||||
// iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
|
||||
|
||||
outBillService.taskFinish(taskObj);
|
||||
// iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||
// .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||
// .eq(GroupPlate::getStoragevehicle_code,taskObj.getVehicle_code()));
|
||||
|
||||
@@ -10,7 +10,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
|
||||
@@ -180,6 +180,7 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||
|
||||
outBillService.taskFinish(taskObj);
|
||||
|
||||
boolean groupPlatesNotEmpty = CollectionUtils.isNotEmpty(groupPlates);
|
||||
String groupId = null;
|
||||
@@ -211,8 +212,6 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
// .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||
// .eq(GroupPlate::getStoragevehicle_code,taskObj.getVehicle_code()));
|
||||
|
||||
outBillService.taskFinish(taskObj);
|
||||
|
||||
// //删除
|
||||
// iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.nl.common.domain.vo.DeptVo;
|
||||
import org.nl.config.language.LangProcess;
|
||||
import org.nl.wms.system_manage.service.dept.dto.DeptTree;
|
||||
import org.nl.common.utils.CopyUtil;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.system_manage.service.dept.ISysDeptService;
|
||||
import org.nl.wms.system_manage.service.dept.dao.SysDept;
|
||||
import org.nl.wms.system_manage.service.dept.dao.mapper.SysDeptMapper;
|
||||
|
||||
@@ -19,7 +19,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.domain.vo.MenuMetaVo;
|
||||
import org.nl.common.domain.vo.MenuVo;
|
||||
import org.nl.common.utils.CopyUtil;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.config.language.LangProcess;
|
||||
import org.nl.wms.system_manage.service.dict.dao.Dict;
|
||||
import org.nl.wms.system_manage.service.dict.dao.mapper.SysDictMapper;
|
||||
|
||||
@@ -19,7 +19,7 @@ import org.nl.common.utils.dto.CurrentUser;
|
||||
import org.nl.config.FileProperties;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.system_manage.service.dept.ISysDeptService;
|
||||
import org.nl.wms.system_manage.service.role.ISysRoleService;
|
||||
import org.nl.wms.system_manage.service.secutiry.dto.AuthUserDto;
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
||||
|
||||
Reference in New Issue
Block a user