rev:流程任务生成
This commit is contained in:
@@ -9,7 +9,6 @@ import lombok.Data;
|
||||
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
@@ -16,10 +16,29 @@ import java.util.Map;
|
||||
@AllArgsConstructor
|
||||
public enum StatusEnum {
|
||||
//单据状态库类型
|
||||
/**
|
||||
* 流程相关
|
||||
*/
|
||||
MODEL_STATUS(MapOf.of("发布", "10", "未发布", "30")),
|
||||
FORM_STATUS(MapOf.of("生成", "10", "执行中", "20","完成", "99")),
|
||||
FLOW_STATUS(MapOf.of("启动", "10", "节点完成", "20","暂停", "30","完成", "99")),
|
||||
FLOW_STATUS(MapOf.of("启动", "10", "节点完成", "20","暂停", "30","完成", "90")),
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
FORM_STATUS(MapOf.of("生成", "10", "执行中", "20","完成", "90","取消", "100")),
|
||||
|
||||
/**
|
||||
* 出入库单据类型
|
||||
*/
|
||||
IOBILL_TYPE(MapOf.of("生产入库", "10", "生产出库", "20")),
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
TASK_TYPE_IN(MapOf.of("组盘入库","10")),
|
||||
TASK_TYPE_OUT(MapOf.of("销售出","20")),
|
||||
/**
|
||||
* 点位锁类型
|
||||
*/
|
||||
LOCK(MapOf.of("无","00","入","10","出","20")),
|
||||
;
|
||||
private Map<String, String> code;
|
||||
@@ -32,12 +51,12 @@ public enum StatusEnum {
|
||||
throw new BadRequestException(this.name() + "对应类型" + desc + "未定义");
|
||||
}
|
||||
|
||||
public String check(String code) {
|
||||
public Boolean check(String code) {
|
||||
for (Map.Entry<String, String> entry : this.getCode().entrySet()) {
|
||||
if (entry.getValue().equals("code")) {
|
||||
return entry.getValue();
|
||||
if (entry.getValue().equals(code)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
throw new BadRequestException(this.name() + "对应类型" + code + "未定义");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package org.nl.wms.base_manage.struct.service.impl;
|
||||
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.base_manage.struct.service.dao.mapper.StIvtStructattrMapper;
|
||||
import org.nl.wms.base_manage.struct.service.IStIvtStructattrService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.base_manage.struct.service.dto.StructattrQuery;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位属性表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Service
|
||||
public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMapper, StIvtStructattr> implements IStIvtStructattrService {
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getByQuery(StructattrQuery query) {
|
||||
List<Map<String, Object>> maps = this.listMaps(query.build());
|
||||
return maps;
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleInfo.service.IBmVehicleInfoService;
|
||||
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;
|
||||
|
||||
@@ -71,6 +71,14 @@ public class MdPbVehicleMater implements Serializable {
|
||||
* 是否含子容器
|
||||
*/
|
||||
private Boolean has_child;
|
||||
/**
|
||||
* 源单类型
|
||||
*/
|
||||
private String source_form_type;
|
||||
/**
|
||||
* 源单id
|
||||
*/
|
||||
private String source_form_id;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
|
||||
@@ -42,6 +42,7 @@ public class BmFormStrucController {
|
||||
,"biz_code","业务单据编号"
|
||||
,"biz_date","业务单据日期"
|
||||
,"biz_status","业务单据状态"
|
||||
,"biz_form_type","业务单据类型"
|
||||
,"material_id","物料id"
|
||||
,"qty","数量"
|
||||
,"unit_id","单位"
|
||||
|
||||
@@ -82,6 +82,10 @@ public class BmFormStruc implements Serializable {
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String biz_status;
|
||||
/**
|
||||
* 业务单据类型
|
||||
*/
|
||||
private String biz_form_type;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
|
||||
@@ -78,6 +78,10 @@ public class BmFormStrucDto implements Serializable {
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String biz_status;
|
||||
/**
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String biz_form_type;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
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.wms.base_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.base_manage.struct.service.dto.StructattrQuery;
|
||||
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.StructattrQuery;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -33,7 +28,7 @@ public class AlleyAveRuleHandler extends Decisioner<StIvtStructattr, PmFormData>
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@@ -4,14 +4,13 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.wms.base_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
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.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -34,7 +33,7 @@ public class ClusterRuleHandler extends Decisioner<StIvtStructattr,String> {
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
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.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -29,7 +24,7 @@ public class FIFORuleHandler extends Decisioner<StIvtStructattr,String> {
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性服务服务
|
||||
|
||||
@@ -2,12 +2,12 @@ package org.nl.wms.decision_manage.handler.impl.base;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleInfo.service.IBmVehicleInfoService;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleInfo.service.dao.BmVehicleInfo;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
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;
|
||||
|
||||
@@ -21,13 +21,13 @@ import java.util.stream.Collectors;
|
||||
* 货位限位策略:限高,限宽,限长,限重
|
||||
*/
|
||||
@Service("limitStorage")
|
||||
public class LimitStorageRuleHandler extends Decisioner<StIvtStructattr,StIvtIostorinvdtlIn> {
|
||||
public class LimitStorageRuleHandler extends Decisioner<StIvtStructattr, StIvtIostorinvdtl> {
|
||||
|
||||
/**
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性服务服务
|
||||
@@ -46,7 +46,7 @@ public class LimitStorageRuleHandler extends Decisioner<StIvtStructattr,StIvtIos
|
||||
* @return List<StIvtStructattr> :仓位集合
|
||||
*/
|
||||
@Override
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtlIn param) {
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtl param) {
|
||||
// 判断仓位是否为空
|
||||
// 判断策略类型
|
||||
String vehicleCode = param.getVehicle_code();
|
||||
|
||||
@@ -1,26 +1,18 @@
|
||||
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.SpringContextHolder;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
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.IStStrategyConfigService;
|
||||
import org.nl.wms.decision_manage.service.dao.StStrategyConfig;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
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 java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.function.ToIntFunction;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -28,14 +20,14 @@ import java.util.stream.Collectors;
|
||||
* 就近放置策略:根据物料ABC类区分
|
||||
*/
|
||||
@Service("nearby")
|
||||
public class NearbyRuleHandler extends Decisioner<StIvtStructattr,StIvtIostorinvdtlIn> {
|
||||
public class NearbyRuleHandler extends Decisioner<StIvtStructattr, StIvtIostorinvdtl> {
|
||||
//每个策略的配置信息
|
||||
private static StStrategyConfig stStrategyConfig;
|
||||
/**
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性服务服务
|
||||
@@ -53,7 +45,7 @@ public class NearbyRuleHandler extends Decisioner<StIvtStructattr,StIvtIostorinv
|
||||
* @return List<StIvtStructattr> :仓位集合
|
||||
*/
|
||||
@Override
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtlIn param) {
|
||||
public List<StIvtStructattr> handler(List<StIvtStructattr> list, StIvtIostorinvdtl param) {
|
||||
// 判断仓位是否为空
|
||||
if (ObjectUtil.isEmpty(list)) {
|
||||
throw new BadRequestException("仓位集合为空!");
|
||||
|
||||
@@ -3,14 +3,12 @@ package org.nl.wms.decision_manage.handler.impl.base;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
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;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
@@ -27,7 +25,7 @@ public class WeightRuleHandler extends Decisioner<StIvtStructattr,String> {
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import org.nl.common.publish.event.PublishEvent;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/23 13:15
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
public class StructEvent extends PublishEvent {
|
||||
|
||||
/**
|
||||
* @see org.nl.common.enums.StatusEnum.TASK_TYPE_IN
|
||||
*/
|
||||
private String task_type;
|
||||
|
||||
private String vehicle_code;
|
||||
|
||||
private String task_status;
|
||||
|
||||
private String struct_code;
|
||||
|
||||
private String source_form_id;
|
||||
|
||||
private String source_form_type;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,13 +1,9 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
@@ -16,7 +12,7 @@ import java.util.List;
|
||||
public class AgvTaskHandler implements TaskHandler {
|
||||
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, String type) {
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,30 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
* 堆垛机入库任务
|
||||
*/
|
||||
@Service
|
||||
public class StackingTaskHandler implements TaskHandler {
|
||||
@@ -23,20 +32,41 @@ public class StackingTaskHandler implements TaskHandler {
|
||||
@Autowired
|
||||
ISchBaseTaskService taskService;
|
||||
|
||||
@Autowired
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, String type) {
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
String struct_code = from.getString("struct_code");
|
||||
|
||||
String start_point = param.getString("start_point");
|
||||
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(start_point)||StringUtils.isEmpty(struct_code)){
|
||||
throw new BadRequestException("创建任务失败:StackingTaskHandler#process()方法请求参数不能为空");
|
||||
}
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("task_status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setId(IdUtil.getStringId());
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setTask_status(StatusEnum.FORM_STATUS.code("生成"));
|
||||
task.setHandle_class(this.getClass().getName());
|
||||
task.setAcs_type("");
|
||||
task.setTask_type(type);
|
||||
task.setVehicle_code(from.getString("vehicle_code"));
|
||||
task.setPoint_code1(from.getString("start_point"));
|
||||
task.setPoint_code2(from.getString("struct_code"));
|
||||
task.setCreate_time(DateUtil.now());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setTask_type(param.getString("task_type"));
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(start_point);
|
||||
task.setPoint_code2(struct_code);
|
||||
taskService.createTask(task);
|
||||
from.put("task_code",task.getTask_code());
|
||||
return from;
|
||||
Boolean isSend = param.getBoolean("is_send");
|
||||
if (isSend){
|
||||
//参数封装,调acs接口
|
||||
}
|
||||
return (JSONObject)JSON.toJSON(task);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.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.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
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.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.event.FlowStartEvent;
|
||||
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
*/
|
||||
@Service
|
||||
public class TaskStatusHandler implements TaskHandler {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService schBaseTaskService;
|
||||
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService vehicleMaterService;
|
||||
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//暂时出入入库的问题
|
||||
from.put("task_status",param.getString("task_status"));
|
||||
from.put("update_time","DateUtil.now()");
|
||||
from.put("update_name",SecurityUtils.getCurrentNickName());
|
||||
SchBaseTask schBaseTask = from.toJavaObject(SchBaseTask.class);
|
||||
schBaseTaskService.updateById(schBaseTask);
|
||||
|
||||
StatusEnum.FORM_STATUS.code("生成");
|
||||
StatusEnum.FORM_STATUS.code("执行中");
|
||||
StatusEnum.FORM_STATUS.code("完成");
|
||||
StatusEnum.FORM_STATUS.code("取消");
|
||||
//TODO:后续在流程节点中配置监听时间触发
|
||||
List<MdPbVehicleMater> vehicleMaters = vehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", schBaseTask.getVehicle_code()));
|
||||
MdPbVehicleMater vehicleMater = vehicleMaters.get(0);
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.task_status(schBaseTask.getTask_status())
|
||||
.source_form_id(vehicleMater.getSource_form_id())
|
||||
.source_form_type(vehicleMater.getSource_form_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code()).struct_code(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
return from;
|
||||
}
|
||||
}
|
||||
@@ -109,6 +109,10 @@ public class SchBaseTask implements Serializable {
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
|
||||
@@ -9,6 +9,7 @@ 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.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.cmd.CommandExecutor;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.operation.impl.SequenceFlowOperation;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
@@ -18,8 +19,11 @@ import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.flow.service.history.IActHiExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.lang.annotation.Inherited;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/3/18 11:08
|
||||
@@ -36,6 +40,8 @@ public abstract class FlowNodeActivityBehavior<T> {
|
||||
public IActHiExecutionService history;
|
||||
|
||||
public final void activity(ExecutionEntity<T> entity) {
|
||||
IActRuExecutionService iActRuExecutionService = SpringContextHolder.getBean(IActRuExecutionService.class);
|
||||
|
||||
try {
|
||||
//当前节点
|
||||
log.info("流程:{},开始流程数据:{}", entity.getActivityName(),JSONObject.toJSONString(entity.getT()));
|
||||
@@ -71,8 +77,10 @@ public abstract class FlowNodeActivityBehavior<T> {
|
||||
.set("remark","节点:"+entity.getActivityName()+":异常:"+ex.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
private final void leaveActivity(ExecutionEntity<T> entity) {
|
||||
//TODO:存储流程处理历史数据;判断是否自动执行下一个流程
|
||||
IActHiExecutionService history = SpringContextHolder.getBean(IActHiExecutionService.class);
|
||||
ActHiExecution historyEntity = new ActHiExecution();
|
||||
historyEntity.setProc_inst_id(entity.getProc_inst_id());
|
||||
historyEntity.setParent_id(entity.getParent_id());
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.engine.behavior.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -9,7 +8,6 @@ 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.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
@@ -19,20 +17,13 @@ import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.Form;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.IStIvtIostorinvdisService;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/3/18 13:17
|
||||
@@ -47,7 +38,7 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior<JSONObject> {
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
IStIvtIostorinvdtlInService iostorinvdtlService;
|
||||
IStIvtIostorinvdtlService iostorinvdtlService;
|
||||
@Autowired
|
||||
IStIvtIostorinvInService iostorinvService;
|
||||
//分配明细用公用表
|
||||
@@ -84,22 +75,25 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior<JSONObject> {
|
||||
JSONObject mst_json = handler.getJSONObject("t");
|
||||
mst_json.put("id",IdUtil.getStringId());
|
||||
mst_json.put("create_time",DateUtil.now());
|
||||
mst_json.put("create_id",SecurityUtils.getCurrentUserId());
|
||||
mst_json.put("create_name",SecurityUtils.getCurrentNickName());
|
||||
mst_json.put("status",StatusEnum.FORM_STATUS.code("生成"));
|
||||
mst_json.put("bill_type",StatusEnum.IOBILL_TYPE.code("生产入库"));
|
||||
mst_json.put("code",CodeUtil.getNewCode("IO_CODE"));
|
||||
mst_json.put("source_form_type",handler.getString("source_form_type"));
|
||||
StIvtIostorinvIn mst = mst_json.toJavaObject(StIvtIostorinvIn.class);
|
||||
handler.put("form_id",mst.getId());
|
||||
|
||||
Object item = mst_json.remove("item");
|
||||
if(item !=null){
|
||||
JSONArray itemArr = (JSONArray) item;
|
||||
JSONArray itemArr = handler.getJSONArray("item");
|
||||
if(itemArr !=null){
|
||||
for (int i = 0; i < itemArr.size(); i++) {
|
||||
JSONObject dtl = itemArr.getJSONObject(i);
|
||||
JSONObject dtl_json = dtl.getJSONObject("t");
|
||||
dtl_json.put("inv_id",mst.getId());
|
||||
mst_json.put("update_time",DateUtil.now());
|
||||
dtl_json.put("status",StatusEnum.FORM_STATUS.code("生成"));
|
||||
dtl_json.put("id",IdUtil.getStringId());
|
||||
StIvtIostorinvdtlIn iostorinvdtl= dtl_json.toJavaObject(StIvtIostorinvdtlIn.class);
|
||||
dtl_json.put("source_form_type",dtl.getString("source_form_type"));//不是通用表单
|
||||
StIvtIostorinvdtl iostorinvdtl= dtl_json.toJavaObject(StIvtIostorinvdtl.class);
|
||||
iostorinvdtlService.save(iostorinvdtl);
|
||||
dtl.put("form_id",iostorinvdtl.getId());
|
||||
}
|
||||
|
||||
@@ -4,13 +4,17 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.behavior.FlowNodeActivityBehavior;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.ServerTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
/*
|
||||
@@ -19,18 +23,21 @@ import org.springframework.util.CollectionUtils;
|
||||
*/
|
||||
@Service("serverTask")
|
||||
public class ServerTaskActivityBehavior extends FlowNodeActivityBehavior<JSONObject> {
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void execute(ExecutionEntity<JSONObject> entity) {
|
||||
String form_id = entity.getForm_id();
|
||||
String form_type = entity.getForm_type();
|
||||
FlowElement element = entity.getCurrentFlowElement();
|
||||
ServerTask currentNode = (ServerTask) element;
|
||||
if (!CollectionUtils.isEmpty(currentNode.getSkipExpression())) {
|
||||
TypeHandler<JSONObject,JSONObject> typeHandler = TypeHandler.HANDLER_MAP.get(currentNode.getCategory());
|
||||
TypeHandler<JSONObject,ExecutionEntity> typeHandler = TypeHandler.HANDLER_MAP.get(currentNode.getCategory());
|
||||
if (typeHandler == null) {
|
||||
throw new BadRequestException("【flow】当前节点处理类型未定义");
|
||||
}
|
||||
JSONObject handler = typeHandler.handler(currentNode.getSkipExpression(), entity.getT(), null);
|
||||
JSONObject handler = typeHandler.handler(currentNode.getSkipExpression(), entity, null);
|
||||
entity.setT(handler);
|
||||
entity.setForm_id(form_id);
|
||||
entity.setForm_type(form_type);
|
||||
|
||||
@@ -14,15 +14,10 @@ import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.behavior.FlowNodeActivityBehavior;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.Form;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.StrucForm;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@@ -29,12 +29,13 @@ public class ExecutionDto {
|
||||
*/
|
||||
private String form_type;
|
||||
/**
|
||||
* 源单id
|
||||
* 原始源单id :a-b-c-d =>a.id
|
||||
*/
|
||||
private String source_form_id;
|
||||
/**
|
||||
* 源单类型
|
||||
* 原始源单类型: a-b-c-d =>a.form_type
|
||||
*/
|
||||
|
||||
private String source_form_type;
|
||||
/**
|
||||
* 主数据
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowNode;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.ServerTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -20,22 +19,27 @@ import java.util.List;
|
||||
* @Date 2024/3/21 15:17
|
||||
*/
|
||||
@Service("class")
|
||||
public class ClassHandler extends TypeHandler<ExecutionDto, ExecutionEntity<JSONObject>> {
|
||||
|
||||
public class ClassHandler extends TypeHandler<JSONObject,ExecutionEntity<JSONObject>> {
|
||||
|
||||
//{"t","souce",form}
|
||||
@Override
|
||||
public ExecutionDto handler(List<String> param, ExecutionEntity<JSONObject> entity, BmFormStruc form_struc) {
|
||||
public JSONObject handler(List<String> params, ExecutionEntity<JSONObject> entity, BmFormStruc isnull) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
FlowNode currentFlowElement = (FlowNode)entity.getCurrentFlowElement();
|
||||
ClassProcess process = SpringContextHolder.getBean(param.get(0));
|
||||
if (currentFlowElement.getAuxParam()!=null){
|
||||
entity.getT().putAll(currentFlowElement.getAuxParam());
|
||||
ExecutionDto dto = entity.getT().toJavaObject(ExecutionDto.class);
|
||||
ServerTask flowNode = (ServerTask) entity.getCurrentFlowElement();
|
||||
ClassProcess process = SpringContextHolder.getBean(params.get(0));
|
||||
if (process==null){
|
||||
throw new BadRequestException("当前serverTask配置的类信息不存在");
|
||||
}
|
||||
JSONObject result = process.process(entity.getT(), entity.getForm_type());
|
||||
entity.setT(result);
|
||||
return ExecutionDto.builder()
|
||||
.form_id(result.getString("id"))
|
||||
.t(result)
|
||||
.build();
|
||||
JSONObject form = process.process(dto.getT(), flowNode.getAuxParam());
|
||||
result.put("t",form);
|
||||
//后续:涉及框架的参数提到框架中处理
|
||||
result.put("source_form_id",dto.getForm_id());
|
||||
result.put("source_form_type",dto.getForm_type());
|
||||
result.put("form_id",form.getString("id"));
|
||||
result.put("form_type",flowNode.getForm_type());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,26 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.wms.base_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.decision_manage.handler.Decisioner;
|
||||
import org.nl.wms.decision_manage.handler.impl.base.FIFORuleHandler;
|
||||
import org.nl.wms.decision_manage.handler.impl.diy.ClassRuleHandler;
|
||||
import org.nl.wms.decision_manage.service.IStStrategyConfigService;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
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.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -35,13 +28,13 @@ import java.util.Map;
|
||||
* @ONLY:该决策引擎只用于出入库规则
|
||||
*/
|
||||
@Service("decision")
|
||||
public class DecisionHandler extends TypeHandler<ExecutionDto,ExecutionEntity<JSONObject>> {
|
||||
public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSONObject>> {
|
||||
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService stIvtIostorinvdtlInService;
|
||||
private IStIvtIostorinvdtlService stIvtIostorinvdtlInService;
|
||||
|
||||
@Autowired
|
||||
private Map<String, Decisioner> decisionHandlerMap;
|
||||
@@ -54,39 +47,44 @@ public class DecisionHandler extends TypeHandler<ExecutionDto,ExecutionEntity<JS
|
||||
*/
|
||||
|
||||
@Override
|
||||
public ExecutionDto handler(List<String> params, ExecutionEntity<JSONObject> entity, BmFormStruc form_struc) {
|
||||
public JSONObject handler(List<String> params, ExecutionEntity<JSONObject> entity, BmFormStruc isnull) {
|
||||
//出入库明细
|
||||
JSONObject item_json = entity.getT();
|
||||
StIvtIostorinvdtlIn iostorinvdtlIn = item_json.toJavaObject(StIvtIostorinvdtlIn.class);
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(new QueryWrapper<StIvtStructattr>()
|
||||
.eq("vehicle_code", "")
|
||||
.eq("is_used", true)
|
||||
.eq("stor_code",iostorinvdtlIn.getStor_code()));
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
for (String param : params) {
|
||||
Decisioner decisioner = decisionHandlerMap.get(param);
|
||||
list = decisioner.handler(list, iostorinvdtlIn);
|
||||
JSONObject t = entity.getT();
|
||||
JSONObject item_json = t.getJSONObject("t");
|
||||
StIvtIostorinvdtl iostorinvdtlIn = item_json.toJavaObject(StIvtIostorinvdtl.class);
|
||||
AtomicReference<String> atomicStruct= new AtomicReference<>();
|
||||
RedissonUtils.lock(()->{
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(new QueryWrapper<StIvtStructattr>()
|
||||
.eq("vehicle_code", "")
|
||||
.eq("is_used", true)
|
||||
.eq("stor_code",iostorinvdtlIn.getStor_code()));
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
}
|
||||
//跟新货位载具
|
||||
System.out.println(list);
|
||||
String struct_code = list.get(0).getStruct_code();
|
||||
for (String param : params) {
|
||||
Decisioner decisioner = decisionHandlerMap.get(param);
|
||||
list = decisioner.handler(list, iostorinvdtlIn);
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
}
|
||||
System.out.println(list);
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("无可分配货位!");
|
||||
}
|
||||
String structCode = list.get(0).getStruct_code();
|
||||
atomicStruct.set(structCode);
|
||||
//更新仓位,更新数据
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",iostorinvdtlIn.getVehicle_code())
|
||||
.set("lock_type", StatusEnum.LOCK.code("入"))
|
||||
.eq("struct_code",struct_code));
|
||||
stIvtIostorinvdtlInService.update(new UpdateWrapper<StIvtIostorinvdtlIn>()
|
||||
.set("struct_code",struct_code)
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",iostorinvdtlIn.getVehicle_code())
|
||||
.set("lock_type", StatusEnum.LOCK.code("入"))
|
||||
.eq("struct_code",structCode));
|
||||
},"入",2);
|
||||
|
||||
stIvtIostorinvdtlInService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("struct_code",atomicStruct.get())
|
||||
.eq("id",iostorinvdtlIn.getId()));
|
||||
item_json.put("struct_code",struct_code);
|
||||
return ExecutionDto.builder()
|
||||
.form_id(iostorinvdtlIn.getId())
|
||||
.t(item_json)
|
||||
.build();
|
||||
item_json.put("struct_code",atomicStruct.get());
|
||||
return t;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,10 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Override
|
||||
public JSONObject handler(List<String> param, JSONObject data, BmFormStruc form_struc) {
|
||||
JSONObject resultT = new JSONObject();
|
||||
|
||||
JSONObject mapping = JSONObject.parseObject(param.size()==1?param.get(0):param.remove(0));
|
||||
|
||||
//数据平铺
|
||||
JSONObject sourceFormData = new JSONObject(data.getJSONObject("t"));
|
||||
String souceFromId = data.getString("form_id");
|
||||
@@ -38,35 +42,41 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
|
||||
if (forms!=null){
|
||||
sourceFormData.putAll(forms);
|
||||
}
|
||||
//数据字段列表
|
||||
List<String> fields = ListOf.of(form_struc.getBiz_code()
|
||||
, form_struc.getBiz_id()
|
||||
, form_struc.getBiz_code()
|
||||
, form_struc.getBiz_status()
|
||||
, form_struc.getMaterial_id()
|
||||
, form_struc.getPcsn()
|
||||
, form_struc.getVehicle_code()
|
||||
, form_struc.getQty());
|
||||
//查询目标表字段
|
||||
//数据字段列表+自定义的字段:不从配置表获取
|
||||
Object formDataMapping = mapping.remove("form_data");
|
||||
// List<String> fields = ListOf.of(form_struc.getBiz_code()
|
||||
// , form_struc.getBiz_id()
|
||||
// , form_struc.getBiz_code()
|
||||
// , form_struc.getBiz_status()
|
||||
// , form_struc.getBiz_form_type()
|
||||
// , form_struc.getMaterial_id()
|
||||
// , form_struc.getPcsn()
|
||||
// , form_struc.getVehicle_code()
|
||||
// , form_struc.getUnit_id()
|
||||
// , form_struc.getQty());
|
||||
JSONObject t = new JSONObject();
|
||||
//查询目标表字段
|
||||
//基础字段映射:如果只有一个就不迭代
|
||||
JSONObject mapping = JSONObject.parseObject(param.size()==1?param.get(0):param.remove(0));
|
||||
for (String field : fields) {
|
||||
if (field!=null){
|
||||
String value = sourceFormData.getString(mapping.getString(field));
|
||||
t.put(field,value);
|
||||
}
|
||||
for (String field : mapping.keySet()) {
|
||||
String value = sourceFormData.getString(mapping.getString(field));
|
||||
t.put(field,value);
|
||||
}
|
||||
|
||||
|
||||
//查询表单配置表,获取自定义json:自定义字段参数获取
|
||||
JSONObject form_param = form_struc.getForm_param();
|
||||
if (form_param!=null){
|
||||
JSONObject form_data = new JSONObject();
|
||||
for (String item : form_param.keySet()) {
|
||||
String mappingConfig = mapping.getString(item);
|
||||
if (StringUtils.isNotEmpty(mappingConfig)){
|
||||
String value = sourceFormData.getString(mappingConfig);
|
||||
form_data.put(item,value);
|
||||
String value = "";
|
||||
if (formDataMapping!=null){
|
||||
JSONObject formDataMappingJson = (JSONObject) formDataMapping;
|
||||
String mappingConfig = formDataMappingJson.getString(item);
|
||||
if (StringUtils.isNotEmpty(mappingConfig)){
|
||||
value = sourceFormData.getString(mappingConfig);
|
||||
}
|
||||
}
|
||||
form_data.put(item,value);
|
||||
}
|
||||
t.put("form_data",form_data);
|
||||
}
|
||||
@@ -81,9 +91,8 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
|
||||
for (int i = 0; i < item.size(); i++) {
|
||||
itemList.add(this.handler(param, item.getJSONObject(i), item_struc));
|
||||
}
|
||||
t.put("item",itemList);
|
||||
resultT.put("item",itemList);
|
||||
}
|
||||
JSONObject resultT = new JSONObject();
|
||||
resultT.put("form_type",form_struc.getForm_type());
|
||||
resultT.put("form_id","");
|
||||
resultT.put("source_form_type",souceFromType);
|
||||
|
||||
@@ -7,6 +7,11 @@ import com.alibaba.fastjson.JSONObject;
|
||||
* @Date 2024/5/11 10:31
|
||||
*/
|
||||
public interface ClassProcess {
|
||||
|
||||
JSONObject process(JSONObject from,String type);
|
||||
/**
|
||||
* 表单数据+扩展数据(节点配置信息)
|
||||
* @param from
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
JSONObject process(JSONObject from,JSONObject param);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
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.wms.flow_manage.flow.framework.BpmnModel;
|
||||
import org.nl.wms.flow_manage.flow.framework.converter.BpmnJSONConverter;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.cmd.CommandExecutor;
|
||||
@@ -23,7 +24,10 @@ import org.nl.wms.flow_manage.flow.service.execution.dto.StartProcessInstanceVo;
|
||||
import org.nl.wms.flow_manage.flow.service.model.IActDeModelService;
|
||||
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.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/*
|
||||
@@ -90,6 +94,13 @@ public class FlowOperationServiceImpl implements IFlowOperationService {
|
||||
if (execution==null){
|
||||
throw new BadRequestException("当前流程实例不存在或已经完结");
|
||||
}
|
||||
//判断子流程
|
||||
List<ActRuExecution> childList = iActRuExecutionService.list(new QueryWrapper<ActRuExecution>()
|
||||
.eq("parent_id", proc_inst_id)
|
||||
.ne("status", StatusEnum.FLOW_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(childList)){
|
||||
throw new BadRequestException("当前流程存在未完成的子流程");
|
||||
}
|
||||
ActReProcdef deployment = actReProcdefService.getOne(new LambdaUpdateWrapper<ActReProcdef>()
|
||||
.eq(ActReProcdef::getDeployment_id, execution.getDeployment_id()));
|
||||
if (deployment==null){
|
||||
|
||||
@@ -70,9 +70,13 @@ public class MdGruopDick implements Serializable {
|
||||
*/
|
||||
private String update_time;
|
||||
/**
|
||||
* 修改时间
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 自定义字段
|
||||
|
||||
@@ -61,5 +61,9 @@ public class MdGruopDtl implements Serializable {
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_name;
|
||||
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
public void groupDick(JSONObject forms) {
|
||||
List<JSONObject> tableData = (ArrayList)forms.remove("item");
|
||||
String now = DateUtil.now();
|
||||
forms.put("update_name",SecurityUtils.getCurrentNickName());
|
||||
forms.put("update_time", now);
|
||||
forms.put("create_name",SecurityUtils.getCurrentNickName());
|
||||
forms.put("create_time", now);
|
||||
forms.put("id",IdUtil.getStringId());
|
||||
forms.put("id",IdUtil.getStringId());
|
||||
forms.put("code", CodeUtil.getNewCode("md_group_dick"));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.controller;
|
||||
package org.nl.wms.stor_manage.io.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -1,22 +1,19 @@
|
||||
package org.nl.wms.stor_manage.controller.in;
|
||||
package org.nl.wms.stor_manage.io.controller.in;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.stor_manage.service.dto.StorInvQuery;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.io.service.dto.StorInvQuery;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -35,7 +32,7 @@ public class StIvtIostorinvInController {
|
||||
@Autowired
|
||||
IStIvtIostorinvInService iStIvtIostorinvInService;
|
||||
@Autowired
|
||||
IStIvtIostorinvdtlInService iStIvtIostorinvDtlInService;
|
||||
IStIvtIostorinvdtlService iStIvtIostorinvDtlInService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
@@ -52,13 +49,6 @@ public class StIvtIostorinvInController {
|
||||
@PostMapping("getIosInvDtl")
|
||||
public ResponseEntity<Object> getDtl(@RequestBody String inv_id) {
|
||||
List<Map> mapList = iStIvtIostorinvDtlInService.getByInv(inv_id);
|
||||
//行转列:
|
||||
mapList.forEach(a->{
|
||||
Object form_data = a.get("form_data");
|
||||
if (form_data!=null || form_data instanceof Map){
|
||||
a.putAll((Map) form_data);
|
||||
}
|
||||
});
|
||||
return new ResponseEntity<>(mapList,HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
package org.nl.wms.stor_manage.service.dto;
|
||||
package org.nl.wms.stor_manage.io.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -16,6 +13,7 @@ public class StorInvQuery extends BaseQuery<StIvtIostorinvIn>{
|
||||
private String form_type;
|
||||
private String code;
|
||||
private String status;
|
||||
private String bill_type;
|
||||
private String product_code;
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor;
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor.dao;
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor.dao;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
@@ -33,6 +33,10 @@ public class StIvtIostorinvIn implements Serializable {
|
||||
* 单据编号
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 业务类型
|
||||
*/
|
||||
private String bill_type;
|
||||
|
||||
/**
|
||||
* 生产区域编码
|
||||
@@ -46,16 +50,16 @@ public class StIvtIostorinvIn implements Serializable {
|
||||
/**
|
||||
* 源单业务日期
|
||||
*/
|
||||
private String biz_date;
|
||||
private String source_form_date;
|
||||
/**
|
||||
* 源单号
|
||||
*/
|
||||
private String biz_code;
|
||||
private String source_form_id;
|
||||
|
||||
/**
|
||||
* 源单单据类型
|
||||
*/
|
||||
private String form_type;
|
||||
private String source_form_type;
|
||||
|
||||
|
||||
/**
|
||||
@@ -66,7 +70,7 @@ public class StIvtIostorinvIn implements Serializable {
|
||||
/**
|
||||
* 制单人
|
||||
*/
|
||||
private String create_id;
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 制单时间
|
||||
@@ -76,7 +80,7 @@ public class StIvtIostorinvIn implements Serializable {
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_id;
|
||||
private String update_name;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor.dao.mapper;
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.in.iostor.dao.mapper.StIvtIostorinvMapper">
|
||||
<mapper namespace="org.nl.wms.stor_manage.io.service.in.iostor.dao.mapper.StIvtIostorinvMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,18 +1,17 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor.impl;
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.service.in.iostor.IStIvtIostorinvInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.mapper.StIvtIostorinvMapper;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.IStIvtIostorinvInService;
|
||||
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.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
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;
|
||||
@@ -32,7 +31,7 @@ import java.util.Map;
|
||||
public class StIvtIostorinvInServiceImpl extends ServiceImpl<StIvtIostorinvMapper, StIvtIostorinvIn> implements IStIvtIostorinvInService {
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlInService iStIvtIostorinvdtlInService;
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlInService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -43,13 +42,13 @@ public class StIvtIostorinvInServiceImpl extends ServiceImpl<StIvtIostorinvMappe
|
||||
List<Map> dtls = (List<Map>) form.remove("tableData");
|
||||
StIvtIostorinvIn mst = form.toJavaObject(StIvtIostorinvIn.class);
|
||||
mst.setId(IdUtil.getStringId());
|
||||
mst.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
mst.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
mst.setCreate_time(DateUtil.now());
|
||||
mst.setCode(CodeUtil.getNewCode("IO_CODE"));
|
||||
mst.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
||||
if (dtls!=null && dtls.size()>0){
|
||||
for (int i = 0; i < dtls.size(); i++) {
|
||||
StIvtIostorinvdtlIn dtl = new JSONObject(dtls.get(i)).toJavaObject(StIvtIostorinvdtlIn.class);
|
||||
StIvtIostorinvdtl dtl = new JSONObject(dtls.get(i)).toJavaObject(StIvtIostorinvdtl.class);
|
||||
dtl.setId(IdUtil.getStringId());
|
||||
dtl.setInv_id(mst.getId());
|
||||
dtl.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
||||
@@ -58,4 +57,5 @@ public class StIvtIostorinvInServiceImpl extends ServiceImpl<StIvtIostorinvMappe
|
||||
}
|
||||
this.save(mst);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor_dtl;
|
||||
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface IStIvtIostorinvdtlService extends IService<StIvtIostorinvdtl> {
|
||||
|
||||
void batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
|
||||
List<Map> getByInv(String inv_id);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor_dtl.dao;
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -22,7 +22,7 @@ import lombok.EqualsAndHashCode;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "st_ivt_iostorinvdtl_in",autoResultMap = true)
|
||||
public class StIvtIostorinvdtlIn implements Serializable {
|
||||
public class StIvtIostorinvdtl implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -36,6 +36,20 @@ public class StIvtIostorinvdtlIn implements Serializable {
|
||||
*/
|
||||
private String inv_id;
|
||||
|
||||
/**
|
||||
* 源单号
|
||||
*/
|
||||
private String source_form_id;
|
||||
|
||||
/**
|
||||
* 源单单据类型
|
||||
*/
|
||||
private String source_form_type;
|
||||
/**
|
||||
* 单据明细状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
@@ -46,45 +60,31 @@ public class StIvtIostorinvdtlIn implements Serializable {
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 品质类型
|
||||
*/
|
||||
private String quality_scode;
|
||||
|
||||
/**
|
||||
* 单据明细状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
*/
|
||||
private String qty_unit_id;
|
||||
private String unit_id;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
* 计划数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
private BigDecimal plan_qty;
|
||||
|
||||
|
||||
/**
|
||||
* 已分配数量
|
||||
*/
|
||||
private BigDecimal assign_qty;
|
||||
|
||||
/**
|
||||
* 未分配数量
|
||||
* 未分配数量(计划数量-载具物料数量)
|
||||
*/
|
||||
private BigDecimal unassign_qty;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
* 分配数量
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
private BigDecimal assign_qty;
|
||||
/**
|
||||
* 货主
|
||||
* 分配的载具
|
||||
*/
|
||||
private String shipper;
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 仓库
|
||||
@@ -94,21 +94,16 @@ public class StIvtIostorinvdtlIn implements Serializable {
|
||||
* 仓位编码
|
||||
*/
|
||||
private String struct_code;
|
||||
/**
|
||||
* 分配的载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
|
||||
/**
|
||||
* 载具任务
|
||||
* 备注
|
||||
*/
|
||||
private String task_code;
|
||||
|
||||
private String remark;
|
||||
/**
|
||||
* 单重
|
||||
* 操作时间
|
||||
*/
|
||||
private BigDecimal single_wt;
|
||||
private String update_time;
|
||||
|
||||
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject form_data;
|
||||
@@ -0,0 +1,41 @@
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import org.apache.ibatis.annotations.Result;
|
||||
import org.apache.ibatis.annotations.Results;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface StIvtIostorinvdtlMapper extends BaseMapper<StIvtIostorinvdtl> {
|
||||
|
||||
Integer batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
|
||||
@Select("SELECT\n" +
|
||||
" sum(md_pb_vehicleMater.qty) as qty,\n" +
|
||||
" st_ivt_iostorinvdtl_in.*,\n" +
|
||||
" md_me_materialbase.material_code,\n" +
|
||||
" md_me_materialbase.material_name,\n" +
|
||||
" md_me_materialbase.material_spec\n" +
|
||||
" FROM\n" +
|
||||
" st_ivt_iostorinvdtl_in\n" +
|
||||
" LEFT JOIN md_me_materialbase ON st_ivt_iostorinvdtl_in.material_id = md_me_materialbase.material_id\n" +
|
||||
" LEFT JOIN md_pb_vehicleMater ON (st_ivt_iostorinvdtl_in.vehicle_code = md_pb_vehicleMater.vehicle_code\n" +
|
||||
" and st_ivt_iostorinvdtl_in.material_id = md_pb_vehicleMater.material_id)\n" +
|
||||
" where inv_id = #{inv_id} GROUP BY st_ivt_iostorinvdtl_in.id")
|
||||
@Results({@Result(property = "form_data",column = "form_data",typeHandler = FastjsonTypeHandler.class)})
|
||||
List<Map> findByInv(String inv_id);
|
||||
List<Map> findByInv2(String inv_id);
|
||||
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlInMapper">
|
||||
<mapper namespace="org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper">
|
||||
|
||||
<insert id="batchInsert">
|
||||
insert into st_ivt_iostorinvdtl() values <foreach collection="dtls" open="(" close=")" item="item">
|
||||
</foreach>
|
||||
</insert>
|
||||
<select id="findByInv" resultType="java.util.Map">
|
||||
<select id="findByInv2" resultType="java.util.Map">
|
||||
SELECT
|
||||
sum(md_pb_vehicleMater.qty) as qty,
|
||||
st_ivt_iostorinvdtl_in.*,
|
||||
md_me_materialbase.material_code,
|
||||
md_me_materialbase.material_name,
|
||||
@@ -15,6 +16,8 @@
|
||||
FROM
|
||||
st_ivt_iostorinvdtl_in
|
||||
LEFT JOIN md_me_materialbase ON st_ivt_iostorinvdtl_in.material_id = md_me_materialbase.material_id
|
||||
where inv_id = #{inv_id}
|
||||
LEFT JOIN md_pb_vehicleMater ON (st_ivt_iostorinvdtl_in.vehicle_code = md_pb_vehicleMater.vehicle_code
|
||||
and st_ivt_iostorinvdtl_in.material_id = md_pb_vehicleMater.material_id)
|
||||
where inv_id = #{inv_id} GROUP BY st_ivt_iostorinvdtl_in.id
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,39 @@
|
||||
package org.nl.wms.stor_manage.io.service.in.iostor_dtl.impl;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlMapper, StIvtIostorinvdtl> implements IStIvtIostorinvdtlService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtl> dtls) {
|
||||
this.baseMapper.batchInsert(dtls);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map> getByInv(String inv_id) {
|
||||
if (StringUtils.isEmpty(inv_id)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return this.baseMapper.findByInv(inv_id);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dis;
|
||||
package org.nl.wms.stor_manage.io.service.iostor_dis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dis.dao;
|
||||
package org.nl.wms.stor_manage.io.service.iostor_dis.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dis.dao.mapper;
|
||||
package org.nl.wms.stor_manage.io.service.iostor_dis.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.io.service.iostor_dis.dao.mapper.StIvtIostorinvdisMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,9 +1,9 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dis.impl;
|
||||
package org.nl.wms.stor_manage.io.service.iostor_dis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.IStIvtIostorinvdisService;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
import org.nl.wms.stor_manage.service.iostor_dis.dao.mapper.StIvtIostorinvdisMapper;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dis.IStIvtIostorinvdisService;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dis.dao.StIvtIostorinvdis;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dis.dao.mapper.StIvtIostorinvdisMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor.dao;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor.dao.mapper;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.iostor_dis.dao.mapper.StIvtIostorinvdisMapper">
|
||||
<mapper namespace="org.nl.wms.stor_manage.io.service.in.iostor.dao.mapper.StIvtIostorinvMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,9 +1,9 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor.impl;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor.impl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.StIvtIostorinvIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor.dao.mapper.StIvtIostorinvMapper;
|
||||
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.service.out.iostor.IStIvtIostorinvoutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvoutService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor_dtl;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface IStIvtIostorinvdtlOutService extends IService<StIvtIostorinvdtlIn> {
|
||||
public interface IStIvtIostorinvdtlOutService extends IService<StIvtIostorinvdtl> {
|
||||
|
||||
void batchInsert(List<StIvtIostorinvdtlIn> dtls);
|
||||
void batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor_dtl.dao;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor_dtl.dao.mapper;
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
@@ -13,8 +13,8 @@ import java.util.List;
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface StIvtIostorinvdtlOutMapper extends BaseMapper<StIvtIostorinvdtlIn> {
|
||||
public interface StIvtIostorinvdtlOutMapper extends BaseMapper<StIvtIostorinvdtl> {
|
||||
|
||||
Integer batchInsert(List<StIvtIostorinvdtlIn> dtls);
|
||||
Integer batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlOutMapper">
|
||||
<mapper namespace="org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlOutMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor_dtl.impl;
|
||||
|
||||
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.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl<StIvtIostorinvdtlMapper, StIvtIostorinvdtl> implements IStIvtIostorinvdtlOutService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtl> dtls) {
|
||||
this.baseMapper.batchInsert(dtls);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package org.nl.wms.stor_manage.monitor.listener;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.AbstraceListener;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
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.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/17 15:27
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class StructEventListener extends AbstraceListener<StructEvent> {
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService structattrService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlService iostorinvdtlService;
|
||||
|
||||
@Override
|
||||
protected String doEvent(StructEvent event) {
|
||||
//根据不同的task_type获取对应出入库类型
|
||||
String task_status = event.getTask_status();
|
||||
String task_type = event.getTask_type();
|
||||
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("生成"))){
|
||||
|
||||
}
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("执行中"))){
|
||||
|
||||
}
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("完成"))){
|
||||
//更新出入库单明细状态;如果单据类型是其他的则从from-data表中更新
|
||||
structattrService.changeStruct(event.getStruct_code(),event.getVehicle_code(),task_type);
|
||||
}
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("取消"))){
|
||||
|
||||
}
|
||||
iostorinvdtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("status",task_status).eq("id",event.getSource_form_id()));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.stor_manage.record.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位库存变动记录表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-05-23
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/stIvtStructivtflow")
|
||||
public class StIvtStructivtflowController {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.stor_manage.record.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.record.service.dao.StIvtStructivtflow;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位库存变动记录表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-05-23
|
||||
*/
|
||||
public interface IStIvtStructivtflowService extends IService<StIvtStructivtflow> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package org.nl.wms.stor_manage.record.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位库存变动记录表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-05-23
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "st_ivt_structivtflow", autoResultMap = true)
|
||||
public class StIvtStructivtflow implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 记录标识
|
||||
*/
|
||||
@TableId
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 仓位编码
|
||||
*/
|
||||
private String struct_code;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 总库存
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 冻结库存
|
||||
*/
|
||||
private BigDecimal frozen_qty;
|
||||
|
||||
/**
|
||||
* 载具物料参数
|
||||
*/
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject vehicle_form_data;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String source_form_type;
|
||||
|
||||
/**
|
||||
* 单据表名
|
||||
*/
|
||||
private String source_form_id;
|
||||
|
||||
/**
|
||||
* 变动类型
|
||||
*/
|
||||
private String task_type;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
*/
|
||||
private String unit_id;
|
||||
|
||||
/**
|
||||
* 变动时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
/**
|
||||
* 库存增加
|
||||
*/
|
||||
private Boolean growth;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.stor_manage.record.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.stor_manage.record.service.dao.StIvtStructivtflow;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位库存变动记录表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-05-23
|
||||
*/
|
||||
public interface StIvtStructivtflowMapper extends BaseMapper<StIvtStructivtflow> {
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.in.iostor.dao.mapper.StIvtIostorinvMapper">
|
||||
<mapper namespace="org.nl.stor_manage.record.service.dao.mapper.StIvtStructivtflowMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.stor_manage.record.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.record.service.dao.mapper.StIvtStructivtflowMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位库存变动记录表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-05-23
|
||||
*/
|
||||
@Service
|
||||
public class StIvtStructivtflowServiceImpl extends ServiceImpl<StIvtStructivtflowMapper, StIvtStructivtflow> implements IStIvtStructivtflowService {
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor_dtl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface IStIvtIostorinvdtlInService extends IService<StIvtIostorinvdtlIn> {
|
||||
|
||||
void batchInsert(List<StIvtIostorinvdtlIn> dtls);
|
||||
|
||||
List<Map> getByInv(String inv_id);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor_dtl.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface StIvtIostorinvdtlInMapper extends BaseMapper<StIvtIostorinvdtlIn> {
|
||||
|
||||
Integer batchInsert(List<StIvtIostorinvdtlIn> dtls);
|
||||
|
||||
List<Map> findByInv(String inv_id);
|
||||
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package org.nl.wms.stor_manage.service.in.iostor_dtl.impl;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlInMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.service.out.iostor_dtl.IStIvtIostorinvdtlOutService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvdtlInServiceImpl extends ServiceImpl<StIvtIostorinvdtlInMapper, StIvtIostorinvdtlIn> implements IStIvtIostorinvdtlInService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtlIn> dtls) {
|
||||
this.baseMapper.batchInsert(dtls);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map> getByInv(String inv_id) {
|
||||
if (StringUtils.isEmpty(inv_id)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return this.baseMapper.findByInv(inv_id);
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package org.nl.wms.stor_manage.service.out.iostor_dtl.impl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.IStIvtIostorinvdtlInService;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.StIvtIostorinvdtlIn;
|
||||
import org.nl.wms.stor_manage.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlInMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.stor_manage.service.out.iostor_dtl.IStIvtIostorinvdtlOutService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl<StIvtIostorinvdtlInMapper, StIvtIostorinvdtlIn> implements IStIvtIostorinvdtlOutService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtlIn> dtls) {
|
||||
this.baseMapper.batchInsert(dtls);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.base_manage.struct.controller;
|
||||
package org.nl.wms.stor_manage.struct.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.nl.wms.base_manage.struct.service;
|
||||
package org.nl.wms.stor_manage.struct.service;
|
||||
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.base_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -24,4 +24,5 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
||||
*/
|
||||
List<Map<String, Object>> getByQuery(StructattrQuery query);
|
||||
|
||||
void changeStruct(String struct_code,String vehicle_code,String task_type);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.base_manage.struct.service.dao;
|
||||
package org.nl.wms.stor_manage.struct.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.base_manage.struct.service.dao.mapper;
|
||||
package org.nl.wms.stor_manage.struct.service.dao.mapper;
|
||||
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.base_manage.struct.service.dao.mapper.StIvtStructattrMapper">
|
||||
<mapper namespace="org.nl.wms.stor_manage.struct.service.dao.mapper.StIvtStructattrMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,11 +1,10 @@
|
||||
package org.nl.wms.base_manage.struct.service.dto;
|
||||
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.measure.service.dao.BmMeasureUnit;
|
||||
import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -0,0 +1,81 @@
|
||||
package org.nl.wms.stor_manage.struct.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
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.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;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位属性表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Service
|
||||
public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMapper, StIvtStructattr> implements IStIvtStructattrService {
|
||||
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService vehicleMaterService;
|
||||
@Autowired
|
||||
private IStIvtStructivtflowService structivtflowService;
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getByQuery(StructattrQuery query) {
|
||||
List<Map<String, Object>> maps = this.listMaps(query.build());
|
||||
return maps;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Boolean in = StatusEnum.TASK_TYPE_IN.check("10");
|
||||
System.out.println(in);
|
||||
}
|
||||
@Override
|
||||
public void changeStruct(String struct_code, String vehicle_code, String task_type) {
|
||||
List<MdPbVehicleMater> vehicleMaters = vehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", vehicle_code));
|
||||
this.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",vehicle_code)
|
||||
.set("lock_type", StatusEnum.LOCK.code("无"))
|
||||
.eq("struct_code",struct_code));
|
||||
Boolean in = StatusEnum.TASK_TYPE_IN.check(task_type);
|
||||
|
||||
String now = DateUtil.now();
|
||||
List<StIvtStructivtflow> records = new ArrayList<>();
|
||||
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
||||
StIvtStructivtflow record = new StIvtStructivtflow();
|
||||
record.setId(IdUtil.getStringId());
|
||||
record.setUpdate_time(now);
|
||||
record.setMaterial_id(vehicleMater.getMaterial_id());
|
||||
record.setPcsn(vehicleMater.getPcsn());
|
||||
record.setQty(vehicleMater.getQty());
|
||||
record.setTask_type(task_type);
|
||||
record.setFrozen_qty(vehicleMater.getFrozen_qty());
|
||||
record.setSource_form_type(vehicleMater.getSource_form_type());
|
||||
record.setSource_form_id(vehicleMater.getSource_form_id());
|
||||
record.setUnit_id(vehicleMater.getUnit_id());
|
||||
record.setStruct_code(struct_code);
|
||||
record.setVehicle_form_data(vehicleMater.getForm_data());
|
||||
record.setGrowth(in);
|
||||
records.add(record);
|
||||
}
|
||||
structivtflowService.saveBatch(records);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user