add:出库功能
This commit is contained in:
@@ -24,7 +24,7 @@ public enum StatusEnum {
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
FORM_STATUS(MapOf.of("生成", "10", "执行中", "20","完成", "90","取消", "100")),
|
||||
FORM_STATUS(MapOf.of("生成", "10","已分配", "13", "执行中", "20","完成", "90","取消", "100")),
|
||||
|
||||
/**
|
||||
* 出入库单据类型
|
||||
|
||||
@@ -17,6 +17,8 @@ public class VehicleMaterQuery extends BaseQuery<MdPbVehicleMater> {
|
||||
private String vehicle_code_begin;
|
||||
private String vehicle_code_end;
|
||||
private String vehicle_type;
|
||||
private String pcsn;
|
||||
private String material_id;
|
||||
|
||||
@Override
|
||||
public void paramMapping() {
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.nl.wms.base_manage.vehicle.vehicleMater.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.mapper.MdPbVehicleMaterMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,16 +1,33 @@
|
||||
package org.nl.wms.decision_manage.handler.impl.base;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleInfo.service.dto.VehicleQuery;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dto.VehicleMaterQuery;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -18,19 +35,16 @@ import java.util.List;
|
||||
* 先进先出策略
|
||||
*/
|
||||
@Service("fifo")
|
||||
public class FIFORuleHandler extends Decisioner<StIvtStructattr,String> {
|
||||
public class FIFORuleHandler extends Decisioner<StIvtStructattr, StIvtIostorinvdtl> {
|
||||
|
||||
/**
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性服务服务
|
||||
*/
|
||||
// @Autowired
|
||||
// private IMdPbStoragevehicleextService iMdPbStoragevehicleextService;
|
||||
|
||||
/**
|
||||
* 巷道均衡策略
|
||||
@@ -43,106 +57,35 @@ public class FIFORuleHandler extends Decisioner<StIvtStructattr,String> {
|
||||
* @return List<StIvtStructattr> :仓位集合
|
||||
*/
|
||||
@Override
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, String param) {
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtl param) {
|
||||
// 判断仓位是否为空
|
||||
if (ObjectUtil.isEmpty(list)) {
|
||||
throw new BadRequestException("仓位集合为空!");
|
||||
}
|
||||
//分配数量
|
||||
int plan_qty = param.getPlan_qty().intValue();
|
||||
//当前条件只有id,批次
|
||||
List<StructattrVechielDto> vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", param.getMaterial_id()
|
||||
, "pcsn", param.getPcsn()
|
||||
, "stor_code", param.getStor_code()
|
||||
, "order_by", "update_time asc")
|
||||
);
|
||||
List<String> need = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList());
|
||||
|
||||
// 判断策略类型
|
||||
JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class);
|
||||
List<StIvtStructattr> disList = new ArrayList<>();
|
||||
for (StructattrVechielDto structattr : vechielDtos) {
|
||||
if (need.contains(structattr.getStruct_code())){
|
||||
StIvtStructattr stIvtStructattr = new StIvtStructattr();
|
||||
BeanUtils.copyProperties(structattr,stIvtStructattr);
|
||||
disList.add(stIvtStructattr);
|
||||
|
||||
List<StIvtStructattr> resultList = new ArrayList<>();
|
||||
|
||||
switch (jsonParam.getString("ioType")) {
|
||||
case "1":
|
||||
// 入库策略
|
||||
resultList = inHandler(list,jsonParam);
|
||||
break;
|
||||
case "2":
|
||||
// 出库策略
|
||||
// resultList = outHandler(list,jsonParam);
|
||||
break;
|
||||
case "3":
|
||||
// 通用策略
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("策略类型错误!");
|
||||
int cause_qty = structattr.getQty().subtract(structattr.getFrozen_qty()).intValue();
|
||||
plan_qty = plan_qty - cause_qty;
|
||||
if (plan_qty<=0){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultList;
|
||||
return disList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 入库策略
|
||||
* @param attrList :仓位集合
|
||||
* @param jsonParam:materialId :物料标识
|
||||
* @return List<StIvtStructattr> :仓位集合
|
||||
*/
|
||||
private List<StIvtStructattr> inHandler(List<StIvtStructattr> attrList, JSONObject jsonParam) {
|
||||
|
||||
return attrList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库策略
|
||||
* @param attrList :仓位物料信息
|
||||
* @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配)
|
||||
* @return List<StIvtStructattr> :需出库仓位集合
|
||||
*/
|
||||
// private List<StIvtStructattr> outHandler(List<StIvtStructattr> attrList, JSONObject jsonParam) {
|
||||
//
|
||||
// // 查询对应的出入库明细
|
||||
// StIvtIostorinvdtlIn dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId"));
|
||||
//
|
||||
// // 查询传入仓位物料中的数量是否满足明细中的数量
|
||||
// List<String> vehicleCodeIn = attrList.stream()
|
||||
// .map(StIvtStructattr::getVehicle_code)
|
||||
// .distinct()
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// // 查询对应的载具物料,根据入库时间升序(先进先出规则)
|
||||
// List<MdPbStoragevehicleext> extList = iMdPbStoragevehicleextService.list(
|
||||
// new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
||||
// .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn)
|
||||
// .orderByAsc(MdPbStoragevehicleext::getInsert_time)
|
||||
// );
|
||||
//
|
||||
// double attrQty = extList.stream()
|
||||
// .map(MdPbStoragevehicleext::getQty)
|
||||
// .reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
// .doubleValue();
|
||||
//
|
||||
// if (dtlDao.getUnassign_qty().doubleValue() > attrQty) {
|
||||
// // 说明不满足所需重量则全部返回
|
||||
// return attrList;
|
||||
// }
|
||||
//
|
||||
// // 需返回仓位物料集合
|
||||
// List<StIvtStructattr> resultList = new ArrayList<>();
|
||||
// // 满足所需数量: 根据巷道进行平均分配
|
||||
// double unAssingQty = dtlDao.getUnassign_qty().doubleValue();
|
||||
//
|
||||
// while (unAssingQty > 0) {
|
||||
//
|
||||
// // 添加需返回的仓位物料
|
||||
// StIvtStructattr attrDao = attrList.get(0);
|
||||
// resultList.add(attrDao);
|
||||
//
|
||||
// // 减去未分配重量
|
||||
// MdPbStoragevehicleext extDao = extList.stream()
|
||||
// .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code()))
|
||||
// .findFirst().orElse(null);
|
||||
//
|
||||
// if (ObjectUtil.isEmpty(extDao)) {
|
||||
// throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】");
|
||||
// }
|
||||
//
|
||||
// unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue());
|
||||
//
|
||||
// // 移出此仓位物料,方便下一轮进行匹配
|
||||
// attrList.remove(attrDao);
|
||||
// }
|
||||
//
|
||||
// return resultList;
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -2,7 +2,10 @@ package org.nl.wms.decision_manage.handler.impl.base;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.decision_manage.service.dao.StStrategyConfig;
|
||||
@@ -10,6 +13,7 @@ import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
@@ -27,7 +31,7 @@ public class NearbyRuleHandler extends Decisioner<StIvtStructattr, StIvtIostorin
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性服务服务
|
||||
@@ -46,9 +50,8 @@ public class NearbyRuleHandler extends Decisioner<StIvtStructattr, StIvtIostorin
|
||||
*/
|
||||
@Override
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtl param) {
|
||||
// 判断仓位是否为空
|
||||
if (ObjectUtil.isEmpty(list)) {
|
||||
throw new BadRequestException("仓位集合为空!");
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
list.sort(Comparator.comparingInt(i -> i.getRow_num()+i.getCol_num()+i.getLayer_num()+i.getBlock_num()));
|
||||
//就近分配区分出库还是入库策略
|
||||
|
||||
@@ -23,13 +23,5 @@ import java.util.Map;
|
||||
public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
||||
IPage<SchBaseTask> selectPageLeftJoin(IPage<SchBaseTask> pages, @Param("whereJson") SchBaseTaskQuery whereJson, @Param("collect") List<String> collect);
|
||||
|
||||
@Select("SELECT\n" +
|
||||
"\tsch_base_task.*, md_pb_vehicleMater.*,md_me_materialbase.material_code,md_me_materialbase.material_name,md_me_materialbase.material_spec\n" +
|
||||
"FROM\n" +
|
||||
"\tsch_base_task\n" +
|
||||
"\tLEFT JOIN md_pb_vehicleMater ON sch_base_task.vehicle_code = md_pb_vehicleMater.vehicle_code \n" +
|
||||
"\tleft join md_me_materialbase on md_pb_vehicleMater.material_id = md_me_materialbase.material_id\n" +
|
||||
"WHERE\n" +
|
||||
"\tsch_base_task.vehicle_code = #{vehicle_code}")
|
||||
List<Map> getByVehicle(String vehicle_code);
|
||||
List<Map> getByVehicle(@Param("vehicles") List<String> vehicles);
|
||||
}
|
||||
|
||||
@@ -38,4 +38,26 @@
|
||||
</where>
|
||||
ORDER BY t.create_time DESC
|
||||
</select>
|
||||
<select id="getByVehicle" resultType="java.util.Map">
|
||||
SELECT
|
||||
md_pb_vehicleMater.*,
|
||||
md_me_materialbase.material_code,
|
||||
md_me_materialbase.material_name,
|
||||
md_me_materialbase.material_spec,
|
||||
st_ivt_structattr.stor_code,
|
||||
st_ivt_structattr.struct_code,
|
||||
sch_base_task.point_code1,
|
||||
sch_base_task.point_code2,
|
||||
sch_base_task.task_type,
|
||||
sch_base_task.task_status
|
||||
FROM
|
||||
md_pb_vehicleMater
|
||||
LEFT JOIN st_ivt_structattr ON md_pb_vehicleMater.vehicle_code = st_ivt_structattr.vehicle_code
|
||||
LEFT JOIN md_me_materialbase ON md_pb_vehicleMater.material_id = md_me_materialbase.material_id
|
||||
LEFT JOIN sch_base_task ON md_pb_vehicleMater.vehicle_code = sch_base_task.vehicle_code
|
||||
where md_pb_vehicleMater.vehicle_code in
|
||||
<foreach collection="vehicles" item="vehicle_code" open="(" close=")" separator=",">
|
||||
#{vehicle_code}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper;
|
||||
@@ -60,7 +61,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
if (StringUtils.isEmpty(vehicle_code)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return this.baseMapper.getByVehicle(vehicle_code);
|
||||
return this.baseMapper.getByVehicle(ListOf.of(vehicle_code.split(",")));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,10 +26,7 @@ import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -38,6 +35,7 @@ import java.util.stream.Stream;
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 17:47
|
||||
* 后续可以定义规则
|
||||
*/
|
||||
@Service("subProcess")
|
||||
public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObject> {
|
||||
@@ -63,9 +61,20 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
JSONObject form = entity.getT();
|
||||
JSONArray items = (JSONArray)form.get("item");
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
if (items!=null){
|
||||
//基于明细id拆分还是继续vehicle_code拆分
|
||||
List<JSONObject> subList = new ArrayList<>();
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
JSONObject item = items.getJSONObject(i);
|
||||
String[] vehicle_codes = item.getString("vehicle_code").split(",");
|
||||
for (String vehicle_code : vehicle_codes) {
|
||||
JSONObject sub = new JSONObject(item);
|
||||
sub.put("vehicle_code",vehicle_code);
|
||||
subList.add(sub);
|
||||
}
|
||||
}
|
||||
if (subList!=null){
|
||||
//子流程并行,子流程单一的时候直接串行
|
||||
items.stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
subList.stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
ExecutionEntity subEntity = new ExecutionEntity();
|
||||
subEntity.setParent_id(entity.getProc_inst_id());
|
||||
subEntity.setForm_id(entity.getForm_id());
|
||||
|
||||
@@ -16,11 +16,14 @@ import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -51,20 +54,37 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
//出入库明细
|
||||
JSONObject t = entity.getT();
|
||||
JSONObject item_json = t.getJSONObject("t");
|
||||
StIvtIostorinvdtl iostorinvdtlIn = item_json.toJavaObject(StIvtIostorinvdtl.class);
|
||||
AtomicReference<String> atomicStruct= new AtomicReference<>();
|
||||
StIvtIostorinvdtl iostorinvdtl = item_json.toJavaObject(StIvtIostorinvdtl.class);
|
||||
List<StIvtStructattr> list = dispense(params, iostorinvdtl);
|
||||
//更新仓位,更新数据
|
||||
String collect = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.joining(","));
|
||||
stIvtIostorinvdtlInService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("struct_code",collect)
|
||||
.eq("id",iostorinvdtl.getId()));
|
||||
item_json.put("struct_code",collect);
|
||||
return t;
|
||||
}
|
||||
@Transactional
|
||||
public List<StIvtStructattr> dispense(List<String> params, StIvtIostorinvdtl iostorinvdtl) {
|
||||
AtomicReference<List<StIvtStructattr>> structCode = new AtomicReference<>();
|
||||
RedissonUtils.lock(()->{
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(new QueryWrapper<StIvtStructattr>()
|
||||
.eq("vehicle_code", "")
|
||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||
.eq("is_used", true)
|
||||
.eq("lock_type", StatusEnum.LOCK.code("无"))
|
||||
.eq("stor_code",iostorinvdtlIn.getStor_code()));
|
||||
.eq("stor_code", iostorinvdtl.getStor_code());
|
||||
if (iostorinvdtl.getIn_storage()){
|
||||
query.eq("vehicle_code","");
|
||||
}else {
|
||||
query.ne("vehicle_code","");
|
||||
}
|
||||
//如果是入库则过滤空;否则则不过滤
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(query);
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
for (String param : params) {
|
||||
Decisioner decisioner = decisionHandlerMap.get(param);
|
||||
list = decisioner.handler(list, iostorinvdtlIn);
|
||||
list = decisioner.handler(list, iostorinvdtl);
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
@@ -73,19 +93,12 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("无可分配货位!");
|
||||
}
|
||||
String structCode = list.get(0).getStruct_code();
|
||||
atomicStruct.set(structCode);
|
||||
//更新仓位,更新数据
|
||||
structCode.set(list);
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",iostorinvdtlIn.getVehicle_code())
|
||||
.set("lock_type", StatusEnum.LOCK.code("入"))
|
||||
.eq("struct_code",structCode));
|
||||
// .set("vehicle_code", iostorinvdtl.getVehicle_code())
|
||||
.set("lock_type", StatusEnum.LOCK.code(iostorinvdtl.getIn_storage()?"入":"出"))
|
||||
.in("struct_code", list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList())));
|
||||
},"入",2);
|
||||
|
||||
stIvtIostorinvdtlInService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("struct_code",atomicStruct.get())
|
||||
.eq("id",iostorinvdtlIn.getId()));
|
||||
item_json.put("struct_code",atomicStruct.get());
|
||||
return t;
|
||||
return structCode.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.stor_manage.io.service.dto.StorInvOutQuery;
|
||||
import org.nl.wms.stor_manage.io.service.dto.StorInvQuery;
|
||||
@@ -12,6 +13,7 @@ import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -36,6 +38,8 @@ public class StIvtIostorinvOutController {
|
||||
private IStIvtIostorinvOutService iStIvtIostorinvOutService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlOutService iStIvtIostorinvDtlOutService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
|
||||
|
||||
@@ -56,5 +60,32 @@ public class StIvtIostorinvOutController {
|
||||
return new ResponseEntity<>(mapList,HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库分配
|
||||
* @param dtl
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/outDecision")
|
||||
public ResponseEntity<Object> outDecision(@RequestBody JSONObject dtl) {
|
||||
String struct_code = iStIvtIostorinvOutService.dispense(dtl);
|
||||
return new ResponseEntity<>(struct_code,HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消分配
|
||||
* @param dtl
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/cancelDecision")
|
||||
public ResponseEntity<Object> cancelDecision(@RequestBody JSONObject dtl) {
|
||||
iStIvtIostorinvOutService.canceldispense(dtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/divDis")
|
||||
public ResponseEntity<Object> divDis(@RequestBody JSONObject dtl) {
|
||||
List<Map> dis = iSchBaseTaskService.getByVehicle(dtl.getString("vehicle_code"));
|
||||
return new ResponseEntity<>(TableDataInfo.build(dis),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,11 @@ public class StIvtIostorinvdtl implements Serializable {
|
||||
*/
|
||||
private String inv_id;
|
||||
|
||||
/**
|
||||
* 出入单标识
|
||||
*/
|
||||
private Boolean in_storage = Boolean.TRUE;
|
||||
|
||||
/**
|
||||
* 源单号
|
||||
*/
|
||||
|
||||
@@ -15,8 +15,8 @@ import lombok.EqualsAndHashCode;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinv_in")
|
||||
public class StIvtIostorinvout implements Serializable {
|
||||
@TableName("st_ivt_iostorinv_out")
|
||||
public class StIvtIostorinvOut implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -2,25 +2,31 @@ package org.nl.wms.stor_manage.io.service.out.iostor.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.mapper.StIvtIostorinvMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.mapper.StIvtIostorinvOutMapper;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut;
|
||||
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.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -35,6 +41,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlOutService iStIvtIostorinvDtlOutService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -60,4 +68,47 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
this.save(mst);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String dispense(JSONObject form) {
|
||||
//分配更新
|
||||
List<StIvtStructattr> desicion = iStIvtStructattrService.desicion(form, Boolean.FALSE);
|
||||
if (CollectionUtils.isEmpty(desicion)){
|
||||
throw new BadRequestException("分配失败,当前出库分配无可用货位");
|
||||
}
|
||||
iStIvtIostorinvDtlOutService.update(new UpdateWrapper<StIvtIostorinvdtlOut>()
|
||||
.set("vehicle_code",desicion.stream().map(StIvtStructattr::getVehicle_code).collect(Collectors.joining(",")))
|
||||
.eq("id",form.getString("id")));
|
||||
int count = iStIvtIostorinvDtlOutService.count(new QueryWrapper<StIvtIostorinvdtlOut>()
|
||||
.eq("inv_id", form.getString("inv_id")).isNull("vehicle_code"));
|
||||
if (count == 0){
|
||||
this.update(new UpdateWrapper<StIvtIostorinvOut>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("已分配"))
|
||||
.eq("id",form.getString("inv_id")));
|
||||
}
|
||||
return desicion.get(0).getStruct_code();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public String canceldispense(JSONObject form) {
|
||||
String vehicles = form.getString("vehicle_code");
|
||||
if (StringUtils.isNotEmpty(vehicles)){
|
||||
String[] split = vehicles.split(",");
|
||||
//更新点位锁,删除分配
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("lock_type", StatusEnum.LOCK.code("无"))
|
||||
.in("vehicle_code", Arrays.asList(split)));
|
||||
iStIvtIostorinvDtlOutService.update(new UpdateWrapper<StIvtIostorinvdtlOut>()
|
||||
.set("vehicle_code",null)
|
||||
.eq("id",form.getString("id")));
|
||||
|
||||
this.update(new UpdateWrapper<StIvtIostorinvOut>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("生成"))
|
||||
.eq("id",form.getString("inv_id")));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut;
|
||||
@@ -21,4 +22,5 @@ public interface IStIvtIostorinvdtlOutService extends IService<StIvtIostorinvdtl
|
||||
|
||||
|
||||
List<Map> getByInv(String inv_id);
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import lombok.EqualsAndHashCode;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "st_ivt_iostorinvdtl_out", autoResultMap = true)
|
||||
public class StIvtIostorinvdtlOut implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
@@ -109,5 +108,7 @@ public class StIvtIostorinvdtlOut implements Serializable {
|
||||
private JSONObject form_data;
|
||||
|
||||
|
||||
private Boolean in_storage = Boolean.FALSE;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -38,4 +38,5 @@ public interface StIvtIostorinvdtlOutMapper extends BaseMapper<StIvtIostorinvdtl
|
||||
@Results({@Result(property = "form_data",column = "form_data",typeHandler = FastjsonTypeHandler.class)})
|
||||
List<Map> findByInv(String inv_id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +1,32 @@
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.mapper.StIvtIostorinvdtlOutMapper;
|
||||
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.dto.StructattrVechielDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
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.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -24,6 +39,8 @@ import java.util.Map;
|
||||
@Service
|
||||
public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl<StIvtIostorinvdtlOutMapper, StIvtIostorinvdtlOut> implements IStIvtIostorinvdtlOutService {
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtlOut> dtls) {
|
||||
@@ -35,6 +52,23 @@ public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl<StIvtIostorinvd
|
||||
if (StringUtils.isEmpty(inv_id)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return this.baseMapper.findByInv(inv_id);
|
||||
List<Map> byInv = this.baseMapper.findByInv(inv_id);
|
||||
//查询载具所在仓位
|
||||
for (Map map : byInv) {
|
||||
Object vehicle_code = map.get("vehicle_code");
|
||||
if (vehicle_code!=null){
|
||||
List<String> vehicles = Arrays.asList(((String) vehicle_code).split(","));
|
||||
List<StructattrVechielDto> vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", map.get("material_id")
|
||||
, "pcsn", map.get("pcsn")
|
||||
, "stor_code", map.get("stor_code")
|
||||
, "vehicles", vehicles));
|
||||
String structs = vechielDtos.stream().map(StructattrVechielDto::getStruct_code).collect(Collectors.joining(","));
|
||||
int qty = vechielDtos.stream().mapToInt(a->a.getQty().intValue()).sum();
|
||||
map.put("struct_code",structs);
|
||||
map.put("qty",qty);
|
||||
}
|
||||
}
|
||||
return byInv;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.stor_manage.struct.controller;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -13,6 +14,9 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位属性表 前端控制器
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package org.nl.wms.stor_manage.struct.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -31,4 +33,14 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
||||
Object pageQuery(StructattrQuery query, PageQuery page);
|
||||
|
||||
void changeActive(StIvtStructattr dto);
|
||||
|
||||
/**
|
||||
* 手动调用出入库规则
|
||||
* @param form
|
||||
* @param in
|
||||
* @return
|
||||
*/
|
||||
List<StIvtStructattr> desicion(JSONObject form, Boolean in);
|
||||
|
||||
List<StructattrVechielDto> collectVechicle(Map query);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -20,4 +21,6 @@ import java.util.Map;
|
||||
public interface StIvtStructattrMapper extends BaseMapper<StIvtStructattr> {
|
||||
|
||||
List<Map> getPageQuery(@Param("query") StructattrQuery query, PageQuery pageQuery);
|
||||
|
||||
List<StructattrVechielDto> collectVehicle(Map query);
|
||||
}
|
||||
|
||||
@@ -36,4 +36,28 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="collectVehicle" resultType="org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto">
|
||||
SELECT
|
||||
md_pb_vehicleMater.qty,
|
||||
md_pb_vehicleMater.frozen_qty,
|
||||
md_pb_vehicleMater.material_id,
|
||||
md_pb_vehicleMater.pcsn,
|
||||
st_ivt_structattr.*
|
||||
FROM
|
||||
st_ivt_structattr
|
||||
LEFT JOIN md_pb_vehicleMater ON st_ivt_structattr.vehicle_code = md_pb_vehicleMater.vehicle_code
|
||||
WHERE
|
||||
material_id = #{material_id}
|
||||
AND pcsn = #{pcsn}
|
||||
AND st_ivt_structattr.stor_code = #{stor_code}
|
||||
<if test="vehicles != null and vehicles.size() > 0">
|
||||
AND st_ivt_structattr.vehicle_code in
|
||||
<foreach collection="vehicles" item="value" index="key" open="(" close=")" separator=",">
|
||||
#{value}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="order_by != null and order_by != ''">
|
||||
order by ${order_by}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,176 @@
|
||||
package org.nl.wms.stor_manage.struct.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 19:49
|
||||
*/
|
||||
@Data
|
||||
public class StructattrVechielDto extends MdPbVehicleMater {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 仓位标识
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 仓位编码
|
||||
*/
|
||||
private String struct_code;
|
||||
|
||||
/**
|
||||
* 仓位名称
|
||||
*/
|
||||
private String struct_name;
|
||||
|
||||
/**
|
||||
* 库区标识
|
||||
*/
|
||||
private String sect_code;
|
||||
|
||||
/**
|
||||
* 仓库标识
|
||||
*/
|
||||
private String stor_code;
|
||||
|
||||
/**
|
||||
* 容量
|
||||
*/
|
||||
private Integer capacity;
|
||||
|
||||
/**
|
||||
* 宽度
|
||||
*/
|
||||
private Integer w;
|
||||
|
||||
/**
|
||||
* 高度
|
||||
*/
|
||||
private Integer h;
|
||||
|
||||
/**
|
||||
* 深度(长度)
|
||||
*/
|
||||
private Integer l;
|
||||
|
||||
/**
|
||||
* 承受重量
|
||||
*/
|
||||
private Integer weight;
|
||||
|
||||
/**
|
||||
* 起始X坐标
|
||||
*/
|
||||
private BigDecimal xqty;
|
||||
|
||||
/**
|
||||
* 起始Y坐标
|
||||
*/
|
||||
private BigDecimal yqty;
|
||||
|
||||
/**
|
||||
* 起始Z坐标
|
||||
*/
|
||||
private BigDecimal zqty;
|
||||
|
||||
/**
|
||||
* 排
|
||||
*/
|
||||
private Integer row_num;
|
||||
|
||||
/**
|
||||
* 列
|
||||
*/
|
||||
private Integer col_num;
|
||||
|
||||
/**
|
||||
* 层
|
||||
*/
|
||||
private Integer layer_num;
|
||||
|
||||
/**
|
||||
* 块
|
||||
*/
|
||||
private Integer block_num;
|
||||
|
||||
/**
|
||||
* 超限货位关联的货位编号
|
||||
*/
|
||||
private String control_code;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 是否临时仓位
|
||||
*/
|
||||
private Boolean is_temp;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean is_used;
|
||||
|
||||
/**
|
||||
* 锁定类型
|
||||
*/
|
||||
private String lock_type;
|
||||
|
||||
/**
|
||||
* 是否判断高度
|
||||
*/
|
||||
private String is_zdepth;
|
||||
|
||||
/**
|
||||
* 存储载具号
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 背景图片
|
||||
*/
|
||||
private String back_ground_pic;
|
||||
|
||||
/**
|
||||
* 前景色
|
||||
*/
|
||||
private String front_ground_color;
|
||||
|
||||
/**
|
||||
* 背景色
|
||||
*/
|
||||
private String back_ground_color;
|
||||
|
||||
/**
|
||||
* 字体显示方向
|
||||
*/
|
||||
private String font_direction_scode;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,16 +1,22 @@
|
||||
package org.nl.wms.stor_manage.struct.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut;
|
||||
import org.nl.wms.stor_manage.record.service.IStIvtStructivtflowService;
|
||||
import org.nl.wms.stor_manage.record.service.dao.StIvtStructivtflow;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
@@ -18,10 +24,15 @@ import org.nl.wms.stor_manage.struct.service.dao.mapper.StIvtStructattrMapper;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -40,6 +51,11 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
private IMdPbVehicleMaterService vehicleMaterService;
|
||||
@Autowired
|
||||
private IStIvtStructivtflowService structivtflowService;
|
||||
@Autowired
|
||||
private ISysParamService iSysParamService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private DecisionHandler decisionHandler;
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
@@ -106,4 +122,22 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
this.updateById(dto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StIvtStructattr> desicion(JSONObject form, Boolean in) {
|
||||
//查询出入库配置规则
|
||||
Param byCode = iSysParamService.findByCode("decision_"+ in);
|
||||
if (byCode ==null || StringUtils.isEmpty(byCode.getValue())){
|
||||
throw new BadRequestException("未配置出入库默认规则,请在系统配置中配置");
|
||||
}
|
||||
List<String> decisions = Arrays.asList(byCode.getValue().split(","));
|
||||
List<StIvtStructattr> dispense = decisionHandler.dispense(decisions, form.toJavaObject(StIvtIostorinvdtl.class));
|
||||
return dispense;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StructattrVechielDto> collectVechicle(Map query) {
|
||||
List<StructattrVechielDto> collectVehicle = this.baseMapper.collectVehicle(query);
|
||||
return collectVehicle;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user