diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java index 860d8465..5ac74b96 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java @@ -1,5 +1,9 @@ package org.nl.common.domain.constant; +import org.nl.common.utils.MapOf; + +import java.util.Map; + /* * @author ZZQ * @Date 2022/12/26 9:29 上午 @@ -8,4 +12,5 @@ public class DictConstantPool { public static final String DICT_SYS_CODE = "system_type"; public static final String DICT_SYS_NAME = "所属系统"; + public static final Map PRODUCT_OUT_POINT = MapOf.of("A1","1101","A2","2114","A3","3204"); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/ApiError.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/ApiError.java index 1c6eb4b6..52b4c43d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/ApiError.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/ApiError.java @@ -15,7 +15,6 @@ */ package org.nl.common.domain.exception.handler; -import cn.hutool.http.HttpStatus; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -30,10 +29,10 @@ import java.time.LocalDateTime; @Data class ApiError { - private String status = "400"; + private String code = "400"; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime timestamp; - private String message; + private String msg; private ApiError() { timestamp = LocalDateTime.now(); @@ -41,14 +40,14 @@ class ApiError { public static ApiError error(String message){ ApiError apiError = new ApiError(); - apiError.setMessage(message); + apiError.setMsg(message); return apiError; } public static ApiError error(Integer status, String message){ ApiError apiError = new ApiError(); - apiError.setStatus(String.valueOf(status)); - apiError.setMessage(message); + apiError.setCode(String.valueOf(status)); + apiError.setMsg(message); return apiError; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/GlobalExceptionHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/GlobalExceptionHandler.java index a42fe876..96e5eb53 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/GlobalExceptionHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/exception/handler/GlobalExceptionHandler.java @@ -85,6 +85,6 @@ public class GlobalExceptionHandler { * 统一返回 */ private ResponseEntity buildResponseEntity(ApiError apiError) { - return new ResponseEntity<>(apiError, HttpStatus.valueOf(Integer.valueOf(apiError.getStatus()))); + return new ResponseEntity<>(apiError, HttpStatus.valueOf(Integer.valueOf(apiError.getCode()))); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java index c27c61bf..acfb7aa5 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java @@ -31,13 +31,15 @@ public enum StatusEnum { /** * 出入库单据类型 */ - IOBILL_TYPE_IN(ForkMap.of("生产入库", "10","inStorageTask", "调拨入库", "11","inStorageTask", "退货入库", "12","inStorageTask","拣选回库", "13","inStorageTask","托盘入库", "30","inStorageTask")), - IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask", "拣选出库", "23","conveyorOutStorageTask","托盘出库", "40","outStorageTask")), + IOBILL_TYPE_IN(ForkMap.of("生产入库", "10","inStorageTask", "调拨入库", "11","inStorageTask", "退货入库", "12","inStorageTask","拣选回库", "13","inStorageTask","盘点入库", "14","inStorageTask","托盘入库", "30","inStorageTask")), + IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask","拣选出库", "23","conveyorOutStorageTask","盘点出库", "24","outStorageTask", "托盘出库", "40","outStorageTask")), + IOBILL_TYPE_MOVE(ForkMap.of("移库", "50","moveStorageTask")), + profit_loss(ForkMap.of("盘亏", "0",null,"盘盈", "1",null,"实盘", "2",null)), /** * 任务类型 */ - TASK_TYPE(ForkMap.pushAll(IOBILL_TYPE_IN.code,IOBILL_TYPE_OUT.code)), + TASK_TYPE(ForkMap.pushAll(IOBILL_TYPE_IN.code,IOBILL_TYPE_OUT.code,IOBILL_TYPE_MOVE.code)), ACS_TYPE(ForkMap.of("立库", "10",null ,"海柔", "20",null @@ -47,7 +49,7 @@ public enum StatusEnum { /** * 点位锁类型 */ - LOCK(ForkMap.of("无","00",null,"入","10",null,"出","20",null)), + LOCK(ForkMap.of("无锁","00",null,"入库锁","10",null,"入库盘点锁","16",null,"出库锁","20",null,"盘点出库锁","26",null,"移库锁","50",null)), STRATEGY_TYPE(ForkMap.of("入库", "1",null, "出库", "2", null,"出入库", "3",null)), ; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java index 0cff1667..828383a9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java @@ -105,35 +105,10 @@ public class SpelUtil { } public static void main(String[] args) { - TypeReference> typeRef = new TypeReference>() {}; - ParameterizedType type = (ParameterizedType) typeRef.getType(); - Type type1 = type.getActualTypeArguments()[0]; - Class aClass = (Class) type1; - String a="{\n" + - "\t\"code\": \"REC10022\",\n" + - "\t\"t\": {\n" + - "\t\t\"form_data\": {\n" + - "\t\t\t\"stor_code\": \"\",\n" + - "\t\t\t\"struct_code\": \"\",\n" + - "\t\t\t\"order\": \"\"\n" + - "\t\t},\n" + - "\t\t\"stor_code\": \"FStockId\",\n" + - "\t\t\"pcsn\": \"werwe\",\n" + - "\t\t\"material_id\": \"FMaterialId\",\n" + - "\t\t\"biz_id\": \"1793594766324273152\",\n" + - "\t\t\"order\": \"FMoBillNo\"\n" + - "\t},\n" + - "\t\"create_time\": \"2024-05-23 18:48:31\",\n" + - "\t\"form_id\": \"\",\n" + - "\t\"id\": \"1793594856053018624\",\n" + - "\t\"form_type\": \"PRD_FeedMtrl\",\n" + - "\t\"source_form_id\": \"1793594766324273152\",\n" + - "\t\"source_form_type\": \"st_ivt_iostorinvdtl_in\",\n" + - "\t\"status\": \"10\",\n" + - "\t\"create_name\": \"管理员\"\n" + - "}"; - Object o = JSONObject.parseObject(a, aClass); - System.out.println(o.toString()); + String a= "{\"item\":[{\"t\":{\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"task_code\":\"28510\",\"material_spec\":\"45CCL1 1/8\",\"form_data\":{},\"group_id\":\"1803264719126138880\",\"qty\":120,\"proc_inst_id\":\"1803320414961799168\",\"is_lock\":false,\"pcsn\":\"11\",\"material_id\":\"FMaterialId\",\"id\":\"1803264718849314816\",\"has_child\":false,\"frozen_qty\":0,\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"unit_id\":\"16\",\"material_name\":\"A345度等径承插口弯头45CCL1 1/8USNA0131010\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"create_name\":\"管理员\",\"material_code\":\"24001097S\"},\"form_id\":\"1803264718849314816\",\"form_type\":\"md_pb_vehicleMater\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}],\"t\":{\"code\":\"ZP20240619023\",\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"update_name\":\"管理员\",\"update_time\":\"2024-06-19 11:15:31\",\"form_data\":{},\"id\":\"1803264719126138880\",\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"struct_code\":\"L03-03-01\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"status\":\"10\",\"create_name\":\"管理员\"},\"form_id\":\"1803264719126138880\",\"form_type\":\"md_group_dick\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}"; + JSONObject jsonObject = JSONObject.parseObject(a); + String parse = SpelUtil.parse(jsonObject.getJSONObject("t"),"#M['stor_code'] == 'FStockId'", String.class); + System.out.println(parse); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java index 3fc62275..d19fe2c3 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java @@ -1,13 +1,19 @@ package org.nl.config.mybatis; import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.github.pagehelper.PageInterceptor; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlCommandType; import org.apache.ibatis.plugin.Interceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -16,6 +22,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.annotation.PostConstruct; import javax.sql.DataSource; +import java.sql.SQLException; +import java.util.Map; @EnableTransactionManagement @Configuration diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/class_standard/controller/BmClassStandardController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/class_standard/controller/BmClassStandardController.java index ebd62f50..552154f9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/class_standard/controller/BmClassStandardController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/class_standard/controller/BmClassStandardController.java @@ -45,7 +45,7 @@ public class BmClassStandardController { @PostMapping public ResponseEntity create(@Validated @RequestBody JSONObject form) { classStandardService.create(form); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/customer/controller/BmCustomerController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/customer/controller/BmCustomerController.java index b8d9c99b..c1844331 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/customer/controller/BmCustomerController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/customer/controller/BmCustomerController.java @@ -49,7 +49,7 @@ public class BmCustomerController { @Log("新增客户基础表") public ResponseEntity create(@Validated @RequestBody JSONObject dto) { customerService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/controller/BmMaterialController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/controller/BmMaterialController.java index 864a3898..b1a20e08 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/controller/BmMaterialController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/controller/BmMaterialController.java @@ -41,7 +41,7 @@ public class BmMaterialController { @PostMapping public ResponseEntity create(@Validated @RequestBody MdMeMaterialbase dto) { materialService.save(dto); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/service/dao/MdMeMaterialbase.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/service/dao/MdMeMaterialbase.java index 0483fea4..ed59e8eb 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/service/dao/MdMeMaterialbase.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/material/service/dao/MdMeMaterialbase.java @@ -109,16 +109,26 @@ public class MdMeMaterialbase implements Serializable { */ private String weight_unit_id; - /** - * 物料毛重 - */ - private BigDecimal gross_weight; /** * 物料净重 */ private BigDecimal net_weight; + + /** + * 最近称重重量 + */ + private BigDecimal nearby_weight; + /** + * 单重 + */ + private BigDecimal single_weight; + + /** + * 物料毛重 + */ + private BigDecimal gross_weight; /** * 体积单位 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/supplier/controller/BmSupplierController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/supplier/controller/BmSupplierController.java index 10f39d0a..f1ab452a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/supplier/controller/BmSupplierController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/supplier/controller/BmSupplierController.java @@ -40,7 +40,7 @@ public class BmSupplierController { @PostMapping public ResponseEntity create(@Validated @RequestBody BmSupplier dto) { supplierService.save(dto); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/controller/BmVehicleInfoController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/controller/BmVehicleInfoController.java index 51b546f8..98282914 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/controller/BmVehicleInfoController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/controller/BmVehicleInfoController.java @@ -44,7 +44,7 @@ public class BmVehicleInfoController { @PostMapping @Log("新增载具") public ResponseEntity create(@RequestBody JSONObject map) { - return new ResponseEntity<>(vehicleInfoService.create(map), HttpStatus.CREATED); + return new ResponseEntity<>(vehicleInfoService.create(map), HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/EndDecisionChainer.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/EndDecisionChainer.java index ac242e6a..503a66dc 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/EndDecisionChainer.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/EndDecisionChainer.java @@ -53,7 +53,7 @@ public class EndDecisionChainer extends DecisionerChain { StIvtStructattr structattr = (StIvtStructattr)transfers.get(0); iStIvtStructattrService.update(new UpdateWrapper() .set("vehicle_code", startParam.getString("vehicle_code")) - .set("lock_type", StatusEnum.LOCK.code("入")) + .set("lock_type", StatusEnum.LOCK.code("入库锁")) .eq("struct_code", structattr.getStruct_code())); System.out.println("货位绑定成功"+structattr.getStruct_code()); structs.add(structattr.getStruct_code()); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/StartDecisionChainer.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/StartDecisionChainer.java index 42f96468..83ccbfb6 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/StartDecisionChainer.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/chainer/impl/StartDecisionChainer.java @@ -51,7 +51,7 @@ public class StartDecisionChainer extends DecisionerChain { if (in_storage){ QueryWrapper query = new QueryWrapper() .eq("is_used", true) - .eq("lock_type", StatusEnum.LOCK.code("无")) + .eq("lock_type", StatusEnum.LOCK.code("无锁")) .eq("stor_code", startParam.getString("stor_code")); query.isNull("vehicle_code"); list = iStIvtStructattrService.list(query); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/point/controller/SchBasePointController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/point/controller/SchBasePointController.java index 5c6e2a75..efd0e2aa 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/point/controller/SchBasePointController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/point/controller/SchBasePointController.java @@ -45,7 +45,7 @@ public class SchBasePointController { entity.setCreate_name(SecurityUtils.getCurrentNickName()); entity.setCreate_time(DateUtil.now()); pointService.save(entity); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/region/controller/SchBaseRegionController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/region/controller/SchBaseRegionController.java index e46bcded..8c3d9e27 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/region/controller/SchBaseRegionController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/region/controller/SchBaseRegionController.java @@ -43,7 +43,7 @@ public class SchBaseRegionController { entity.setCreate_name(SecurityUtils.getCurrentNickName()); entity.setCreate_time(DateUtil.now()); regionService.save(entity); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java index 0fff2bb3..1a08d232 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java @@ -52,13 +52,13 @@ public class SchBaseTaskController { @PostMapping public ResponseEntity create(@Validated @RequestBody SchBaseTask entity){ schBaseTaskService.create(entity); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping public ResponseEntity update(@Validated @RequestBody SchBaseTask entity){ schBaseTaskService.update(entity); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + return new ResponseEntity<>(HttpStatus.OK); } @@ -71,7 +71,7 @@ public class SchBaseTaskController { @PutMapping("/operation") public ResponseEntity update(@RequestBody JSONObject map) { schBaseTaskService.operation(map); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/AbstractTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/AbstractTask.java index ea1eb806..f753825f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/AbstractTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/AbstractTask.java @@ -1,9 +1,13 @@ package org.nl.wms.dispatch_manage.task.handler; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.SpringContextHolder; +import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; @@ -23,8 +27,18 @@ public abstract class AbstractTask { public abstract JSONObject createTask(JSONObject data); + public void updateTask(JSONObject data){ + ISchBaseTaskService taskService = SpringContextHolder.getBean(ISchBaseTaskService.class); + String status = data.getString("status"); + SchBaseTask task = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + if (!task.getStatus().equals(status) && !task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){ + taskService.update(new UpdateWrapper().set("status",status).eq("task_code",data.getString("task_code"))); + } + } + public abstract void updateStatus(JSONObject data); + public abstract void finish(JSONObject data); public abstract void cancel(JSONObject 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 67c796ac..af6810ea 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 @@ -11,22 +11,17 @@ import org.nl.common.publish.event.PublishEvent; @Data @Builder public class StructEvent extends PublishEvent { - /** - * @see org.nl.common.enums.StatusEnum.TASK_TYPE_IN + * 任务类型 */ private String task_type; - + /** + * 载具编码 + */ private String vehicle_code; - - private String status; - + //变动起点 private String point_code1; + //变动终点 private String point_code2; - private String source_form_id; - - private String source_form_type; - - } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ConveyorOutStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ConveyorOutStorageTask.java index 883e1f0d..d71ff08f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ConveyorOutStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ConveyorOutStorageTask.java @@ -6,12 +6,15 @@ 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.constant.DictConstantPool; 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.SecurityUtils; import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.handler.StructEvent; 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; @@ -49,9 +52,18 @@ public class ConveyorOutStorageTask extends AbstractTask { @Transactional public JSONObject createTask(JSONObject from) { String vehicle_code = from.getString("vehicle_code"); - String outbound = from.getJSONObject("form_data").getString("outbound"); + String outbound = from.getJSONObject("form_data").getString("outbound");//出库口根据单据车间来确认 String start_point = from.getString("start_point"); String task_type = from.getString("task_type"); + String product_area = from.getString("product_area"); + if (StringUtils.isNotEmpty(product_area)){ + String configTarget = DictConstantPool.PRODUCT_OUT_POINT.get(product_area); + if (StringUtils.isEmpty(configTarget)){ + throw new BadRequestException("创建任务失败:出库点车间点位对应关系配置异常"); + } + outbound = configTarget; + } + System.out.println("输送线出库:拣选分配点/车间"+outbound+"_"+product_area); if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(start_point)||StringUtils.isEmpty(outbound)){ throw new BadRequestException("创建任务失败:方法请求参数不能为空"); } @@ -82,6 +94,20 @@ public class ConveyorOutStorageTask extends AbstractTask { @Override public void updateStatus(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); + } + + @Override + public void finish(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/GroupDickInStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/GroupDickInStorageTask.java index a0db4ce7..c43d5556 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/GroupDickInStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/GroupDickInStorageTask.java @@ -101,6 +101,11 @@ public class GroupDickInStorageTask extends AbstractTask { } + @Override + public void finish(JSONObject data) { + + } + @Override public void cancel(JSONObject data) { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/InStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/InStorageTask.java index 8d3fa287..820dcf62 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/InStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/InStorageTask.java @@ -5,13 +5,16 @@ 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 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.SecurityUtils; import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.handler.StructEvent; 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; @@ -76,12 +79,26 @@ public class InStorageTask extends AbstractTask { } @Override - public void updateStatus(JSONObject data) { + @Transactional + public void finish(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + //跟新库存 + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); + } + @Override + public void updateStatus(JSONObject data) { + this.updateTask(data); } @Override public void cancel(JSONObject data) { - + this.updateTask(data); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTask.java index b10d0b8e..5a1fb29b 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/OutStorageTask.java @@ -6,12 +6,15 @@ 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.constant.DictConstantPool; 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.SecurityUtils; import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.handler.StructEvent; 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; @@ -52,7 +55,15 @@ public class OutStorageTask extends AbstractTask { public JSONObject createTask(JSONObject from) { String vehicle_code = from.getString("vehicle_code"); String target_point = from.getString("target_point"); - + //通过全局变量获取目标位置 + String product_area = from.getString("product_area"); + if (StringUtils.isNotEmpty(product_area)){ + String configTarget = DictConstantPool.PRODUCT_OUT_POINT.get(product_area); + if (StringUtils.isEmpty(configTarget)){ + throw new BadRequestException("创建任务失败:出库点车间点位对应关系配置异常"); + } + target_point = configTarget; + } if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){ throw new BadRequestException("创建任务失败:方法请求参数不能为空"); } @@ -88,12 +99,32 @@ public class OutStorageTask extends AbstractTask { } @Override + @Transactional public void updateStatus(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); + } + @Override + public void finish(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); } @Override public void cancel(JSONObject data) { - + this.updateTask(data); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PalletInStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PalletInStorageTask.java index 7b8e5b5c..a86ab06f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PalletInStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PalletInStorageTask.java @@ -11,6 +11,9 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.publish.BussEventMulticaster; import org.nl.common.utils.MapOf; import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.handler.StructEvent; +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.service.execution.IActRuExecutionService; import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution; import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent; @@ -44,6 +47,8 @@ public class PalletInStorageTask extends AbstractTask { private IMdPbVehicleMaterService iMdPbVehicleMaterService; @Autowired private IActRuExecutionService iActRuExecutionService; + @Autowired + private ISchBaseTaskService iSchBaseTaskService; @Override public JSONObject createTask(JSONObject data) { @@ -77,6 +82,11 @@ public class PalletInStorageTask extends AbstractTask { } + @Override + public void finish(JSONObject data) { + + } + @Override public void cancel(JSONObject data) { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PickStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PickStorageTask.java index 963c0287..a1d6af03 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PickStorageTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/PickStorageTask.java @@ -86,6 +86,11 @@ public class PickStorageTask extends AbstractTask { } + @Override + public void finish(JSONObject data) { + + } + @Override public void cancel(JSONObject data) { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/moveStorageTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/moveStorageTask.java new file mode 100644 index 00000000..f7872007 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/moveStorageTask.java @@ -0,0 +1,125 @@ +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 com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.domain.constant.DictConstantPool; +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.SecurityUtils; +import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.handler.StructEvent; +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.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 moveStorageTask extends AbstractTask { + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISysParamService iSysParamService; + + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + @Autowired + private IMdPbVehicleMaterService iMdPbVehicleMaterService; + + @Override + @Transactional + public JSONObject createTask(JSONObject from) { + String vehicle_code = from.getString("vehicle_code"); + JSONObject form_data = from.getJSONObject("form_data"); + String start_struct_code = form_data.getString("start_struct_code"); + String end_struct_code = form_data.getString("end_struct_code"); + + List list = taskService.list(new QueryWrapper().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(","))); + } + StIvtStructattr source = iStIvtStructattrService.getOne(new QueryWrapper().eq("vehicle_code", vehicle_code)); + if (!source.getStruct_code().equals(start_struct_code)){ + throw new BadRequestException("载具库位变动:当前货位"+source.getStruct_code()+",移库前货位"+start_struct_code); + } + StIvtStructattr target = iStIvtStructattrService.getOne(new QueryWrapper().eq("struct_code", end_struct_code)); + if (StringUtils.isNotEmpty(target.getVehicle_code())){ + throw new BadRequestException("目标货位存在载具:"+target.getVehicle_code()); + } + SchBaseTask task = new SchBaseTask(); + task.setId(IdUtil.getStringId()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setStatus(StatusEnum.FORM_STATUS.code("生成")); + task.setHandle_class(this.getClass().getName()); + task.setAcs_type(StatusEnum.ACS_TYPE.code("立库")); + task.setCreate_time(DateUtil.now()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setTask_type(from.getString("task_type")); + task.setVehicle_code(vehicle_code); + task.setPoint_code1(source.getStruct_code()); + task.setPoint_code2(end_struct_code); + taskService.save(task); + iMdPbVehicleMaterService.update(new LambdaUpdateWrapper() + .set(MdPbVehicleMater::getTask_code,task.getTask_code()) + .eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())); + //TODO:是否下发 + Boolean isSend = from.getBoolean("is_send"); + if (isSend){ + //参数封装,调acs接口 + } + return (JSONObject)JSON.toJSON(task); + } + + @Override + @Transactional + public void updateStatus(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); + } + + @Override + public void finish(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + BussEventMulticaster.Publish(StructEvent.builder() + .task_type(schBaseTask.getTask_type()) + .vehicle_code(schBaseTask.getVehicle_code()) + .point_code1(schBaseTask.getPoint_code1()) + .point_code2(schBaseTask.getPoint_code2()) + .build()); + } + + @Override + public void cancel(JSONObject data) { + this.updateTask(data); + } +} 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 8545b9eb..bbf124cb 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 @@ -13,14 +13,19 @@ 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.publish.BussEventMulticaster; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.ListOf; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper; import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery; +import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent; +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; @@ -39,8 +44,7 @@ import java.util.stream.Collectors; public class SchBaseTaskServiceImpl extends ServiceImpl implements ISchBaseTaskService { @Autowired - private SchBaseTaskMapper schBaseTaskMapper; - + IMdPbVehicleMaterService iMdPbVehicleMaterService; @Override public IPage queryAll(SchBaseTaskQuery whereJson, PageQuery page) { @@ -53,7 +57,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl pages = new Page<>(page.getPage() + 1, page.getSize()); - pages = schBaseTaskMapper.selectPageLeftJoin(pages, whereJson, collect); + pages = this.baseMapper.selectPageLeftJoin(pages, whereJson, collect); return pages; } @@ -70,20 +74,19 @@ public class SchBaseTaskServiceImpl extends ServiceImpl ids) { - // 真删除 - schBaseTaskMapper.deleteBatchIds(ids); + this.removeByIds(ids); } @Override @@ -98,15 +101,27 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_code", task_code)); + if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){ + throw new BadRequestException("当前任务已完成"); + } this.update(new UpdateWrapper() - .set("status",taskStatus) - .eq("task_code",param.getString("task_code"))); + .set("status",param.getString("method_name")) + .eq("task_code", task_code)); + if (param.getString("method_name").equals(StatusEnum.FORM_STATUS.code("完成"))){ + MdPbVehicleMater vehicleMater = iMdPbVehicleMaterService.getOne(new QueryWrapper() + .eq("vehicle_code", task.getVehicle_code())); + if (!StringUtils.isEmpty(vehicleMater.getProc_inst_id())){ + FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMater.getProc_inst_id(), null, null); + BussEventMulticaster.Publish(continueEvent); + } + } } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/early_deferral/AlmEarlyDeferralController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/early_deferral/AlmEarlyDeferralController.java index 802ab500..1249a23c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/early_deferral/AlmEarlyDeferralController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/early_deferral/AlmEarlyDeferralController.java @@ -84,7 +84,7 @@ public class AlmEarlyDeferralController { almEarlyDeferralDetail.setMaterial_id(material_id); almEarlyDeferralDetailService.save(almEarlyDeferralDetail); } - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @DeleteMapping("/delete") @@ -102,7 +102,7 @@ public class AlmEarlyDeferralController { almEarlyDeferral.setId(IdUtil.getStringId()); almEarlyDeferral.setCreate_time(DateUtil.now()); almEarlyDeferralService.save(almEarlyDeferral); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/update") @@ -110,7 +110,7 @@ public class AlmEarlyDeferralController { AlmEarlyDeferral almEarlyDeferral = dto.toJavaObject(AlmEarlyDeferral.class); almEarlyDeferral.setCreate_time(DateUtil.now()); almEarlyDeferralService.updateById(almEarlyDeferral); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/inv_early/AlmEarlyInvController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/inv_early/AlmEarlyInvController.java index c1170d57..db0f9940 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/inv_early/AlmEarlyInvController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/inv_early/AlmEarlyInvController.java @@ -95,7 +95,7 @@ public class AlmEarlyInvController { inv.setId(IdUtil.getStringId()); inv.setCreate_time(DateUtil.now()); iAlmEarlyInvService.save(inv); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/update") @@ -103,7 +103,7 @@ public class AlmEarlyInvController { AlmEarlyInv inv = dto.toJavaObject(AlmEarlyInv.class); inv.setCreate_time(DateUtil.now()); iAlmEarlyInvService.updateById(inv); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/saveDtl") @@ -121,7 +121,7 @@ public class AlmEarlyInvController { almEarlyDtl.setMaterial_id(material_id); iAlmEarlyDtlService.save(almEarlyDtl); } - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @DeleteMapping("/delete") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/model/ActDeModelController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/model/ActDeModelController.java index e52a994f..6949a113 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/model/ActDeModelController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/model/ActDeModelController.java @@ -72,7 +72,6 @@ public class ActDeModelController { actDeModel.setCreate_id(SecurityUtils.getCurrentUserId()); actDeModel.setCreate_time(DateUtil.now()); actDeModel.setId(IdUtil.getStringId()); - actDeModel.setModel_key(IdUtil.getStringId()); if (!StringUtils.isEmpty(actDeModel.getModel_editor_json())){ try { JSONObject modelJson = JSONObject.parseObject(actDeModel.getModel_editor_json()); @@ -106,10 +105,11 @@ public class ActDeModelController { @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { - if (ids.length > 0) { - modelService.removeByIds(Arrays.asList(ids)); - } - return new ResponseEntity<>(HttpStatus.OK); + throw new BadRequestException("模型配置无法直接删除"); +// if (ids.length > 0) { +// modelService.removeByIds(Arrays.asList(ids)); +// } +// return new ResponseEntity<>(HttpStatus.OK); } @GetMapping(value = "/select/{modelId}", produces = "application/json") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java index 7f7a7988..27c88e6e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java @@ -83,7 +83,7 @@ public abstract class FlowNodeActivityBehavior { .eq("proc_inst_id", proc_inst_id) .set("status", StatusEnum.FLOW_STATUS.code("暂停")) .set("remark","节点:"+entity.getActivityName()+":异常:"+ex.getMessage())); - throw new BadRequestException(ex.getMessage()); +// throw new BadRequestException(ex.getMessage()); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/ClassHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/ClassHandler.java index adc4e103..6e7d9ca2 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/ClassHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/ClassHandler.java @@ -39,8 +39,8 @@ public class ClassHandler extends TypeHandler().eq("vehicle_code", vehicle_code)); + if (count>0){ + throw new BadRequestException("入库失败:当前载具信息已经存在"); + } MdPbVehicleMater vehicleMater = new MdPbVehicleMater(); - vehicleMater.setGroup_id(IdUtil.getStringId()); vehicleMater.setId(IdUtil.getStringId()); vehicleMater.setCreate_time(DateUtil.now()); vehicleMater.setCreate_name(SecurityUtils.getCurrentNickName()); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java index 8c6e38f5..566b654a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java @@ -1,23 +1,19 @@ package org.nl.wms.pm_manage.form_data.controller; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.TableDataInfo; import org.nl.common.domain.entity.PageQuery; -import org.nl.common.domain.exception.BadRequestException; -import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; -import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.Arrays; -import java.util.List; /** *

@@ -32,18 +28,20 @@ import java.util.List; public class PmFormDataController { @Autowired - private IPmFormDataService formDataService; + private IPmFormDataService iPmFormDataService; @GetMapping() public ResponseEntity queryAll(FormDataQuery query, PageQuery page) { - return new ResponseEntity<>(TableDataInfo.build(formDataService.queryTree(query,page)), HttpStatus.CREATED); + return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK); } @DeleteMapping + @Transactional public ResponseEntity delete(@RequestBody Long[] ids) { if (ids.length > 0) { - formDataService.removeByIds(Arrays.asList(ids)); + iPmFormDataService.removeByIds(Arrays.asList(ids)); + iPmFormDataService.remove(new QueryWrapper().in("parent_id",ids)); } return new ResponseEntity<>(HttpStatus.OK); } @@ -52,15 +50,15 @@ public class PmFormDataController { public ResponseEntity getSonDtlFormData(@PathVariable String id){ //参数判读,参数解析,调用参数入库 //Page page = iBmFormStrucService.page(pageQuery.build(), query.build()); - return new ResponseEntity<>(formDataService.getSonDtlFormData(id),HttpStatus.OK); + return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK); } @GetMapping("/sync/{type}") public ResponseEntity sync(@RequestParam String type, String formDtl) { //参数判读,参数解析,调用参数入库 - formDataService.syncFormData("type", formDtl); - return new ResponseEntity<>(HttpStatus.CREATED); + iPmFormDataService.syncFormData("type", formDtl); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java index 42ceb3f5..89198757 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java @@ -38,6 +38,6 @@ public interface IPmFormDataService extends IService { void dynamicSql(String sql); - List getByParentId(String parent_id); + List getByParentId(String...parent_id); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java index 12a5cc31..8127c86a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java @@ -67,15 +67,6 @@ public class PmFormData implements Serializable { */ private String status = StatusEnum.FORM_STATUS.code("生成"); - /** - * 创建id - */ - private String create_time; - - /** - * 创建id - */ - private String create_name; /** * 物料id @@ -119,4 +110,31 @@ public class PmFormData implements Serializable { + /** + * 创建id + */ + private String create_time; + + /** + * 创建id + */ + private String create_name; + + /** + * 创建id + */ + private String update_time; + + /** + * 创建id + */ + private String update_name; + + /** + * 备注说明 + */ + private String remark; + + + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml index b1f2f012..ffee32ef 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml @@ -31,11 +31,16 @@ + + + + + @@ -67,7 +72,8 @@ pm_form_data.*, md_me_materialbase.material_code, md_me_materialbase.material_name, - md_me_materialbase.material_spec + md_me_materialbase.material_spec, + md_me_materialbase.single_weight FROM pm_form_data left join md_me_materialbase on pm_form_data.material_id = md_me_materialbase.material_id @@ -92,7 +98,8 @@ pm_form_data.*, md_me_materialbase.material_code, md_me_materialbase.material_name, - md_me_materialbase.material_spec + md_me_materialbase.material_spec, + md_me_materialbase.single_weight from pm_form_data left join md_me_materialbase on pm_form_data.material_id = md_me_materialbase.material_id where parent_id = #{id} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java index 7bd22842..62448356 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java @@ -63,6 +63,10 @@ public class PmFormDataDto implements Serializable { * 业务单据状态 */ private String status; + /** + * 业务单据状态 + */ + private String remark; /** * 创建id @@ -90,6 +94,10 @@ public class PmFormDataDto implements Serializable { * 物料spec */ private String material_spec; + /** + * 物料单重 + */ + private String single_weight; /** * 数量 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java index 664164fb..6d3564ca 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java @@ -224,9 +224,10 @@ public class PmFormDataServiceImpl extends ServiceImpl getByParentId(String parent_id) { + public List getByParentId(String[] parent_id) { Assert.notNull(parent_id,"请求参数不能为空"); - return this.list(new QueryWrapper().eq("parent_id",parent_id)); + QueryWrapper query = new QueryWrapper().in("parent_id", parent_id); + return this.list(query); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/controller/CheckController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/controller/CheckController.java new file mode 100644 index 00000000..7eb78f3c --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/controller/CheckController.java @@ -0,0 +1,97 @@ +package org.nl.wms.stor_manage.checkStorage.controller; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.entity.PageQuery; +import org.nl.common.enums.StatusEnum; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; +import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; +import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; +import org.nl.wms.stor_manage.checkStorage.service.CheckStorageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.function.Predicate; + +/** + *

+ * 表单信息表 前端控制器 + *

+ * + * @author generator + * @since 2024-03-25 + */ +@RestController +@RequestMapping("/api/check") +public class CheckController { + + @Autowired + private IPmFormDataService iPmFormDataService; + @Autowired + private CheckStorageService checkStorageService; + + + @GetMapping() + public ResponseEntity queryAll(FormDataQuery query, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK); + } + + @GetMapping("/getSonFormData/{id}") + public ResponseEntity getSonDtlFormData(@PathVariable String id){ + //参数判读,参数解析,调用参数入库 + //Page page = iBmFormStrucService.page(pageQuery.build(), query.build()); + return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK); + } + + @PostMapping("/save") + @Log("新增盘点单") + public ResponseEntity save(@RequestBody JSONObject params) { + checkStorageService.save(params); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/updateStatus") + @Log("跟新单据状态") + public ResponseEntity updateStatus(@RequestBody JSONObject param) { + //TODO:明细校验 + List childs = iPmFormDataService.getByParentId(param.getString("id")); + long tmpCount = childs.stream().filter(a -> a.getStatus().equals(StatusEnum.FORM_STATUS.code("生成"))).count(); + if (tmpCount==0){ + iPmFormDataService.update(new UpdateWrapper() + .set("status",param.getString("status")) + .eq("id",param.getString("id"))); + } + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/saveCheckTask") + @Log("盘点确认") + public ResponseEntity saveCheckTask(@RequestBody JSONObject param) { + //TODO:明细校验 + param.getJSONObject("form_data"); + iPmFormDataService.update(new UpdateWrapper() + .set("status", StatusEnum.FORM_STATUS.code("已分配")) + .set("form_data",param.getJSONObject("form_data").toJSONString()) + .eq("id",param.getString("id"))); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/taskOpen") + @Log("盘点单下发") + public ResponseEntity taskOpen(@RequestBody JSONObject param) { + checkStorageService.taskOpen(param); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping() + public ResponseEntity delete(@RequestBody String[] ids) { + checkStorageService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/service/CheckStorageService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/service/CheckStorageService.java new file mode 100644 index 00000000..c1c13112 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/checkStorage/service/CheckStorageService.java @@ -0,0 +1,149 @@ +package org.nl.wms.stor_manage.checkStorage.service; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +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.SecurityUtils; +import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto; +import org.nl.wms.flow_manage.monitor.event.FlowStartEvent; +import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; +import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +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.*; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2024/6/17 21:25 + */ +@Service +public class CheckStorageService { + @Autowired + private IPmFormDataService iFormDataService; + @Autowired + private IMdPbVehicleMaterService iMdPbVehicleMaterService; + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + + + /** + * 生成移库单 + * @param form + */ + @Transactional + public void save(JSONObject form){ + ArrayList list = new ArrayList<>(); + Set structs = new HashSet<>(); + + String user = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + List items = (List)form.remove("item"); + PmFormData mst = form.toJavaObject(PmFormData.class); + mst.setCreate_name(user); + mst.setCreate_time(now); + mst.setId(IdUtil.getStringId()); + mst.setStatus(StatusEnum.FORM_STATUS.code("生成")); + mst.setCode(CodeUtil.getNewCode(mst.getForm_type())); + list.add(mst); + for (Object itemO : items) { + JSONObject itemJ = new JSONObject((Map) itemO); + PmFormData dtl = itemJ.toJavaObject(PmFormData.class); + dtl.setCreate_name(user); + dtl.setCreate_time(now); + dtl.setId(IdUtil.getStringId()); + dtl.setStatus(StatusEnum.FORM_STATUS.code("生成")); + dtl.setParent_id(mst.getId()); + structs.add(dtl.getForm_data().getString("struct_code")); + list.add(dtl); + } + iFormDataService.saveBatch(list); + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("移库锁")) + .in("struct_code",structs)); + } + + /** + * 删除移库单 + * @param ids + */ + @Transactional + public void delete(String[] ids){ + if (ids.length>0){ + List dtls = iFormDataService.getByParentId(ids); + List removeCollect = dtls.stream().map(PmFormData::getId).collect(Collectors.toList()); + removeCollect.addAll(Arrays.asList(ids)); + List structs = new ArrayList<>(); + for (PmFormData dtl : dtls) { + String struct_code = dtl.getForm_data().getString("struct_code"); + structs.add(struct_code); + } + iFormDataService.removeByIds(removeCollect); + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("无锁")) + .in("struct_code",structs)); + } + } + + + public void taskOpen(JSONObject form){ + PmFormData mst = form.toJavaObject(PmFormData.class); + if (StringUtils.isNotEmpty(mst.getProc_inst_id())){ + throw new BadRequestException("下发失败:当前单据已存在流程,请勿重新下发"); + } + JSONObject mstJ = (JSONObject) JSON.toJSON(mst); + ExecutionDto dto = new ExecutionDto(); + dto.setForm_id(mst.getId()); + dto.setForm_type(mst.getForm_type()); + dto.setSource_form_type(mst.getSource_form_type()); + dto.setSource_form_id(mst.getSource_form_id()); + dto.setT(mstJ); + dto.setItem(packageT(mstJ,"id")); + FlowStartEvent startEvent = new FlowStartEvent("st_ivt_check", + (proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper().set("proc_inst_id", proc_inst_id).eq("vehicle_code", empPlace)) + , null); + startEvent.setDto(dto); + startEvent.setCallback(proc_inst_id->{ + iFormDataService.update(new UpdateWrapper() + .set("status",StatusEnum.FORM_STATUS.code("执行中")) + .set("proc_inst_id",proc_inst_id) + .eq("id",mst.getId())); + }); + BussEventMulticaster.Publish(startEvent); + + } + private List packageT(JSONObject current,String itemField){ + String id = current.getString(itemField); + List items = iFormDataService.getByParentId(id); + if (!CollectionUtils.isEmpty(items)){ + List list = new ArrayList<>(); + for (PmFormData item : items) { + JSONObject itemJ = (JSONObject) JSON.toJSON(item); + ExecutionDto itemDto = new ExecutionDto(); + itemDto.setT(itemJ); + itemDto.setForm_id(item.getId()); + itemDto.setForm_type(item.getForm_type()); + itemDto.setSource_form_type(item.getSource_form_type()); + itemDto.setSource_form_id(item.getSource_form_id()); + itemDto.setItem(packageT(itemJ,itemField)); + list.add(itemDto); + } + return list; + } + return null; + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java index 17a7aba9..c42ac854 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java @@ -233,7 +233,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl iMdPbVehicleMaterService.update(new UpdateWrapper() .set("proc_inst_id",proc_inst_id) .in("vehicle_code",innerVehicle==null?vechiles: ListOf.of(innerVehicle))) - ,null) + //传递全局参数:出库分配出库点用 + ,iostorinv.getForm_data()) .build("st_ivt_iostorinv",iostorinv.getId(),iostorinv.getSource_form_type(),iostorinv.getSource_form_id(),form) .build("st_ivt_iostorinvdtl",dtlVo) ); 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 fa5930ef..1b43dac9 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 @@ -29,23 +29,18 @@ public class StructEventListener extends AbstraceListener { @Override protected String doEvent(StructEvent event) { //根据不同的task_type获取对应出入库类型 - String status = event.getStatus(); String task_type = event.getTask_type(); - - if (status.equals(StatusEnum.FORM_STATUS.code("生成"))){ - + if (StatusEnum.IOBILL_TYPE_IN.check(task_type)){ + structattrService.changeStruct(event.getPoint_code2(),event.getVehicle_code(),task_type,true); + } + if (StatusEnum.IOBILL_TYPE_OUT.check(task_type)){ + structattrService.changeStruct(event.getPoint_code1(),null,task_type,false); + } + if (StatusEnum.IOBILL_TYPE_MOVE.check(task_type)){ + structattrService.changeStruct(event.getPoint_code1(),null,task_type,false); + structattrService.changeStruct(event.getPoint_code2(),event.getVehicle_code(),task_type,true); } - if (status.equals(StatusEnum.FORM_STATUS.code("执行中"))){ - } - if (status.equals(StatusEnum.FORM_STATUS.code("完成"))){ - //更新出入库单明细状态;如果单据类型是其他的则从from-data表中更新 - 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 (status.equals(StatusEnum.FORM_STATUS.code("取消"))){ - - } return null; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/controller/MovingController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/controller/MovingController.java new file mode 100644 index 00000000..1b9d292f --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/controller/MovingController.java @@ -0,0 +1,75 @@ +package org.nl.wms.stor_manage.move.controller; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.entity.PageQuery; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; +import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; +import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; +import org.nl.wms.stor_manage.move.service.MovingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 表单信息表 前端控制器 + *

+ * + * @author generator + * @since 2024-03-25 + */ +@RestController +@RequestMapping("/api/move") +public class MovingController { + + @Autowired + private IPmFormDataService iPmFormDataService; + @Autowired + private MovingService movingService; + + + @GetMapping() + public ResponseEntity queryAll(FormDataQuery query, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK); + } + + @GetMapping("/getSonFormData/{id}") + public ResponseEntity getSonDtlFormData(@PathVariable String id){ + //参数判读,参数解析,调用参数入库 + //Page page = iBmFormStrucService.page(pageQuery.build(), query.build()); + return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK); + } + + @PostMapping("/save") + public ResponseEntity save(@RequestBody JSONObject params) { + movingService.save(params); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/updateStatus") + public ResponseEntity updateStatus(@RequestBody JSONObject param) { + //TODO:明细校验 + iPmFormDataService.update(new UpdateWrapper() + .set("status",param.getString("status")) + .eq("id",param.getString("id"))); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/taskOpen") + public ResponseEntity taskOpen(@RequestBody JSONObject param) { + movingService.taskOpen(param); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping() + public ResponseEntity delete(@RequestBody String[] ids) { + movingService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/service/MovingService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/service/MovingService.java new file mode 100644 index 00000000..771d6608 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/move/service/MovingService.java @@ -0,0 +1,163 @@ +package org.nl.wms.stor_manage.move.service; + +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.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 org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService; +import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo; +import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto; +import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent; +import org.nl.wms.flow_manage.monitor.event.FlowStartEvent; +import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService; +import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick; +import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; +import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +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.*; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2024/6/17 21:25 + */ +@Service +public class MovingService { + @Autowired + private IPmFormDataService iFormDataService; + @Autowired + private IMdPbVehicleMaterService iMdPbVehicleMaterService; + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + + + /** + * 生成移库单 + * @param form + */ + @Transactional + public void save(JSONObject form){ + ArrayList list = new ArrayList<>(); + Set structs = new HashSet<>(); + + String user = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + List items = (List)form.remove("item"); + PmFormData mst = form.toJavaObject(PmFormData.class); + mst.setCreate_name(user); + mst.setCreate_time(now); + mst.setId(IdUtil.getStringId()); + mst.setStatus(StatusEnum.FORM_STATUS.code("生成")); + mst.setCode(CodeUtil.getNewCode(mst.getForm_type())); + list.add(mst); + for (Object itemO : items) { + JSONObject itemJ = new JSONObject((Map) itemO); + PmFormData dtl = itemJ.toJavaObject(PmFormData.class); + dtl.setCreate_name(user); + dtl.setCreate_time(now); + dtl.setId(IdUtil.getStringId()); + dtl.setStatus(StatusEnum.FORM_STATUS.code("生成")); + dtl.setParent_id(mst.getId()); + structs.add(dtl.getForm_data().getString("start_struct_code")); + structs.add(dtl.getForm_data().getString("end_struct_code")); + list.add(dtl); + } + if (structs.size() != items.size()*2){ + throw new BadRequestException("移库分配异常:库位信息不正确"); + } + iFormDataService.saveBatch(list); + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("移库锁")) + .in("struct_code",structs)); + } + + /** + * 删除移库单 + * @param ids + */ + @Transactional + public void delete(String[] ids){ + if (ids.length>0){ + List dtls = iFormDataService.getByParentId(ids); + List removeCollect = dtls.stream().map(PmFormData::getId).collect(Collectors.toList()); + removeCollect.addAll(Arrays.asList(ids)); + + List structs = new ArrayList<>(); + for (PmFormData dtl : dtls) { + String start_struct_code = dtl.getForm_data().getString("start_struct_code"); + String end_struct_code = dtl.getForm_data().getString("end_struct_code"); + structs.add(start_struct_code); + structs.add(end_struct_code); + } + iFormDataService.removeByIds(removeCollect); + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("无锁")) + .in("struct_code",structs)); + } + } + + + public void taskOpen(JSONObject form){ + PmFormData mst = form.toJavaObject(PmFormData.class); + if (StringUtils.isNotEmpty(mst.getProc_inst_id())){ + throw new BadRequestException("下发失败:当前单据已存在流程,请勿重新下发"); + } + JSONObject mstJ = (JSONObject) JSON.toJSON(mst); + ExecutionDto dto = new ExecutionDto(); + dto.setForm_id(mst.getId()); + dto.setForm_type(mst.getForm_type()); + dto.setSource_form_type(mst.getSource_form_type()); + dto.setSource_form_id(mst.getSource_form_id()); + dto.setT(mstJ); + dto.setItem(packageT(mstJ,"id")); + FlowStartEvent startEvent = new FlowStartEvent("st_ivt_move", + (proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper().set("proc_inst_id", proc_inst_id).eq("vehicle_code", empPlace)) + , null); + startEvent.setDto(dto); + startEvent.setCallback(proc_inst_id->{ + iFormDataService.update(new UpdateWrapper() + .set("status",StatusEnum.FORM_STATUS.code("执行中")) + .set("proc_inst_id",proc_inst_id) + .eq("id",mst.getId())); + }); + BussEventMulticaster.Publish(startEvent); + + } + private List packageT(JSONObject current,String itemField){ + String id = current.getString(itemField); + List items = iFormDataService.getByParentId(id); + if (!CollectionUtils.isEmpty(items)){ + List list = new ArrayList<>(); + for (PmFormData item : items) { + JSONObject itemJ = (JSONObject) JSON.toJSON(item); + ExecutionDto itemDto = new ExecutionDto(); + itemDto.setT(itemJ); + itemDto.setForm_id(item.getId()); + itemDto.setForm_type(item.getForm_type()); + itemDto.setSource_form_type(item.getSource_form_type()); + itemDto.setSource_form_id(item.getSource_form_id()); + itemDto.setItem(packageT(itemJ,itemField)); + list.add(itemDto); + } + return list; + } + return null; + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java index 1528f1c8..8c11e5f5 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java @@ -35,7 +35,7 @@ public class PickingController { @GetMapping() public ResponseEntity queryAll(FormDataQuery query, PageQuery page) { - return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.CREATED); + return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK); } @GetMapping("/getSonFormData/{id}") @@ -50,12 +50,12 @@ public class PickingController { public ResponseEntity sync(@RequestParam String type, String formDtl) { //参数判读,参数解析,调用参数入库 iPmFormDataService.syncFormData("type", formDtl); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/savePickTask") public ResponseEntity savePickTask(@RequestBody JSONArray params) { pickingService.savePickTask(params); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/updateStatus") public ResponseEntity updateStatus(@RequestBody JSONObject param) { @@ -63,12 +63,12 @@ public class PickingController { iPmFormDataService.update(new UpdateWrapper() .set("status",param.getString("status")) .eq("id",param.getString("id"))); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/taskOpen") public ResponseEntity taskOpen(@RequestBody JSONObject param) { pickingService.taskOpen(param); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java index dbd5b800..eca40fd3 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java @@ -44,7 +44,7 @@ public class StIvtStructattrController { dto.setCreate_name(SecurityUtils.getCurrentNickName()); dto.setCreate_time(DateUtil.now()); structattrService.save(dto); - return new ResponseEntity<>(HttpStatus.CREATED); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java index d826a9f9..00c1eec0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java @@ -27,7 +27,7 @@ public interface IStIvtStructattrService extends IService { */ List> getByQuery(StructattrQuery query); - void changeStruct(String struct_code,String vehicle_code,String task_type); + void changeStruct(String struct_code,String vehicle_code,String task_type,Boolean in_storage); void deleteAll(Long[] ids); Object pageQuery(StructattrQuery query, PageQuery page); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml index dd4b3165..bb130875 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml @@ -4,22 +4,42 @@