From 77b4e88f49d5714db0bdfa7d6a9bbb03275a2e5e Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 28 May 2024 09:37:47 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form_struc/service/dao/BmFormStruc.java | 3 - .../task/handler/StructEvent.java | 3 +- .../handler/impl/OutStorageTaskHandler.java | 85 +++++++++++++++++++ .../handler/impl/StackingTaskHandler.java | 15 +--- .../task/handler/impl/TaskStatusHandler.java | 4 +- .../dao/mapper/xml/SchBaseTaskMapper.xml | 3 +- .../service/impl/SchBaseTaskServiceImpl.java | 3 +- .../impl/SubProcessActivityBehavior.java | 21 ++++- .../nodeType/excess/impl/DecisionHandler.java | 14 ++- .../impl/FlowOperationServiceImpl.java | 9 +- .../out/StIvtIostorinvOutController.java | 13 ++- .../out/iostor/IStIvtIostorinvOutService.java | 2 + .../out/iostor/dao/StIvtIostorinvOut.java | 11 ++- .../impl/StIvtIostorinvOutServiceImpl.java | 35 ++++++++ .../listener/FlowEndEventListener.java | 9 ++ .../monitor/listener/StructEventListener.java | 3 +- .../service/dao/StIvtStructivtflow.java | 4 + .../struct/service/dao/StIvtStructattr.java | 9 ++ .../impl/StIvtStructattrServiceImpl.java | 16 ++-- .../wms/md_manage/group_dick/AddDialog.vue | 3 +- .../qd/src/views/wms/stor_manage/in/index.vue | 14 +-- .../views/wms/stor_manage/out/AddDialog.vue | 7 +- .../views/wms/stor_manage/out/TaskDialog.vue | 4 +- .../views/wms/stor_manage/out/ViewDialog.vue | 70 +++++---------- .../src/views/wms/stor_manage/out/index.vue | 41 ++++----- .../views/wms/stor_manage/out/storinvout.js | 8 ++ 26 files changed, 279 insertions(+), 130 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTaskHandler.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java index a2108023..64652ee4 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java @@ -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; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/StructEvent.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/StructEvent.java index 12f823c2..f7be48df 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/StructEvent.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/StructEvent.java @@ -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; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTaskHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTaskHandler.java new file mode 100644 index 00000000..f1b66b8b --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTaskHandler.java @@ -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().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 list = taskService.list(new QueryWrapper().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); + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java index 9e8e521b..25267186 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java @@ -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()方法请求参数不能为空"); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TaskStatusHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TaskStatusHandler.java index 97f58866..e17d9656 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TaskStatusHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TaskStatusHandler.java @@ -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; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml index 62de88de..9c33e16e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml @@ -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 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java index e5429a99..b90cd0d8 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java @@ -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 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) o -> CompletableFuture.runAsync(() -> { ExecutionEntity subEntity = new ExecutionEntity(); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java index 474280f5..65a1baf9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java @@ -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 dispense(List params, StIvtIostorinvdtl iostorinvdtl) { AtomicReference> structCode = new AtomicReference<>(); RedissonUtils.lock(()->{ @@ -89,16 +91,22 @@ public class DecisionHandler extends TypeHandler() // .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(); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java index eaa56ee1..0fe908b5 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java @@ -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() + .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); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java index bb51b88f..ee6b1e69 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java @@ -41,13 +41,16 @@ public class StIvtIostorinvOutController { @Autowired private ISchBaseTaskService iSchBaseTaskService; - - @GetMapping public ResponseEntity getAll(StorInvOutQuery query, PageQuery page) { Page result = iStIvtIostorinvOutService.page(page.build(), query.build()); return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK); } + @PostMapping("delete") + public ResponseEntity delete(@RequestBody List ids) { + iStIvtIostorinvOutService.removeByIds(ids); + return new ResponseEntity<>(HttpStatus.OK); + } @PostMapping public ResponseEntity save(@RequestBody JSONObject form) { iStIvtIostorinvOutService.save(form); @@ -87,5 +90,11 @@ public class StIvtIostorinvOutController { List dis = iSchBaseTaskService.getByVehicle(dtl.getString("vehicle_code")); return new ResponseEntity<>(TableDataInfo.build(dis),HttpStatus.OK); } + + @PostMapping("/taskOpen") + public ResponseEntity taskOpen(@RequestBody JSONObject dtl) { + iStIvtIostorinvOutService.taskOpen(dtl); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/IStIvtIostorinvOutService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/IStIvtIostorinvOutService.java index 9e183429..6cd305d1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/IStIvtIostorinvOutService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/IStIvtIostorinvOutService.java @@ -20,4 +20,6 @@ public interface IStIvtIostorinvOutService extends IService { String dispense(JSONObject form); String canceldispense(JSONObject form); + + void taskOpen(JSONObject form); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvOut.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvOut.java index 76ee7b6a..6b623e36 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvOut.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvOut.java @@ -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; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java index fb65a77c..d27575e0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java @@ -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 dtls = iStIvtIostorinvDtlOutService.list(new QueryWrapper().eq("inv_id", iostorinv.getId())); + List 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() + .set("status",StatusEnum.FORM_STATUS.code("执行中")) + .set("update_time",DateUtil.now()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .eq("id",form.getString("id"))); + } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/FlowEndEventListener.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/FlowEndEventListener.java index bf2ed99c..cce16218 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/FlowEndEventListener.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/FlowEndEventListener.java @@ -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 { @Autowired private IStIvtIostorinvInService iStIvtIostorinvInService; + @Autowired + private IStIvtIostorinvOutService iStIvtIostorinvOutService; @Override protected String doEvent(FlowEndEvent event) { @@ -41,6 +45,11 @@ public class FlowEndEventListener extends AbstraceListener { .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() + .set("status", StatusEnum.FORM_STATUS.code("完成")) + .set("update_time", DateUtil.now()).eq("id",form_id)); + } return ""; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/StructEventListener.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/StructEventListener.java index 280a03ee..f03dfa2e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/StructEventListener.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/monitor/listener/StructEventListener.java @@ -39,7 +39,8 @@ public class StructEventListener extends AbstraceListener { } 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("取消"))){ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/record/service/dao/StIvtStructivtflow.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/record/service/dao/StIvtStructivtflow.java index 53c441ad..fdcce15a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/record/service/dao/StIvtStructivtflow.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/record/service/dao/StIvtStructivtflow.java @@ -38,6 +38,10 @@ public class StIvtStructivtflow implements Serializable { */ private String struct_code; + /** + * 载具编码 + */ + private String vehicle_code; /** * 物料标识 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/StIvtStructattr.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/StIvtStructattr.java index 32bdd602..296edf4f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/StIvtStructattr.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/StIvtStructattr.java @@ -127,6 +127,15 @@ public class StIvtStructattr implements Serializable { * 创建时间 */ private String create_time; + /** + * 修改时间 + */ + private String update_time; + + /** + * 修改人 + */ + private String update_name; /** * 是否临时仓位 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java index c3ef9967..fa4e33e6 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java @@ -65,18 +65,20 @@ public class StIvtStructattrServiceImpl extends ServiceImpl vehicleMaters = vehicleMaterService.list(new QueryWrapper().eq("vehicle_code", vehicle_code)); - this.update(new UpdateWrapper() - .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() + .set("vehicle_code",vehicle_code) + .set("update_time",now) + .set("lock_type", StatusEnum.LOCK.code("无")) + .eq("struct_code",struct_code)); + List 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 @@ -215,7 +215,7 @@ export default { }, mixins: [presenter(), header(), crud()], // 数据字典 - dicts: [ 'FORM_STATUS','IOBILL_TYPE_IN' ], + statusEnums: [ 'FORM_STATUS','IOBILL_TYPE_IN' ], data() { return { cols:[], @@ -280,7 +280,7 @@ export default { }) }, stateFormat(row, column) { - return this.dict.label.IO_BILL_STATUS[row.bill_status] + return this.statusEnum.label.IO_BILL_STATUS[row.bill_status] }, divOpen() { crudProductIn.getIosInvDtl({ 'bill_code': this.currentRow.bill_code }).then(res => { @@ -347,7 +347,7 @@ export default { } }, bill_typeFormat(row, column) { - return this.dict.label.ST_INV_CP_IN_TYPE[row.bill_type] + return this.statusEnum.label.ST_INV_CP_IN_TYPE[row.bill_type] }, querytable() { this.onSelectAll() diff --git a/wms_pro/qd/src/views/wms/stor_manage/out/AddDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/out/AddDialog.vue index 40a0fac4..9312345e 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/out/AddDialog.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/out/AddDialog.vue @@ -232,7 +232,9 @@ export default { storlist: [], billtypelist: [], rules: { - + bill_type: [ + { required: true, message: '单据类型不能为空', trigger: 'blur' } + ], } } }, @@ -276,11 +278,10 @@ export default { this.materShow = true }, [CRUD.HOOK.beforeSubmit]() { - debugger // 提交前校验 if (this.tableData.length === 0) { this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO) - return true + return false } this.form.item = this.tableData }, diff --git a/wms_pro/qd/src/views/wms/stor_manage/out/TaskDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/out/TaskDialog.vue index cbb15750..5736808f 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/out/TaskDialog.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/out/TaskDialog.vue @@ -254,7 +254,7 @@ export default { this.tableData = res }) }) - this.divdis(row) + this.tabledis = [] }, divCancel() { if (!this.currentDtl) { @@ -266,7 +266,7 @@ export default { this.tableData = res }) }) - this.divdis(row) + this.tabledis = [] }, divdis(row){ crudProductout.divDis(row).then(res => { diff --git a/wms_pro/qd/src/views/wms/stor_manage/out/ViewDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/out/ViewDialog.vue index cb08b151..f7141aa9 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/out/ViewDialog.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/out/ViewDialog.vue @@ -13,25 +13,6 @@ - - - - - + - - - - - + + + + + - + + + @@ -168,7 +153,7 @@ export default { name: 'ViewDialog', components: { formstruc }, mixins: [crud()], - dicts: [ 'FORM_STATUS','IOBILL_TYPE_OUT' ], + statusEnums: [ 'FORM_STATUS','IOBILL_TYPE_OUT' ], props: { dialogShow: { type: Boolean, @@ -221,15 +206,11 @@ export default { close() { this.dialogVisible = false }, - stateFormat(row, column) { - return this.dict.label.FORM_STATUS[row.bill_status] - }, - handleDtlCurrentChange(current) { if (current !== null) { this.tabledis = [] this.currentdtl = current - this.queryTableDdis() + this.divdis(this.currentdtl) } else { this.tabledis = [] this.currentdtl = {} @@ -242,28 +223,15 @@ export default { } } }, - handleDisCurrentChange(current) { - this.currentDis = current - }, queryTableDtl(id) { crudProductIn.getIosInvDtl(id).then(res => { this.tableDtl = res }) }, - queryTableDdis() { - if (this.currentdtl !== null) { - crudProductIn.getVehicleTask({ 'vehicle_code': this.currentdtl.vehicle_code }).then(res => { - this.tabledis = res - }).catch(() => { - this.tabledis = [] - }) - } - }, - formatStatus(row) { - return this.dict.label.FORM_STATUS[row.task_status] - }, - formatBaseType(row) { - return this.dict.label.PCS_SAL_TYPE[row.base_bill_type] + divdis(row){ + crudProductIn.divDis(row).then(res => { + this.tabledis = res.content + }) } } } diff --git a/wms_pro/qd/src/views/wms/stor_manage/out/index.vue b/wms_pro/qd/src/views/wms/stor_manage/out/index.vue index 29591013..dc5aba5a 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/out/index.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/out/index.vue @@ -154,8 +154,6 @@ --> @@ -282,16 +280,22 @@ export default { }, taskOpen() { - crudProductOut.getIosInvDtl({ 'bill_code': this.currentRow.bill_code }).then(res => { - this.taskOpenParam = res + if (!this.currentRow) { + this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO) + return + } + crudProductOut.taskOpen(this.currentRow ).then(res => { + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.crud.toQuery() }) - this.taskShow = true }, - fun(val) { - return Number(val).toFixed(3) - }, - canUd(row) { - return row.bill_status !== '10' + handleCurrentChange(currentRow) { + if (currentRow === null) { + this.dis_flag = true + this.confirm_flag = true + this.task_flag = true + this.currentRow = {} + } }, handleSelectionChange(val, row) { if (val.length > 1) { @@ -304,10 +308,6 @@ export default { this.handleCurrentChange(null) } }, - onSelectAll() { - this.$refs.table.clearSelection() - this.handleCurrentChange(null) - }, buttonChange(currentRow) { if (currentRow !== null) { this.currentRow = currentRow @@ -328,16 +328,9 @@ export default { } } }, - handleCurrentChange(currentRow) { - if (currentRow === null) { - this.dis_flag = true - this.confirm_flag = true - this.task_flag = true - this.currentRow = {} - } - }, - bill_typeFormat(row, column) { - return this.dict.label.ST_outV_CP_out_TYPE[row.bill_type] + onSelectAll() { + this.$refs.table.clearSelection() + this.handleCurrentChange(null) }, querytable() { this.onSelectAll() diff --git a/wms_pro/qd/src/views/wms/stor_manage/out/storinvout.js b/wms_pro/qd/src/views/wms/stor_manage/out/storinvout.js index 9f47a852..d4a8eb42 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/out/storinvout.js +++ b/wms_pro/qd/src/views/wms/stor_manage/out/storinvout.js @@ -59,6 +59,13 @@ export function divDis(data) { data }) } +export function taskOpen(data) { + return request({ + url: '/api/stIvtIostorinvOut/taskOpen', + method: 'post', + data + }) +} export default { add, edit, @@ -68,4 +75,5 @@ export default { outDecision, cancelDecision, divDis, + taskOpen, }