add:拣选流程优化;
This commit is contained in:
@@ -32,7 +32,7 @@ public enum StatusEnum {
|
||||
* 出入库单据类型
|
||||
*/
|
||||
IOBILL_TYPE_IN(ForkMap.of("生产入库", "10","inStorageTask", "调拨入库", "11","inStorageTask", "退货入库", "12","inStorageTask","拣选回库", "13","inStorageTask")),
|
||||
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask", "拣选出库", "23","outStorageTask")),
|
||||
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask", "拣选出库", "23","conveyorOutStorageTask")),
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
@@ -81,12 +81,6 @@ public enum StatusEnum {
|
||||
|
||||
public Boolean check(String code) {
|
||||
ForkMap<String, String, String> map = this.getCode();
|
||||
for (String key : map.getKeySet()) {
|
||||
if (code.equals(map.getM(key))){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
return map.getKeySet().contains(code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,9 +124,13 @@ public class BmFormStruc implements Serializable {
|
||||
*/
|
||||
private String parent_id;
|
||||
/**
|
||||
* 关联上级表单id
|
||||
* 表单自动映射
|
||||
*/
|
||||
private Boolean auto_mapping;
|
||||
/**
|
||||
* 是否属于基础表单
|
||||
*/
|
||||
private Boolean is_base;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -117,6 +117,14 @@ public class BmFormStrucDto implements Serializable {
|
||||
* 是否含有明细表单
|
||||
*/
|
||||
private Boolean has_child;
|
||||
/**
|
||||
* 是否为基础表
|
||||
*/
|
||||
private Boolean is_base;
|
||||
/**
|
||||
* 表单自动映射
|
||||
*/
|
||||
private Boolean auto_mapping;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
|
||||
@@ -115,8 +115,8 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior<JSONObject> {
|
||||
}
|
||||
iostorinvService.save(mst);
|
||||
entity.setT(handler);
|
||||
entity.setForm_id(handler.getString("form_type"));
|
||||
entity.setForm_type(handler.getString("form_id"));
|
||||
entity.setForm_id(handler.getString("form_id"));
|
||||
entity.setForm_type(handler.getString("form_type"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ public class ServerTaskActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
}
|
||||
JSONObject handler = typeHandler.handler(currentNode.getSkipExpression(), entity, null);
|
||||
entity.setT(handler);
|
||||
entity.setForm_id(handler.getString("form_type"));
|
||||
entity.setForm_type(handler.getString("form_id"));
|
||||
entity.setForm_id(handler.getString("form_id"));
|
||||
entity.setForm_type(handler.getString("form_type"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,13 @@ package org.nl.wms.flow_manage.flow.framework.engine.behavior.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
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.IdUtil;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
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.engine.cmd.CommandExecutor;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.operation.impl.SequenceFlowOperation;
|
||||
@@ -17,11 +20,15 @@ import org.nl.wms.flow_manage.flow.service.deployment.IActReProcdefService;
|
||||
import org.nl.wms.flow_manage.flow.service.deployment.dao.ActReProcdef;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -32,9 +39,11 @@ import java.util.function.Consumer;
|
||||
public class StartEventActivityBehavior extends FlowNodeActivityBehavior {
|
||||
|
||||
@Autowired
|
||||
IActReProcdefService deploymentService;
|
||||
private IActReProcdefService deploymentService;
|
||||
@Autowired
|
||||
IPmFormDataService iPmFormDataService;
|
||||
private IPmFormDataService iPmFormDataService;
|
||||
@Autowired
|
||||
private IBmFormStrucService iBmFormStrucService;
|
||||
|
||||
@Override
|
||||
public void execute(ExecutionEntity entity) {
|
||||
@@ -48,8 +57,24 @@ public class StartEventActivityBehavior extends FlowNodeActivityBehavior {
|
||||
ActReProcdef deployment = deploymentService.getById(entity.getDeploymentId());
|
||||
if (deployment==null){throw new BadRequestException("当前部署的流程状态异常");}
|
||||
//创建流程实例:
|
||||
String proc_inst_id = IdUtil.getStringId();
|
||||
StartEvent tmpFlow = (StartEvent)entity.getCurrentFlowElement();
|
||||
String form_type = tmpFlow.getForm_type();
|
||||
BmFormStruc bmFormStruc = iBmFormStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", form_type));
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append("update ")
|
||||
.append(bmFormStruc.getIs_base()?form_type:"pm_form_data")
|
||||
.append(" set status = ")
|
||||
.append("'"+StatusEnum.FORM_STATUS.code("执行中")+"'")
|
||||
.append(" where id = ")
|
||||
.append("'"+entity.getForm_id()+"'");
|
||||
iPmFormDataService.dynamicSql(sql.toString());
|
||||
Consumer callback = entity.getCallback();
|
||||
if (callback!=null){
|
||||
callback.accept(proc_inst_id);
|
||||
}
|
||||
ActRuExecution execution = new ActRuExecution();
|
||||
execution.setProc_inst_id(IdUtil.getStringId());
|
||||
execution.setProc_inst_id(proc_inst_id);
|
||||
execution.setDeployment_id(deployment.getDeployment_id());
|
||||
execution.setForm_type(entity.getForm_type());
|
||||
execution.setParent_id(entity.getParent_id());
|
||||
@@ -60,22 +85,7 @@ public class StartEventActivityBehavior extends FlowNodeActivityBehavior {
|
||||
execution.setCreate_time(DateUtil.now());
|
||||
execution.setStatus(StatusEnum.FLOW_STATUS.code("启动"));
|
||||
iActRuExecutionService.save(execution);
|
||||
StartEvent currentFlowElement = (StartEvent)entity.getCurrentFlowElement();
|
||||
String form_type = currentFlowElement.getForm_type();
|
||||
if (StringUtils.isNotEmpty(form_type)){
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append("update ")
|
||||
.append(entity.getForm_type())
|
||||
.append(" set status = ")
|
||||
.append("'"+StatusEnum.FORM_STATUS.code("执行中")+"'")
|
||||
.append(" where id = ")
|
||||
.append("'"+entity.getForm_id()+"'");
|
||||
iPmFormDataService.dynamicSql(sql.toString());
|
||||
}
|
||||
Consumer callback = entity.getCallback();
|
||||
if (callback!=null){
|
||||
callback.accept(execution.getProc_inst_id());
|
||||
}
|
||||
|
||||
entity.setProc_inst_id(execution.getProc_inst_id());
|
||||
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ public class StrucFormActivityBehavior extends FlowNodeActivityBehavior<JSONObje
|
||||
}
|
||||
iPmFormDataService.save(mst);
|
||||
entity.setT(handler);
|
||||
entity.setForm_id(handler.getString("form_type"));
|
||||
entity.setForm_type(handler.getString("form_id"));
|
||||
entity.setForm_id(handler.getString("form_id"));
|
||||
entity.setForm_type(handler.getString("form_type"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,10 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
JSONObject t = entity.getT();
|
||||
JSONObject item_json = t.getJSONObject("t");
|
||||
ServerTask flow = (ServerTask)entity.getCurrentFlowElement();
|
||||
JSONObject auxParam = flow.getAuxParam();
|
||||
if (auxParam!=null){
|
||||
item_json.putAll(auxParam);
|
||||
}
|
||||
Map<String, String> map = SpringContextHolder.getBean(DecisionHandler.class).dispense(params, item_json);
|
||||
//更新仓位,更新数据
|
||||
System.out.println(flow.getForm_type()+"更新明细id"+item_json.getString("id"));
|
||||
|
||||
@@ -6,6 +6,8 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.AbstraceListener;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.service.history.IActHiExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowEndEvent;
|
||||
@@ -15,6 +17,8 @@ import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -30,6 +34,10 @@ public class FlowEndEventListener extends AbstraceListener<FlowEndEvent> {
|
||||
@Autowired
|
||||
private IPmFormDataService iPmFormDataService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IBmFormStrucService iBmFormStrucService;
|
||||
|
||||
@Override
|
||||
protected String doEvent(FlowEndEvent event) {
|
||||
//更新所有流程过程中的单据为完成
|
||||
@@ -44,10 +52,13 @@ public class FlowEndEventListener extends AbstraceListener<FlowEndEvent> {
|
||||
.eq("proc_inst_id", proc_inst_id)
|
||||
.in("form_type",finish)
|
||||
.select("activity_id","update_time","form_type","form_id"));
|
||||
Set<String> tmpFormTypes = historys.stream().map(ActHiExecution::getForm_type).collect(Collectors.toSet());
|
||||
List<BmFormStruc> tmpFormTypeCollect = iBmFormStrucService.list(new QueryWrapper<BmFormStruc>().in("form_type", tmpFormTypes));
|
||||
Set<String> baseFromCollect = tmpFormTypeCollect.stream().filter(BmFormStruc::getIs_base).map(BmFormStruc::getForm_type).collect(Collectors.toSet());
|
||||
for (ActHiExecution history : historys) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append("update ")
|
||||
.append(history.getForm_type())
|
||||
.append(baseFromCollect.contains(history.getForm_type())?history.getForm_type():"pm_form_data")
|
||||
.append(" set status = ")
|
||||
.append("'"+StatusEnum.FORM_STATUS.code("完成")+"'")
|
||||
.append(" where id = ")
|
||||
|
||||
Reference in New Issue
Block a user