add:新增出库任务
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.config_manage.form_struc.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
@@ -8,8 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -21,7 +21,8 @@ public class StructEvent extends PublishEvent {
|
||||
|
||||
private String task_status;
|
||||
|
||||
private String struct_code;
|
||||
private String point_code1;
|
||||
private String point_code2;
|
||||
|
||||
private String source_form_id;
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
|
||||
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.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.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 OutStorageTaskHandler implements TaskHandler {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private ISysParamService iSysParamService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//区分出库还是入库
|
||||
//根据不同的仓位设置不同的终点
|
||||
Param outStorage = iSysParamService.findByCode("OutStorage");
|
||||
if (outStorage==null || StringUtils.isEmpty(outStorage.getValue())){
|
||||
throw new BadRequestException("创建任务失败:OutStorageTaskHandler#process()未配置出库对应点位");
|
||||
}
|
||||
JSONObject outStorageConfig = JSONObject.parseObject(outStorage.getValue());
|
||||
String end_point = outStorageConfig.getString(from.getString("stor_code"));
|
||||
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
StIvtStructattr struct = iStIvtStructattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("vehicle_code", vehicle_code));
|
||||
String struct_code = struct.getStruct_code();
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(end_point)||StringUtils.isEmpty(struct_code)){
|
||||
throw new BadRequestException("创建任务失败:OutStorageTaskHandler#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.setCreate_time(DateUtil.now());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setTask_type(param.getString("task_type"));
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(struct_code);
|
||||
task.setPoint_code2(end_point);
|
||||
taskService.save(task);
|
||||
Boolean isSend = param.getBoolean("is_send");
|
||||
if (isSend){
|
||||
//参数封装,调acs接口
|
||||
}
|
||||
return (JSONObject)JSON.toJSON(task);
|
||||
}
|
||||
}
|
||||
@@ -38,20 +38,9 @@ public class StackingTaskHandler implements TaskHandler {
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//区分出库还是入库
|
||||
Boolean in = StatusEnum.TASK_TYPE.check(param.getString("task_type"));
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
|
||||
String point_code1;
|
||||
String point_code2;
|
||||
if(in){
|
||||
point_code1 = from.getString("struct_code");
|
||||
point_code2 = param.getString("start_point");
|
||||
}else {
|
||||
point_code2 = from.getString("struct_code");
|
||||
point_code1 = param.getString("start_point");
|
||||
}
|
||||
|
||||
|
||||
String point_code1 = from.getString("struct_code");
|
||||
String point_code2 = param.getString("start_point");
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(point_code1)||StringUtils.isEmpty(point_code2)){
|
||||
throw new BadRequestException("创建任务失败:StackingTaskHandler#process()方法请求参数不能为空");
|
||||
}
|
||||
|
||||
@@ -51,7 +51,9 @@ public class TaskStatusHandler implements TaskHandler {
|
||||
.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())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
return from;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,8 @@
|
||||
sch_base_task.point_code1,
|
||||
sch_base_task.point_code2,
|
||||
sch_base_task.task_type,
|
||||
sch_base_task.task_status
|
||||
sch_base_task.task_status,
|
||||
sch_base_task.task_code
|
||||
FROM
|
||||
md_pb_vehicleMater
|
||||
LEFT JOIN st_ivt_structattr ON md_pb_vehicleMater.vehicle_code = st_ivt_structattr.vehicle_code
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
@@ -89,7 +90,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
Assert.notNull(entity.getTask_status(), "任务状态不能为空!");
|
||||
|
||||
entity.setId(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
entity.setCreate_name(nickName);
|
||||
entity.setCreate_time(now);
|
||||
entity.setUpdate_name(nickName);
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.nl.wms.flow_manage.flow.service.deployment.dao.ActReProcdef;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -65,14 +66,28 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
List<JSONObject> subList = new ArrayList<>();
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
JSONObject item = items.getJSONObject(i);
|
||||
String[] vehicle_codes = item.getString("vehicle_code").split(",");
|
||||
JSONObject t = (JSONObject)item.remove("t");
|
||||
String[] vehicle_codes = t.getString("vehicle_code").split(",");
|
||||
for (String vehicle_code : vehicle_codes) {
|
||||
JSONObject subt = new JSONObject(t);
|
||||
subt.put("vehicle_code",vehicle_code);
|
||||
JSONObject sub = new JSONObject(item);
|
||||
sub.put("vehicle_code",vehicle_code);
|
||||
sub.put("t",subt);
|
||||
subList.add(sub);
|
||||
}
|
||||
}
|
||||
if (subList!=null){
|
||||
if (!CollectionUtils.isEmpty(subList)){
|
||||
// for (JSONObject o : subList) {
|
||||
// ExecutionEntity subEntity = new ExecutionEntity();
|
||||
// subEntity.setParent_id(entity.getProc_inst_id());
|
||||
// subEntity.setForm_id(entity.getForm_id());
|
||||
// subEntity.setForm_type(entity.getForm_type());
|
||||
// subEntity.setDeploymentId(entity.getDeploymentId());
|
||||
// subEntity.setCurrentFlowElement(startEvent);
|
||||
// subEntity.setT(o);
|
||||
// //在endEvent中有个所有子流程结束的判断:如果判断成功会触发父流程:startEvent暂时通过等待处理防止自动流程导致endEvent判断出错
|
||||
// commandExecutor.execute(new StartInstanceCmd(), subEntity);
|
||||
// }
|
||||
//子流程并行,子流程单一的时候直接串行
|
||||
subList.stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
ExecutionEntity subEntity = new ExecutionEntity();
|
||||
|
||||
@@ -5,6 +5,7 @@ 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.common.utils.ListOf;
|
||||
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;
|
||||
@@ -16,6 +17,7 @@ import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService
|
||||
import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -64,7 +66,7 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
item_json.put("struct_code",collect);
|
||||
return t;
|
||||
}
|
||||
@Transactional
|
||||
@Transactional(propagation= Propagation.REQUIRES_NEW)
|
||||
public List<StIvtStructattr> dispense(List<String> params, StIvtIostorinvdtl iostorinvdtl) {
|
||||
AtomicReference<List<StIvtStructattr>> structCode = new AtomicReference<>();
|
||||
RedissonUtils.lock(()->{
|
||||
@@ -89,16 +91,22 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
}
|
||||
System.out.println(list);
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("无可分配货位!");
|
||||
}
|
||||
//如果是入库的话只分配一个,出库的话有可能多个货位
|
||||
if (iostorinvdtl.getIn_storage()){
|
||||
list= ListOf.of(list.get(0));
|
||||
}
|
||||
structCode.set(list);
|
||||
System.out.println("分配的货位"+list.toString());
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
// .set("vehicle_code", iostorinvdtl.getVehicle_code())
|
||||
.set("lock_type", StatusEnum.LOCK.code(iostorinvdtl.getIn_storage()?"入":"出"))
|
||||
.in("struct_code", list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList())));
|
||||
},"入",2);
|
||||
System.out.println("货位绑定成功");
|
||||
},"入",2);
|
||||
System.out.println("货位绑定成功------");
|
||||
return structCode.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,11 @@ public class FlowOperationServiceImpl implements IFlowOperationService {
|
||||
|
||||
@Override
|
||||
public String startUp(String model_key, Consumer callback, ExecutionDto dto) {
|
||||
ActRuExecution one = iActRuExecutionService.getOne(new QueryWrapper<ActRuExecution>()
|
||||
.eq("form_type", dto.getForm_type()).eq("form_id", dto.getForm_id()));
|
||||
if (one!=null){
|
||||
throw new BadRequestException("当前单据流程已存在:"+dto.getForm_type()+"_"+dto.getForm_id());
|
||||
}
|
||||
ActReProcdef deployment = actReProcdefService.getCurrentVersion(model_key);
|
||||
if (deployment==null){
|
||||
throw new BadRequestException("当前单据类型未配置业务流程");
|
||||
@@ -64,8 +69,8 @@ public class FlowOperationServiceImpl implements IFlowOperationService {
|
||||
entity.setCurrentFlowElement(bpmnModel.getStartEvent());
|
||||
entity.setT(JSONObject.toJSON(dto));
|
||||
entity.setCallback(callback);
|
||||
entity.setForm_type(dto.getSource_form_type());
|
||||
entity.setForm_id(dto.getSource_form_id());
|
||||
entity.setForm_type(dto.getForm_type());
|
||||
entity.setForm_id(dto.getForm_id());
|
||||
entity.setStartActivityId(entity.getActivityId());
|
||||
entity.setDeploymentId(deployment.getDeployment_id());
|
||||
commandExecutor.execute(new StartInstanceCmd(),entity);
|
||||
|
||||
@@ -41,13 +41,16 @@ public class StIvtIostorinvOutController {
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(StorInvOutQuery query, PageQuery page) {
|
||||
Page<StIvtIostorinvOut> result = iStIvtIostorinvOutService.page(page.build(), query.build());
|
||||
return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("delete")
|
||||
public ResponseEntity<Object> delete(@RequestBody List<String> ids) {
|
||||
iStIvtIostorinvOutService.removeByIds(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping
|
||||
public ResponseEntity<Object> save(@RequestBody JSONObject form) {
|
||||
iStIvtIostorinvOutService.save(form);
|
||||
@@ -87,5 +90,11 @@ public class StIvtIostorinvOutController {
|
||||
List<Map> dis = iSchBaseTaskService.getByVehicle(dtl.getString("vehicle_code"));
|
||||
return new ResponseEntity<>(TableDataInfo.build(dis),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/taskOpen")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject dtl) {
|
||||
iStIvtIostorinvOutService.taskOpen(dtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,4 +20,6 @@ public interface IStIvtIostorinvOutService extends IService<StIvtIostorinvOut> {
|
||||
String dispense(JSONObject form);
|
||||
|
||||
String canceldispense(JSONObject form);
|
||||
|
||||
void taskOpen(JSONObject form);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package org.nl.wms.stor_manage.io.service.out.iostor.dao;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -15,7 +19,7 @@ import lombok.EqualsAndHashCode;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinv_out")
|
||||
@TableName(value = "st_ivt_iostorinv_out", autoResultMap = true)
|
||||
public class StIvtIostorinvOut implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@@ -33,7 +37,7 @@ public class StIvtIostorinvOut implements Serializable {
|
||||
/**
|
||||
* 出入类型
|
||||
*/
|
||||
private Boolean bill_type;
|
||||
private String bill_type;
|
||||
|
||||
|
||||
/**
|
||||
@@ -90,7 +94,8 @@ public class StIvtIostorinvOut implements Serializable {
|
||||
/**
|
||||
* 自定义映射数据
|
||||
*/
|
||||
private String form_data;
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject form_data;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -7,10 +7,16 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowStartEvent;
|
||||
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDtl;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.mapper.StIvtIostorinvOutMapper;
|
||||
@@ -23,9 +29,11 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -111,4 +119,31 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void taskOpen(JSONObject form) {
|
||||
|
||||
StIvtIostorinvOut iostorinv = form.toJavaObject(StIvtIostorinvOut.class);
|
||||
//查询明细
|
||||
List<StIvtIostorinvdtlOut> dtls = iStIvtIostorinvDtlOutService.list(new QueryWrapper<StIvtIostorinvdtlOut>().eq("inv_id", iostorinv.getId()));
|
||||
List<Map> dtlJson = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(dtls)){
|
||||
for (StIvtIostorinvdtlOut dtl : dtls) {
|
||||
dtlJson.add(MapOf.of("form_id",dtl.getId()
|
||||
,"t",JSONObject.toJSON(dtl)
|
||||
,"source_form_type",dtl.getSource_form_type()
|
||||
,"source_form_id",dtl.getSource_form_id()));
|
||||
}
|
||||
}
|
||||
BussEventMulticaster.Publish(new FlowStartEvent("st_ivt_iostorinv_out", null)
|
||||
.build("st_ivt_iostorinv_out",iostorinv.getId(),iostorinv.getSource_form_type(),iostorinv.getSource_form_id(),form)
|
||||
.build("st_ivt_iostorinvdtl_out",dtlJson)
|
||||
,true);
|
||||
|
||||
this.update(new UpdateWrapper<StIvtIostorinvOut>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("update_name",SecurityUtils.getCurrentNickName())
|
||||
.eq("id",form.getString("id")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ import org.nl.wms.flow_manage.monitor.event.FlowEndEvent;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowStartEvent;
|
||||
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.out.iostor.IStIvtIostorinvOutService;
|
||||
import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -27,6 +29,8 @@ public class FlowEndEventListener extends AbstraceListener<FlowEndEvent> {
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvInService iStIvtIostorinvInService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvOutService iStIvtIostorinvOutService;
|
||||
|
||||
@Override
|
||||
protected String doEvent(FlowEndEvent event) {
|
||||
@@ -41,6 +45,11 @@ public class FlowEndEventListener extends AbstraceListener<FlowEndEvent> {
|
||||
.set("status", StatusEnum.FORM_STATUS.code("完成"))
|
||||
.set("update_time", DateUtil.now()).eq("id",form_id));
|
||||
}
|
||||
if (form_type.equals("st_ivt_iostorinv_out")){
|
||||
iStIvtIostorinvOutService.update(new UpdateWrapper<StIvtIostorinvOut>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("完成"))
|
||||
.set("update_time", DateUtil.now()).eq("id",form_id));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,8 @@ public class StructEventListener extends AbstraceListener<StructEvent> {
|
||||
}
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("完成"))){
|
||||
//更新出入库单明细状态;如果单据类型是其他的则从from-data表中更新
|
||||
structattrService.changeStruct(event.getStruct_code(),event.getVehicle_code(),task_type);
|
||||
Boolean in = StatusEnum.IOBILL_TYPE_IN.check(task_type);
|
||||
structattrService.changeStruct(in?event.getPoint_code2():event.getPoint_code1(),in?event.getVehicle_code():null,task_type);
|
||||
}
|
||||
if (task_status.equals(StatusEnum.FORM_STATUS.code("取消"))){
|
||||
|
||||
|
||||
@@ -38,6 +38,10 @@ public class StIvtStructivtflow implements Serializable {
|
||||
*/
|
||||
private String struct_code;
|
||||
|
||||
/**
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code;
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
|
||||
@@ -127,6 +127,15 @@ public class StIvtStructattr implements Serializable {
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_name;
|
||||
|
||||
/**
|
||||
* 是否临时仓位
|
||||
|
||||
@@ -65,18 +65,20 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
@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.check(task_type);
|
||||
|
||||
String now = DateUtil.now();
|
||||
|
||||
this.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",vehicle_code)
|
||||
.set("update_time",now)
|
||||
.set("lock_type", StatusEnum.LOCK.code("无"))
|
||||
.eq("struct_code",struct_code));
|
||||
|
||||
List<StIvtStructivtflow> records = new ArrayList<>();
|
||||
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
||||
StIvtStructivtflow record = new StIvtStructivtflow();
|
||||
record.setId(IdUtil.getStringId());
|
||||
record.setUpdate_time(now);
|
||||
record.setVehicle_code(vehicleMater.getVehicle_code());
|
||||
record.setMaterial_id(vehicleMater.getMaterial_id());
|
||||
record.setPcsn(vehicleMater.getPcsn());
|
||||
record.setQty(vehicleMater.getQty());
|
||||
@@ -87,7 +89,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
record.setUnit_id(vehicleMater.getUnit_id());
|
||||
record.setStruct_code(struct_code);
|
||||
record.setVehicle_form_data(vehicleMater.getForm_data());
|
||||
record.setGrowth(in);
|
||||
record.setGrowth( StatusEnum.IOBILL_TYPE_IN.check(task_type));
|
||||
records.add(record);
|
||||
}
|
||||
structivtflowService.saveBatch(records);
|
||||
|
||||
Reference in New Issue
Block a user