add:添加任务配置
This commit is contained in:
@@ -20,7 +20,7 @@ public class MapOf implements Serializable {
|
||||
}
|
||||
public static <K> HashMap push(Map...item){
|
||||
HashMap map = new HashMap<>();
|
||||
for (int i = 0; i < (item.length & ~1); i=i+2) {
|
||||
for (int i = 0; i < (item.length & ~1); i=i+1) {
|
||||
map.putAll(item[i]);
|
||||
}
|
||||
return map;
|
||||
|
||||
@@ -53,8 +53,8 @@ public class AlmEarlyInterceptor implements Interceptor {
|
||||
Field field = param1.getClass().getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
return (String) field.get(param1);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,10 +46,10 @@ public class MybatisPlusConfig {
|
||||
return configuration -> configuration.addInterceptor(new PageInterceptor());
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Interceptor datazhuazhuaInterceptor() {
|
||||
return new AlmEarlyInterceptor();
|
||||
}
|
||||
// @Bean
|
||||
// public Interceptor datazhuazhuaInterceptor() {
|
||||
// return new AlmEarlyInterceptor();
|
||||
// }
|
||||
|
||||
@PostConstruct
|
||||
public void datainnit() {
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.decision_manage.applyTask.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
@@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
|
||||
/**
|
||||
@@ -58,8 +60,11 @@ public class ApplyFlowTask extends AbstractApplyTask {
|
||||
}
|
||||
JSONObject mstJ = (JSONObject) JSONObject.toJSON(mst);
|
||||
mstJ.put("stor_code",item.get(0).getStor_code());
|
||||
//更新载具proc_inst_id
|
||||
BussEventMulticaster.Publish(
|
||||
new FlowStartEvent("md_group",null,new JSONObject(MapOf.of("start_point",point_code1)))
|
||||
new FlowStartEvent("md_group",
|
||||
proc_inst_id -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>().set("proc_inst_id",proc_inst_id).eq("vehicle_code",vehicle_code))
|
||||
,new JSONObject(MapOf.of("target_point", point_code1)))
|
||||
.build("md_group_dick",mst.getId(),mst.getSource_form_type(),mst.getSource_form_id(), mstJ)
|
||||
.build("md_pb_vehicleMater",item)
|
||||
);
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:35
|
||||
*/
|
||||
public interface TaskHandler extends ClassProcess {
|
||||
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
*/
|
||||
@Service
|
||||
public class AgvTaskHandler implements TaskHandler {
|
||||
|
||||
@Override
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@
|
||||
md_pb_vehicleMater
|
||||
LEFT JOIN st_ivt_structattr ON md_pb_vehicleMater.vehicle_code = st_ivt_structattr.vehicle_code
|
||||
LEFT JOIN md_me_materialbase ON md_pb_vehicleMater.material_id = md_me_materialbase.material_id
|
||||
LEFT JOIN sch_base_task ON (md_pb_vehicleMater.vehicle_code = sch_base_task.vehicle_code )
|
||||
LEFT JOIN sch_base_task ON (md_pb_vehicleMater.vehicle_code = sch_base_task.vehicle_code and md_pb_vehicleMater.task_code = sch_base_task.task_code )
|
||||
where md_pb_vehicleMater.vehicle_code in
|
||||
<foreach collection="vehicles" item="vehicle_code" open="(" close=")" separator=",">
|
||||
#{vehicle_code}
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -64,6 +65,7 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
//基于明细id拆分还是继续vehicle_code拆分
|
||||
List<JSONObject> subList = new ArrayList<>();
|
||||
Map<String, JSONObject> tmpMap = new HashMap<>();
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
JSONObject item = items.getJSONObject(i);
|
||||
JSONObject t = (JSONObject)item.remove("t");
|
||||
@@ -73,10 +75,15 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
subt.put("vehicle_code",vehicle_code);
|
||||
JSONObject sub = new JSONObject(item);
|
||||
sub.put("t",subt);
|
||||
if (tmpMap.get(vehicle_code) == null){
|
||||
tmpMap.put(vehicle_code,sub);
|
||||
}
|
||||
subList.add(sub);
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(subList)){
|
||||
//现在子流程跟载具有关后续可以通过配置拆分字段:vehicle_code跟拆分规则实现
|
||||
System.out.println("子流程数据合并结果:"+subList.size()+"__"+tmpMap.size());
|
||||
if (!CollectionUtils.isEmpty(tmpMap)){
|
||||
// for (JSONObject o : subList) {
|
||||
// ExecutionEntity subEntity = new ExecutionEntity();
|
||||
// subEntity.setParent_id(entity.getProc_inst_id());
|
||||
@@ -89,7 +96,7 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
// commandExecutor.execute(new StartInstanceCmd(), subEntity);
|
||||
// }
|
||||
//子流程并行,子流程单一的时候直接串行
|
||||
subList.stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
tmpMap.values().stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
ExecutionEntity subEntity = new ExecutionEntity();
|
||||
subEntity.setParent_id(entity.getProc_inst_id());
|
||||
subEntity.setForm_id(entity.getForm_id());
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
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 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.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
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.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
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.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
* 堆垛机入库任务
|
||||
*/
|
||||
@Service
|
||||
public class CreateTaskProcessHandler implements ClassProcess {
|
||||
|
||||
@Autowired
|
||||
ISchBaseTaskService taskService;
|
||||
|
||||
@Autowired
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//区分出库还是入库
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
String struct_code = from.getString("struct_code");
|
||||
String target_point = param.getString("target_point");
|
||||
String task_type = param.getString("task_type");
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)||StringUtils.isEmpty(struct_code)){
|
||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||
}
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("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.setSource_form_id(from.getString("id"));
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setStatus(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(target_point);
|
||||
task.setPoint_code2(struct_code);
|
||||
taskService.create(task);
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
|
||||
return (JSONObject)JSON.toJSON(task);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -9,7 +9,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
|
||||
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
@@ -24,7 +24,7 @@ import java.util.List;
|
||||
* @Date 2024/5/6 14:34
|
||||
*/
|
||||
@Service
|
||||
public class TaskStatusHandler implements TaskHandler {
|
||||
public class FinishTaskProcessHandler implements ClassProcess {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService schBaseTaskService;
|
||||
@@ -1,24 +1,28 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
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 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.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
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.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
@@ -30,7 +34,7 @@ import java.util.stream.Collectors;
|
||||
* 出库任务入库任务
|
||||
*/
|
||||
@Service
|
||||
public class OutStorageTaskHandler implements TaskHandler {
|
||||
public class OutStorageTaskHandler implements ClassProcess {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@@ -39,8 +43,11 @@ public class OutStorageTaskHandler implements TaskHandler {
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//区分出库还是入库
|
||||
//根据不同的仓位设置不同的终点
|
||||
@@ -75,6 +82,9 @@ public class OutStorageTaskHandler implements TaskHandler {
|
||||
task.setPoint_code1(struct_code);
|
||||
task.setPoint_code2(end_point);
|
||||
taskService.save(task);
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
Boolean isSend = param.getBoolean("is_send");
|
||||
if (isSend){
|
||||
//参数封装,调acs接口
|
||||
@@ -1,9 +1,10 @@
|
||||
package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
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 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;
|
||||
@@ -11,12 +12,14 @@ import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
|
||||
import org.nl.wms.dispatch_manage.task.handler.TaskHandler;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
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;
|
||||
@@ -28,7 +31,7 @@ import java.util.stream.Collectors;
|
||||
* 堆垛机入库任务
|
||||
*/
|
||||
@Service
|
||||
public class StackingTaskHandler implements TaskHandler {
|
||||
public class StackingTaskHandler implements ClassProcess {
|
||||
|
||||
@Autowired
|
||||
ISchBaseTaskService taskService;
|
||||
@@ -37,6 +40,7 @@ public class StackingTaskHandler implements TaskHandler {
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//区分出库还是入库
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
@@ -64,10 +68,10 @@ public class StackingTaskHandler implements TaskHandler {
|
||||
task.setPoint_code1(start_point);
|
||||
task.setPoint_code2(struct_code);
|
||||
taskService.create(task);
|
||||
Boolean isSend = param.getBoolean("is_send");
|
||||
if (isSend){
|
||||
//参数封装,调acs接口
|
||||
}
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
|
||||
return (JSONObject)JSON.toJSON(task);
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ public class FlowStartEvent extends PublishEvent {
|
||||
List<ExecutionDto> item =new ArrayList();
|
||||
for (Z z : datas) {
|
||||
JSONObject data = (JSONObject)JSONObject.toJSON(z);
|
||||
String form_id = (String)data.getString("form_id");
|
||||
String form_id = (String)data.getString("id");
|
||||
String source_form_id = (String)data.getString("source_form_id");
|
||||
String source_form_type = (String)data.getString("source_form_type");
|
||||
ExecutionDto build = ExecutionDto.builder()
|
||||
|
||||
@@ -94,6 +94,9 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
dick.setCode(CodeUtil.getNewCode("md_group_dick"));
|
||||
dick.setId(IdUtil.getStringId());
|
||||
map.put(vehicle_code,dick);
|
||||
vehicleMater.setGroup_id(dick.getId());
|
||||
}else {
|
||||
vehicleMater.setGroup_id(mdGruopDick.getId());
|
||||
}
|
||||
vehicleMater.setId(IdUtil.getStringId());
|
||||
vehicleMater.setCreate_time(now);
|
||||
|
||||
@@ -28,6 +28,11 @@ public class MdPbVehicleMater implements Serializable {
|
||||
|
||||
@TableId
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 组盘id
|
||||
*/
|
||||
private String group_id;
|
||||
/**
|
||||
* 仓库
|
||||
*/
|
||||
@@ -79,6 +84,10 @@ public class MdPbVehicleMater implements Serializable {
|
||||
* 源单id
|
||||
*/
|
||||
private String source_form_id;
|
||||
/**
|
||||
* 任务编码
|
||||
*/
|
||||
private String task_code;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
@@ -107,6 +116,10 @@ public class MdPbVehicleMater implements Serializable {
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 流程实例
|
||||
*/
|
||||
private String proc_inst_id;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -77,5 +77,11 @@ public class StIvtIostorinvController {
|
||||
iStIvtIostorinvService.cancelVehicle(dtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/taskOpen")
|
||||
@Log("任务下发")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject form) {
|
||||
iStIvtIostorinvService.taskOpen(form);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.util.Map;
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/stIvtIostorinvout")
|
||||
@RequestMapping("api/stIvtIostorinvOut")
|
||||
public class StIvtIostorinvOutController {
|
||||
|
||||
@Autowired
|
||||
|
||||
@@ -14,6 +14,7 @@ public class StorInvQuery extends BaseQuery<StIvtIostorinv>{
|
||||
private String code;
|
||||
private String status;
|
||||
private String bill_type;
|
||||
private Boolean in_storage;
|
||||
private String product_code;
|
||||
|
||||
}
|
||||
|
||||
@@ -128,7 +128,6 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
vehicleMater.setSource_form_type("st_ivt_iostorinvdtl");
|
||||
vehicleMater.setCreate_name(user);
|
||||
vehicleMater.setId(IdUtil.getStringId());
|
||||
vehicleMaters.add(vehicleMater);
|
||||
MdGruopDick dick = new MdGruopDick();
|
||||
dick.setCode(CodeUtil.getNewCode("md_group_dick"));
|
||||
dick.setId(IdUtil.getStringId());
|
||||
@@ -139,6 +138,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
dick.setSource_form_id(dtl.getId());
|
||||
dick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
||||
gruops.add(dick);
|
||||
vehicleMater.setGroup_id(dick.getId());
|
||||
vehicleMaters.add(vehicleMater);
|
||||
|
||||
}
|
||||
//载具校验
|
||||
Set<String> collect = vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.toSet());
|
||||
@@ -226,19 +228,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
StIvtIostorinv iostorinv = form.toJavaObject(StIvtIostorinv.class);
|
||||
//查询明细
|
||||
List<StIvtIostorinvdtl> dtls = iStIvtIostorinvDtlService.list(new QueryWrapper<StIvtIostorinvdtl>().eq("inv_id", iostorinv.getId()));
|
||||
List<Map> dtlJson = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(dtls)){
|
||||
for (StIvtIostorinvdtl 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,null)
|
||||
.build("st_ivt_iostorinv_out",iostorinv.getId(),iostorinv.getSource_form_type(),iostorinv.getSource_form_id(),form)
|
||||
.build("st_ivt_iostorinvdtl_out",dtlJson)
|
||||
,true);
|
||||
|
||||
BussEventMulticaster.Publish(new FlowStartEvent("st_ivt_iostorinv_"+(iostorinv.getIn_storage()?"in":"out"), null,null)
|
||||
.build("st_ivt_iostorinv",iostorinv.getId(),iostorinv.getSource_form_type(),iostorinv.getSource_form_id(),form)
|
||||
.build("st_ivt_iostorinvdtl",dtls)
|
||||
);
|
||||
|
||||
this.update(new UpdateWrapper<StIvtIostorinv>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
@change="handTaskStatus"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in taskStatusList"
|
||||
v-for="item in statusEnum.FORM_STATUS"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
@@ -244,7 +244,6 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTaskStatusList()
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
@@ -261,15 +260,6 @@ export default {
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
getTaskStatusList() {
|
||||
crudDict.getStatusEnum("FORM_STATUS").then(res => {
|
||||
this.taskStatusList = res
|
||||
})
|
||||
},
|
||||
getStatusName(code) {
|
||||
const status = this.taskStatusList.find(item => item.code === code)
|
||||
return status ? status.name : '-'
|
||||
},
|
||||
doOperate(row, command) {
|
||||
let method_name = ''
|
||||
switch (command) {
|
||||
|
||||
@@ -17,7 +17,7 @@ export function getDtl(proc_inst_id) {
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/flow',
|
||||
url: 'api/bpmnExecution',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
|
||||
<script>
|
||||
import formstruc from '@/views/wms/config_manage/formStruc/formstruc'
|
||||
import crudProductOut from '@/views/wms/stor_manage/in/storinvin'
|
||||
import crudProductIn from '@/views/wms/stor_manage/in/storinvin'
|
||||
import CRUD, { crud, header,form, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
@@ -199,14 +199,14 @@ const defaultForm = {
|
||||
|
||||
export default {
|
||||
name: 'ProductOut',
|
||||
components: { TaskDialog, AddDialog, ViewDialog, formstruc, crudProductOut, crudOperation, rrOperation, udOperation, pagination },
|
||||
components: { TaskDialog, AddDialog, ViewDialog, formstruc, crudProductIn, crudOperation, rrOperation, udOperation, pagination },
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '',
|
||||
optShow: { add: true, reset: true },
|
||||
idField: 'id',
|
||||
url: '/api/stIvtIostorinv',
|
||||
crudMethod: { ...crudProductOut },
|
||||
crudMethod: { ...crudProductIn },
|
||||
query:{
|
||||
in_storage :true
|
||||
},
|
||||
@@ -270,7 +270,7 @@ export default {
|
||||
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
crudProductOut.confirm({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
|
||||
crudProductIn.confirm({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
|
||||
this.crud.notify('单据确认成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
@@ -287,7 +287,7 @@ export default {
|
||||
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
crudProductOut.taskOpen(this.currentRow ).then(res => {
|
||||
crudProductIn.taskOpen(this.currentRow ).then(res => {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
|
||||
@@ -54,38 +54,6 @@ export function inDecision(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getSect(data) {
|
||||
return request({
|
||||
url: '/api/stIvtSectattr/getSect',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function divStruct(data) {
|
||||
return request({
|
||||
url: '/api/stIvtIostorinv/divStruct',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function unDivStruct(data) {
|
||||
return request({
|
||||
url: '/api/stIvtIostorinv/unDivStruct',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function setPoint(data) {
|
||||
return request({
|
||||
url: '/api/stIvtIostorinv/setPoint',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function confirm(data) {
|
||||
return request({
|
||||
url: '/api/stIvtIostorinv/confirm',
|
||||
@@ -101,6 +69,13 @@ export function cancelDecision(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function taskOpen(data) {
|
||||
return request({
|
||||
url: '/api/stIvtIostorinv/taskOpen',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delTask(data) {
|
||||
return request({
|
||||
@@ -135,9 +110,6 @@ export default {
|
||||
vehicleCheck,
|
||||
inDecision,
|
||||
cancelDecision,
|
||||
getSect,
|
||||
divStruct,
|
||||
unDivStruct,
|
||||
setPoint,
|
||||
taskOpen,
|
||||
confirm
|
||||
}
|
||||
|
||||
@@ -123,9 +123,22 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip prop="struct_code" label="分配仓位" />
|
||||
<el-table-column show-overflow-tooltip prop="stor_code" label="仓库" width="190" align="center">
|
||||
<el-table-column show-overflow-tooltip prop="stor_code" label="仓库" width="160" align="center">
|
||||
<template scope="scope">
|
||||
<el-input v-model="tableData[scope.$index].stor_code" class="input-with-select" />
|
||||
<el-select
|
||||
v-model="tableData[scope.$index].stor_code"
|
||||
clearable
|
||||
class="filter-item"
|
||||
placeholder="所属仓库"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tableEnum.st_ivt_bsrealstorattr"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip prop="source_form_type" label="源单类型" width="190" align="center">
|
||||
@@ -180,10 +193,8 @@
|
||||
|
||||
<script>
|
||||
import CRUD, { crud, form } from '@crud/crud'
|
||||
import crudProductIn from '@/views/wms/stor_manage/in/storinvin'
|
||||
import MaterDialog from '@/views/wms/base_manage/material/MaterDialog'
|
||||
import FormDialog from '@/views/wms/pm_manage/form_data/FormDialog'
|
||||
import AddDtl from '@/views/wms/stor_manage/in/AddDtl'
|
||||
import formstruc from '@/views/wms/config_manage/formStruc/formstruc'
|
||||
import measureunit from '@/views/wms/base_manage/measure/measureunit'
|
||||
|
||||
@@ -206,9 +217,10 @@ const defaultForm = {
|
||||
|
||||
export default {
|
||||
name: 'AddDialog',
|
||||
components: { formstruc, MaterDialog,measureunit, FormDialog, AddDtl },
|
||||
components: { formstruc, MaterDialog,measureunit, FormDialog },
|
||||
mixins: [crud(), form(defaultForm)],
|
||||
statusEnums: [ 'FORM_STATUS', 'IOBILL_TYPE_OUT' ],
|
||||
tableEnums: [ 'st_ivt_bsrealstorattr#stor_name#stor_code' ],
|
||||
props: {
|
||||
dialogShow: {
|
||||
type: Boolean,
|
||||
@@ -248,13 +260,13 @@ export default {
|
||||
methods: {
|
||||
open() {
|
||||
this.tableData = [],
|
||||
formstruc.getHeader('st_ivt_iostorinv_out').then(res => {
|
||||
formstruc.getHeader('st_ivt_iostorinv').then(res => {
|
||||
this.cols = res
|
||||
res.forEach(a => {
|
||||
this.form.form_data[a.value,'']
|
||||
})
|
||||
})
|
||||
formstruc.getHeader('st_ivt_iostorinvdtl_out').then(res => {
|
||||
formstruc.getHeader('st_ivt_iostorinvdtl').then(res => {
|
||||
this.dtlCols = res
|
||||
}),
|
||||
measureunit.getSelect().then(res => {
|
||||
|
||||
@@ -207,6 +207,9 @@ export default {
|
||||
idField: 'id',
|
||||
url: '/api/stIvtIostorinvOut',
|
||||
crudMethod: { ...crudProductOut },
|
||||
query:{
|
||||
in_storage :false
|
||||
},
|
||||
props: {
|
||||
size: 10
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user