From 39024a6484d66e581bd1f8fa165994cf7780a1ac Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Thu, 1 Feb 2024 23:20:00 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E4=B8=80=E6=A5=BC?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...PdmBiSlittingproductionplanController.java | 96 +++ .../dao/PdmBiSlittingproductionplan.java | 306 ++++++++++ .../PdmBiSlittingproductionplanMapper.java | 15 + .../xml/PdmBiSlittingproductionplanMapper.xml | 6 + .../dto/PdmBiSlittingproductionplanDto.java | 190 ++++++ .../dto/PdmBiSlittingproductionplanQuery.java | 22 + .../IpdmBiSlittingproductionplanService.java | 57 ++ ...dmBiSlittingproductionplanServiceImpl.java | 106 ++++ .../PdmBiSubpackagerelationController.java | 96 +++ .../dao/PdmBiSubpackagerelation.java | 326 +++++++++++ .../mapper/PdmBiSubpackagerelationMapper.java | 15 + .../dao/xml/PdmBiSubpackagerelationMapper.xml | 6 + .../dto/PdmBiSubpackagerelationDto.java | 210 +++++++ .../dto/PdmBiSubpackagerelationQuery.java | 24 + .../IpdmBiSubpackagerelationService.java | 57 ++ .../PdmBiSubpackagerelationServiceImpl.java | 102 ++++ .../sch/point/dao/BstIvtPackageinfoivt.java | 2 +- .../nl/b_lms/sch/point/dao/SchBasePoint.java | 553 +++++++++--------- .../sch/point/dao/StIvtCoolregionio.java | 3 +- .../b_lms/sch/point/dao/StIvtCutpointivt.java | 2 +- .../sch/point/dao/StIvtDeliverypointivt.java | 2 +- .../sch/point/dao/StIvtEmptytubeivt.java | 2 +- .../point/dao/StIvtEmptyvehiclerecord.java | 1 - .../b_lms/sch/point/dao/StIvtHotpointivt.java | 2 +- .../b_lms/sch/point/dao/StIvtSbpointivt.java | 2 +- .../nl/b_lms/sch/point/dao/StIvtShaftivt.java | 2 +- .../point/dao/mapper/SchBasePointMapper.java | 2 +- .../sch/point/dto/SchBasePointQuery.java | 6 +- .../point/service/IschBasePointService.java | 11 +- .../service/impl/SchBasePointServiceImpl.java | 2 - .../b_lms/sch/region/dao/SchBaseRegion.java | 3 +- .../sch/region/dto/SchBaseRegionQuery.java | 2 +- .../nl/b_lms/sch/task/dao/SchBaseTask.java | 2 +- .../b_lms/sch/task/dto/SchBaseTaskQuery.java | 2 +- .../service/impl/SchBaseTaskServiceImpl.java | 16 +- .../b_lms/sch/tasks/packingArea/GzqTask.java | 137 +++++ .../sch/tasks/packingArea/ZxDjwTask.java | 134 +++++ .../b_lms/sch/tasks/packingArea/ZxqTask.java | 191 ++++++ .../nl/common/enums/ContainerLevelEnum.java | 44 ++ .../nl/common/enums/PackageInfoIvtEnum.java | 48 ++ .../service/menu/impl/SysMenuServiceImpl.java | 3 +- .../wms/ext/acs/rest/AcsToWmsController.java | 15 +- .../wms/ext/acs/service/AcsToWmsService.java | 16 + .../acs/service/impl/AcsToWmsServiceImpl.java | 102 +++- .../wms/ext/mes/rest/MesToLmsController.java | 8 + .../wms/ext/mes/service/MesToLmsService.java | 8 + .../mes/service/impl/MesToLmsServiceImpl.java | 149 ++++- .../org/nl/wms/sch/tasks/CutTrussTask.java | 144 ----- 48 files changed, 2758 insertions(+), 492 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/controller/PdmBiSlittingproductionplanController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/PdmBiSlittingproductionplan.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/mapper/PdmBiSlittingproductionplanMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/xml/PdmBiSlittingproductionplanMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanDto.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanQuery.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/IpdmBiSlittingproductionplanService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/GzqTask.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxDjwTask.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxqTask.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/common/enums/ContainerLevelEnum.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/controller/PdmBiSlittingproductionplanController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/controller/PdmBiSlittingproductionplanController.java new file mode 100644 index 000000000..8877dcc42 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/controller/PdmBiSlittingproductionplanController.java @@ -0,0 +1,96 @@ +package org.nl.b_lms.pdm.productionplan.controller; + +import java.util.Set; +import java.util.Map; + +import org.nl.b_lms.pdm.productionplan.dao.PdmBiSlittingproductionplan; +import org.nl.common.TableDataInfo; +import org.springframework.web.bind.annotation.*; +import lombok.RequiredArgsConstructor; + +import javax.annotation.Resource; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.nl.modules.logging.annotation.Log; +import org.nl.b_lms.pdm.productionplan.service.IpdmBiSlittingproductionplanService; + + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)控制层 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pdmBiSlittingproductionplan") +@Slf4j +public class PdmBiSlittingproductionplanController { + + + @Resource + private IpdmBiSlittingproductionplanService pdmBiSlittingproductionplanService; + + + /** + * 分页查询 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @GetMapping + @Log("查询分切生产计划") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSlittingproductionplanService.queryAll(whereJson, page)), HttpStatus.OK); + } + + + /** + * 新增数据 + * + * @param entity 实体对象 + * @return 新增结果 + */ + @PostMapping + @Log("新增分切生产计划") + public ResponseEntity create(PdmBiSlittingproductionplan entity) { + pdmBiSlittingproductionplanService.create(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + + /** + * 修改数据 + * + * @param entity 实体对象 + * @return 修改结果 + */ + @PutMapping + @Log("修改分切生产计划") + //@SaCheckPermission("@el.check(PdmBiSlittingproductionplan:edit')") + public ResponseEntity update(PdmBiSlittingproductionplan entity) { + pdmBiSlittingproductionplanService.update(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + + /** + * 删除数据 + * + * @param ids 多个主键Id + * @return 删除结果 + */ + @Log("删除分切生产计划") + //@SaCheckPermission("@el.check(PdmBiSlittingproductionplan:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBiSlittingproductionplanService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/PdmBiSlittingproductionplan.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/PdmBiSlittingproductionplan.java new file mode 100644 index 000000000..d6c9cadb5 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/PdmBiSlittingproductionplan.java @@ -0,0 +1,306 @@ +package org.nl.b_lms.pdm.productionplan.dao; + +import java.math.BigDecimal; +import java.io.Serializable; +import java.math.BigDecimal; + +import lombok.*; +import lombok.Data; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.AllArgsConstructor; +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)实体类 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuppressWarnings("serial") +@TableName("pdm_bi_slittingproductionplan") +public class PdmBiSlittingproductionplan extends Model { + + private static final long serialVersionUID = -7739291296662381393L; + + + + + /** + * 分切计划标识 + */ + @TableId(value = "workorder_id", type = IdType.NONE) + private Long workorder_id; + + + /** + * 分切订单类型 + */ + private String order_type; + + + /** + * 子卷号 + */ + private String container_name; + + + /** + * 产品编码 + */ + private String product_name; + + + /** + * 产品描述 + */ + private String description; + + + /** + * 来源母卷号 + */ + private String parent_container_name; + + + /** + * 改制来源子卷号 + */ + private String restruct_container_name; + + + /** + * 子卷立库木箱号 + */ + private String package_box_sn; + + + /** + * 来源卷位置 + */ + private String ware_house; + + + /** + * 分切机台编码 + */ + private String resource_name; + + + /** + * 分切组 + */ + private String split_group; + + + /** + * 生产顺序 + */ + private String manufacture_sort; + + + /** + * 生产订单 + */ + private String mfg_order_name; + + + /** + * 生产日期 + */ + private String manufacture_date; + + + /** + * 管件类型 + */ + private String paper_tube_or_FRP; + + + /** + * 纸筒物料编码 + */ + private String paper_tube_material; + + + /** + * 纸筒物料描述 + */ + private String paper_tube_description; + + + /** + * 纸筒规格 + */ + private String paper_tube_model; + + + + /** + * 纸管定级(待检区:1,2,3;管制区:4,6) + */ + @TableField(exist = false) + private String level; + + /** + * FRP管物料编码 + */ + private String FRP_material; + + + /** + * FRP管物料描述 + */ + private String FRP_description; + + + /** + * FRP管规格 + */ + private String FRP_model; + + + /** + * 子卷幅宽 + */ + private BigDecimal split_breadth; + + + /** + * 子卷理论长度 + */ + private BigDecimal split_height; + + + /** + * 子卷理论重量 + */ + private BigDecimal split_weight; + + + /** + * 开始时间 + */ + private String start_time; + + + /** + * 结束时间 + */ + private String end_time; + + + /** + * 状态 + */ + private String status; + + + /** + * 上料完成 + */ + private String is_parent_ok; + + + /** + * 子卷套轴完成 + */ + private String is_child_tz_ok; + + + /** + * 子卷配送完成 + */ + private String is_child_ps_ok; + + + /** + * 气涨轴编码 + */ + private String qzzno; + + + /** + * 修改人 + */ + private Long update_optid; + + + /** + * 修改人姓名 + */ + private String update_optname; + + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String update_time; + + + /** + * 部门ID + */ + private Long sysdeptid; + + + /** + * 公司ID + */ + private Long syscompanyid; + + + /** + * 是否删除 + */ + @TableField(fill = FieldFill.INSERT) + private String is_delete; + + + /** + * 销售订单及行号 + */ + private String sale_order_name; + + + /** + * 是否呼叫 + */ + private String is_call; + + + /** + * 呼叫时间 + */ + private String call_time; + + + /** + * 是否呼叫纸管 + */ + private String is_paper_ok; + + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.workorder_id; + } + +} + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/mapper/PdmBiSlittingproductionplanMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/mapper/PdmBiSlittingproductionplanMapper.java new file mode 100644 index 000000000..19d5f2e47 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/mapper/PdmBiSlittingproductionplanMapper.java @@ -0,0 +1,15 @@ +package org.nl.b_lms.pdm.productionplan.dao.mapper; + +import org.nl.b_lms.pdm.productionplan.dao.PdmBiSlittingproductionplan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)数据持久层 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +public interface PdmBiSlittingproductionplanMapper extends BaseMapper { + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/xml/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/xml/PdmBiSlittingproductionplanMapper.xml new file mode 100644 index 000000000..e88f31caf --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dao/xml/PdmBiSlittingproductionplanMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanDto.java new file mode 100644 index 000000000..638be3ec6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanDto.java @@ -0,0 +1,190 @@ +package org.nl.b_lms.pdm.productionplan.dto; + +import java.math.BigDecimal; +import java.io.Serializable; + +import lombok.*; +import lombok.Data; +import lombok.Builder; + + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)数据传输类 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +@Data +@Builder +@ToString +public class PdmBiSlittingproductionplanDto implements Serializable { + + /** + * 分切计划标识 + */ + private Long workorder_id; + /** + * 分切订单类型 + */ + private String order_type; + /** + * 子卷号 + */ + private String container_name; + /** + * 产品编码 + */ + private String product_name; + /** + * 产品描述 + */ + private String description; + /** + * 来源母卷号 + */ + private String parent_container_name; + /** + * 改制来源子卷号 + */ + private String restruct_container_name; + /** + * 子卷立库木箱号 + */ + private String package_box_sn; + /** + * 来源卷位置 + */ + private String ware_house; + /** + * 分切机台编码 + */ + private String resource_name; + /** + * 分切组 + */ + private String split_group; + /** + * 生产顺序 + */ + private String manufacture_sort; + /** + * 生产订单 + */ + private String mfg_order_name; + /** + * 生产日期 + */ + private String manufacture_date; + /** + * 管件类型 + */ + private String paper_tube_or_FRP; + /** + * 纸筒物料编码 + */ + private String paper_tube_material; + /** + * 纸筒物料描述 + */ + private String paper_tube_description; + /** + * 纸筒规格 + */ + private String paper_tube_model; + /** + * FRP管物料编码 + */ + private String FRP_material; + /** + * FRP管物料描述 + */ + private String FRP_description; + /** + * FRP管规格 + */ + private String FRP_model; + /** + * 子卷幅宽 + */ + private BigDecimal split_breadth; + /** + * 子卷理论长度 + */ + private BigDecimal split_height; + /** + * 子卷理论重量 + */ + private BigDecimal split_weight; + /** + * 开始时间 + */ + private String start_time; + /** + * 结束时间 + */ + private String end_time; + /** + * 状态 + */ + private String status; + /** + * 上料完成 + */ + private String is_parent_ok; + /** + * 子卷套轴完成 + */ + private String is_child_tz_ok; + /** + * 子卷配送完成 + */ + private String is_child_ps_ok; + /** + * 气涨轴编码 + */ + private String qzzno; + /** + * 修改人 + */ + private Long update_optid; + /** + * 修改人姓名 + */ + private String update_optname; + /** + * 修改时间 + */ + private String update_time; + /** + * 部门ID + */ + private Long sysdeptid; + /** + * 公司ID + */ + private Long syscompanyid; + /** + * 是否删除 + */ + private String is_delete; + /** + * 销售订单及行号 + */ + private String sale_order_name; + /** + * 是否呼叫 + */ + private String is_call; + /** + * 呼叫时间 + */ + private String call_time; + /** + * 是否呼叫纸管 + */ + private String is_paper_ok; + +} + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanQuery.java new file mode 100644 index 000000000..4623d06ae --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/dto/PdmBiSlittingproductionplanQuery.java @@ -0,0 +1,22 @@ +package org.nl.b_lms.pdm.productionplan.dto; + + +import java.math.BigDecimal; + + +import lombok.Data; +import lombok.Builder; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import org.nl.b_lms.pdm.productionplan.dao.PdmBiSlittingproductionplan; +import org.nl.common.domain.query.BaseQuery; + +/** + * @Author: gbx + * @since 2024-01-27 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PdmBiSlittingproductionplanQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/IpdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/IpdmBiSlittingproductionplanService.java new file mode 100644 index 000000000..e6366cc64 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/IpdmBiSlittingproductionplanService.java @@ -0,0 +1,57 @@ +package org.nl.b_lms.pdm.productionplan.service; + +import org.nl.b_lms.pdm.productionplan.dao.PdmBiSlittingproductionplan; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; +import java.util.Set; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; + + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)服务接口层 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +public interface IpdmBiSlittingproductionplanService extends IService { + + + /** + * 查询数据分页 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + + /** + * 创建 + * + * @param entity / + */ + void create(PdmBiSlittingproductionplan entity); + + + /** + * 编辑 + * + * @param entity / + */ + void update(PdmBiSlittingproductionplan entity); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Set ids); + + +} + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java new file mode 100644 index 000000000..92ee36e29 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/productionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -0,0 +1,106 @@ +package org.nl.b_lms.pdm.productionplan.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.b_lms.pdm.productionplan.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.productionplan.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.pdm.productionplan.service.IpdmBiSlittingproductionplanService; +import cn.hutool.core.date.DateUtil; +import org.nl.common.utils.SecurityUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; + + +/** + * {@code @Description:} 分切生产计划(PdmBiSlittingproductionplan)服务实现层 + * {@code @Author:} gbx + * + * @since 2024-01-27 + */ +@Service("pdmBiSlittingproductionplanService") +public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl implements IpdmBiSlittingproductionplanService { + + + @Resource + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + + + /** + * 查询数据分页 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return pdmBiSlittingproductionplanMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() + .lambda() + ); + } + + + /** + * 创建 + * + * @param entity 对象实体 + */ + @Override + public void create(PdmBiSlittingproductionplan entity) { + pdmBiSlittingproductionplanMapper.insert(getBasicInfo(entity, true)); + } + + + /** + * 编辑 + * + * @param entity 对象实体 + */ + @Override + public void update(PdmBiSlittingproductionplan entity) { + // PdmBiSlittingproductionplan dto = pdmBiSlittingproductionplanMapper.selectById(entity.getId); + // if (dto == null) { + // throw new BadRequestException("不存在该数据!"); + // } + pdmBiSlittingproductionplanMapper.updateById(getBasicInfo(entity, false)); + } + + + /** + * 多选删除 + * + * @param ids 多个Id主键 + */ + @Override + public void deleteAll(Set ids) { + // 物理删除 + pdmBiSlittingproductionplanMapper.deleteBatchIds(ids); + } + + + /** + * 获取实体基础信息 + * + * @param entity 对象实体 + * @param isCreate 是否创建 + */ + private PdmBiSlittingproductionplan getBasicInfo(PdmBiSlittingproductionplan entity, boolean isCreate) { + // if (isCreate) { + // entity.setCreate_id(Long.valueOf(SecurityUtils.getCurrentUserId())); + // entity.setCreate_name(SecurityUtils.getCurrentNickName()); + // entity.setCreate_time(DateUtil.now()); + // } + // entity.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); + // entity.setUpdate_optname(SecurityUtils.getCurrentNickName()); + // entity.setUpdate_time(DateUtil.now()); + return entity; + } + + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java new file mode 100644 index 000000000..1df15b381 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -0,0 +1,96 @@ +package org.nl.b_lms.pdm.subpackagerelation.controller; + +import java.util.Set; +import java.util.Map; + +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.common.TableDataInfo; +import org.springframework.web.bind.annotation.*; +import lombok.RequiredArgsConstructor; + +import javax.annotation.Resource; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.nl.modules.logging.annotation.Log; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; + + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)控制层 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pdmBiSubpackagerelation") +@Slf4j +public class PdmBiSubpackagerelationController { + + + @Resource + private IpdmBiSubpackagerelationService pdmBiSubpackagerelationService; + + + /** + * 分页查询 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @GetMapping + @Log("查询子卷包装关系表") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSubpackagerelationService.queryAll(whereJson, page)), HttpStatus.OK); + } + + + /** + * 新增数据 + * + * @param entity 实体对象 + * @return 新增结果 + */ + @PostMapping + @Log("新增子卷包装关系表") + public ResponseEntity create(PdmBiSubpackagerelation entity) { + pdmBiSubpackagerelationService.create(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + + /** + * 修改数据 + * + * @param entity 实体对象 + * @return 修改结果 + */ + @PutMapping + @Log("修改子卷包装关系表") + //@SaCheckPermission("@el.check(PdmBiSubpackagerelation:edit')") + public ResponseEntity update(PdmBiSubpackagerelation entity) { + pdmBiSubpackagerelationService.update(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + + /** + * 删除数据 + * + * @param ids 多个主键Id + * @return 删除结果 + */ + @Log("删除子卷包装关系表") + //@SaCheckPermission("@el.check(PdmBiSubpackagerelation:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBiSubpackagerelationService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java new file mode 100644 index 000000000..1cf238c8b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java @@ -0,0 +1,326 @@ +package org.nl.b_lms.pdm.subpackagerelation.dao; + +import java.math.BigDecimal; +import java.io.Serializable; +import java.math.BigDecimal; + +import lombok.*; +import lombok.Data; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.AllArgsConstructor; +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)实体类 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuppressWarnings("serial") +@TableName("pdm_bi_subpackagerelation") +public class PdmBiSubpackagerelation extends Model { + + private static final long serialVersionUID = -7739291296662381393L; + //@TableId(value = "id", type = IdType.NONE) + + + /** + * 子卷包装标识 + */ + private Long workorder_id; + + + /** + * 木箱唯一码 + */ + private String package_box_sn; + + + /** + * 箱内子卷数量 + */ + private BigDecimal quanlity_in_box; + + + /** + * 木箱自身重量 + */ + private BigDecimal box_weight; + + + /** + * 保质期 + */ + private String quality_guaran_period; + + + /** + * 销售订单及行号 + */ + private String sale_order_name; + + + /** + * 客户编号 + */ + private String customer_name; + + + /** + * 客户名称 + */ + private String customer_description; + + + /** + * 产品编码 + */ + private String product_name; + + + /** + * 产品描述 + */ + private String product_description; + + + /** + * 入库日期 + */ + private String date_of_FG_inbound; + + + /** + * 子卷号 + */ + private String container_name; + + + /** + * 产品规格(幅宽) + */ + private String width; + + + /** + * 产品厚度 + */ + private String thickness; + + + /** + * 单位面积质量 + */ + private BigDecimal mass_per_unit_area; + + + /** + * 净重 + */ + private BigDecimal net_weight; + + + /** + * 长度 + */ + private BigDecimal length; + + + /** + * 制造完成日期 + */ + private String date_of_production; + + + /** + * 计划外分切的子卷 + */ + private String is_un_plan_production; + + + /** + * 子卷的物性值1 + */ + private String un_plan_product_property1; + + + /** + * 子卷的物性值2 + */ + private String un_plan_product_property2; + + + /** + * 子卷的物性值3 + */ + private String un_plan_product_property3; + + + /** + * 备注 + */ + private String remark; + + + /** + * 创建人 + */ + private Long create_id; + + + /** + * 创建人姓名 + */ + private String create_name; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private String create_time; + + + /** + * 状态 + */ + private String status; + + + /** + * 是否需要重打外包装标签 + */ + private String isRePrintPackageBoxLabel; + + + /** + * 是否需要拆包重打子卷标签 + */ + private String isUnPackBox; + + + /** + * 木箱料号 + */ + private String box_type; + + + /** + * SAP批次 + */ + private String sap_pcsn; + + + /** + * 交货单号 + */ + private String vbeln; + + + /** + * 交货单行号 + */ + private String posnr; + + + /** + * 木箱长度 + */ + private String box_length; + + + /** + * 木箱宽度 + */ + private String box_width; + + + /** + * 木箱高度 + */ + private String box_high; + + + /** + * 销售订单描述 + */ + private String sale_order_description; + + + /** + * 客户要求规格幅宽 + */ + private String width_standard; + + + /** + * 物料标准厚度 + */ + private String thickness_request; + + + /** + * 实际木箱自身重量 + */ + private BigDecimal real_weight; + + + /** + * 包装关系类型 + */ + private String sub_type; + + + /** + * 客户需求抗拉下限 + */ + private String demand_limit; + + + /** + * 内控标准抗拉下限 + */ + private String standard_limit; + + + /** + * 生产实际抗拉值 + */ + private String actual_value; + + + /** + * 解绑删除标识 + */ + private String need_delete; + + + /** + * 储存地点 + */ + private String ext_code; + + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.workorder_id; + } + +} + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java new file mode 100644 index 000000000..2e1c77d0c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java @@ -0,0 +1,15 @@ +package org.nl.b_lms.pdm.subpackagerelation.dao.mapper; + +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)数据持久层 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +public interface PdmBiSubpackagerelationMapper extends BaseMapper { + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml new file mode 100644 index 000000000..6c542686c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java new file mode 100644 index 000000000..e10974569 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java @@ -0,0 +1,210 @@ +package org.nl.b_lms.pdm.subpackagerelation.dto; + +import java.math.BigDecimal; +import java.io.Serializable; + +import lombok.*; +import lombok.Data; +import lombok.Builder; + + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)数据传输类 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +@Data +@Builder +@ToString +public class PdmBiSubpackagerelationDto implements Serializable { + + /** + * 子卷包装标识 + */ + private Long workorder_id; + /** + * 木箱唯一码 + */ + private String package_box_sn; + /** + * 箱内子卷数量 + */ + private BigDecimal quanlity_in_box; + /** + * 木箱自身重量 + */ + private BigDecimal box_weight; + /** + * 保质期 + */ + private String quality_guaran_period; + /** + * 销售订单及行号 + */ + private String sale_order_name; + /** + * 客户编号 + */ + private String customer_name; + /** + * 客户名称 + */ + private String customer_description; + /** + * 产品编码 + */ + private String product_name; + /** + * 产品描述 + */ + private String product_description; + /** + * 入库日期 + */ + private String date_of_FG_inbound; + /** + * 子卷号 + */ + private String container_name; + /** + * 产品规格(幅宽) + */ + private String width; + /** + * 产品厚度 + */ + private String thickness; + /** + * 单位面积质量 + */ + private BigDecimal mass_per_unit_area; + /** + * 净重 + */ + private BigDecimal net_weight; + /** + * 长度 + */ + private BigDecimal length; + /** + * 制造完成日期 + */ + private String date_of_production; + /** + * 计划外分切的子卷 + */ + private String is_un_plan_production; + /** + * 子卷的物性值1 + */ + private String un_plan_product_property1; + /** + * 子卷的物性值2 + */ + private String un_plan_product_property2; + /** + * 子卷的物性值3 + */ + private String un_plan_product_property3; + /** + * 备注 + */ + private String remark; + /** + * 创建人 + */ + private Long create_id; + /** + * 创建人姓名 + */ + private String create_name; + /** + * 创建时间 + */ + private String create_time; + /** + * 状态 + */ + private String status; + /** + * 是否需要重打外包装标签 + */ + private String isRePrintPackageBoxLabel; + /** + * 是否需要拆包重打子卷标签 + */ + private String isUnPackBox; + /** + * 木箱料号 + */ + private String box_type; + /** + * SAP批次 + */ + private String sap_pcsn; + /** + * 交货单号 + */ + private String vbeln; + /** + * 交货单行号 + */ + private String posnr; + /** + * 木箱长度 + */ + private String box_length; + /** + * 木箱宽度 + */ + private String box_width; + /** + * 木箱高度 + */ + private String box_high; + /** + * 销售订单描述 + */ + private String sale_order_description; + /** + * 客户要求规格幅宽 + */ + private String width_standard; + /** + * 物料标准厚度 + */ + private String thickness_request; + /** + * 实际木箱自身重量 + */ + private BigDecimal real_weight; + /** + * 包装关系类型 + */ + private String sub_type; + /** + * 客户需求抗拉下限 + */ + private String demand_limit; + /** + * 内控标准抗拉下限 + */ + private String standard_limit; + /** + * 生产实际抗拉值 + */ + private String actual_value; + /** + * 解绑删除标识 + */ + private String need_delete; + /** + * 储存地点 + */ + private String ext_code; + +} + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java new file mode 100644 index 000000000..321c1509a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java @@ -0,0 +1,24 @@ +package org.nl.b_lms.pdm.subpackagerelation.dto; + + +import java.math.BigDecimal; + + +import lombok.Data; +import lombok.Builder; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.common.domain.query.BaseQuery; + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)查询参数类 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PdmBiSubpackagerelationQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java new file mode 100644 index 000000000..51227c501 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -0,0 +1,57 @@ +package org.nl.b_lms.pdm.subpackagerelation.service; + +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; +import java.util.Set; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; + + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)服务接口层 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +public interface IpdmBiSubpackagerelationService extends IService { + + + /** + * 查询数据分页 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + + /** + * 创建 + * + * @param entity / + */ + void create(PdmBiSubpackagerelation entity); + + + /** + * 编辑 + * + * @param entity / + */ + void update(PdmBiSubpackagerelation entity); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Set ids); + + +} + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java new file mode 100644 index 000000000..0143b6f05 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -0,0 +1,102 @@ +package org.nl.b_lms.pdm.subpackagerelation.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import cn.hutool.core.date.DateUtil; +import org.nl.common.utils.SecurityUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; + + +/** + * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)服务实现层 + * {@code @Author:} gbx + * + * @since 2024-02-01 + */ +@Service("pdmBiSubpackagerelationService") +public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl implements IpdmBiSubpackagerelationService { + + + @Resource + private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + + + /** + * 查询数据分页 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return pdmBiSubpackagerelationMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() + .lambda()); + } + + + /** + * 创建 + * + * @param entity 对象实体 + */ + @Override + public void create(PdmBiSubpackagerelation entity) { + pdmBiSubpackagerelationMapper.insert(getBasicInfo(entity, true)); + } + + + /** + * 编辑 + * + * @param entity 对象实体 + */ + @Override + public void update(PdmBiSubpackagerelation entity) { + // PdmBiSubpackagerelation dto = pdmBiSubpackagerelationMapper.selectById(entity.getId); + // if (dto == null) { + // throw new BadRequestException("不存在该数据!"); + // } + pdmBiSubpackagerelationMapper.updateById(getBasicInfo(entity, false)); + } + + + /** + * 多选删除 + * + * @param ids 多个Id主键 + */ + @Override + public void deleteAll(Set ids) { + // 物理删除 + pdmBiSubpackagerelationMapper.deleteBatchIds(ids); + } + + + /** + * 获取实体基础信息 + * + * @param entity 对象实体 + * @param isCreate 是否创建 + */ + private PdmBiSubpackagerelation getBasicInfo(PdmBiSubpackagerelation entity, boolean isCreate) { + if (isCreate) { + entity.setCreate_id(Long.valueOf(SecurityUtils.getCurrentUserId())); + entity.setCreate_name(SecurityUtils.getCurrentNickName()); + entity.setCreate_time(DateUtil.now()); + } + return entity; + } + + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java index af667e04a..be6a16e0d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java index 0a273bd87..802e3dbd9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java @@ -1,13 +1,10 @@ package org.nl.b_lms.sch.point.dao; - import java.math.BigDecimal; import java.io.Serializable; import java.math.BigDecimal; - import lombok.*; import lombok.Data; import lombok.Builder; -import lombok.NoArgsConstructor; import lombok.EqualsAndHashCode; import lombok.AllArgsConstructor; import com.baomidou.mybatisplus.annotation.*; @@ -15,286 +12,296 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; -/** + + /** * {@code @Description:} 点位基础表(SchBasePoint)实体类 * {@code @Author:} gbx - * - * @since 2024-01-24 + * @since 2024-01-25 */ @Data @Builder @ToString -@NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") @TableName("sch_base_point") -public class SchBasePoint extends Model { - - private static final long serialVersionUID = -7739291296662381393L; - - - - /** - * 点位标识 - */ - @TableId(value = "point_id", type = IdType.NONE) - private Long point_id; - - - /** - * 点位编码 - */ - private String point_code; - - - /** - * 点位名称 - */ - private String point_name; - - - /** - * 所属区域 - */ - private Long region_id; - - - /** - * 区域编码 - */ - private String region_code; - - - /** - * 区域名称 - */ - private String region_name; - - - /** - * 点位类型 - */ - private String point_type; - - - /** - * 点位状态 - */ - private String point_status; - - - /** - * 锁定类型 - */ - private String lock_type; - - - /** - * 物料标识 - */ - private Long material_id; - - - /** - * 设备编码 - */ - private String device_code; - - - /** - * MES设备编码 - */ - private String mes_device_code; - - - /** - * 允许的载具类型 - */ - private String can_vehicle_type; - - - /** - * 载具允许最大数量 - */ - private BigDecimal vehicle_max_qty; - - - /** - * 载具类型 - */ - private String vehicle_type; - - - /** - * 载具编码 - */ - private String vehicle_code; - - - /** - * 载具数量 - */ - private BigDecimal vehicle_qty; - - - /** - * 块 - */ - private BigDecimal block_num; - - - /** - * 排 - */ - private BigDecimal row_num; - - - /** - * 列 - */ - private BigDecimal col_num; - - - /** - * 层 - */ - private BigDecimal layer_num; - - - /** - * 入库顺序 - */ - private BigDecimal in_order_seq; - - - /** - * 出库顺序 - */ - private BigDecimal out_order_seq; - - - /** - * 入空载具顺序 - */ - private BigDecimal in_empty_seq; - - - /** - * 出空载具顺序 - */ - private BigDecimal out_empty_seq; - - - /** - * 点位组编码 - */ - private String point_group_code; - - - /** - * 是否建工单 - */ - private String is_have_workder; - - - /** - * 在执行的任务标识 - */ - private Long task_id; - - - /** - * 生产区域 - */ - private String product_area; - - - /** - * 备注 - */ - private String remark; - - - /** - * 来源标识 - */ - private Long source_id; - - - /** - * 是否启用 - */ - private String is_used; - - - /** - * 是否删除 - */ - @TableField(fill = FieldFill.INSERT) - private String is_delete; - - - /** - * 创建人 - */ - private Long create_id; - - - /** - * 创建人 - */ - private String create_name; - - - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - private String create_time; - - - /** - * 修改人 - */ - private Long update_optid; - - - /** - * 修改人 - */ - private String update_optname; - - - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - private String update_time; - - - /** - * 位置 - */ - private String point_location; - - - /** - * 物料编码 - */ - private String material_code; - - - /** - * 获取主键值 - * - * @return 主键值 - */ - @Override - protected Serializable pkVal() { - return this.point_id; - } - +public class SchBasePoint extends Model +{ + + private static final long serialVersionUID = -7739291296662381393L; + //@TableId(value = "id", type = IdType.NONE) + + + + + /** + * 点位标识 + */ + @TableId(value = "point_id", type = IdType.NONE) + private Long point_id; + + + /** + * 点位编码 + */ + private String point_code; + + + /** + * 点位名称 + */ + private String point_name; + + + /** + * 所属区域 + */ + private Long region_id; + + + /** + * 区域编码 + */ + private String region_code; + + + /** + * 区域名称 + */ + private String region_name; + + + /** + * 点位类型 + */ + private String point_type; + + + /** + * 点位状态 + */ + private String point_status; + + + /** + * 锁定类型 + */ + private String lock_type; + + + /** + * 物料标识 + */ + private Long material_id; + + + /** + * 设备编码 + */ + private String device_code; + + + /** + * MES设备编码 + */ + private String mes_device_code; + + + /** + * 允许的载具类型 + */ + private String can_vehicle_type; + + + /** + * 载具允许最大数量 + */ + private BigDecimal vehicle_max_qty; + + + /** + * 载具类型 + */ + private String vehicle_type; + + + /** + * 载具编码 + */ + private String vehicle_code; + + + /** + * 载具数量 + */ + private BigDecimal vehicle_qty; + + + /** + * 块 + */ + private BigDecimal block_num; + + + /** + * 排 + */ + private BigDecimal row_num; + + + /** + * 列 + */ + private BigDecimal col_num; + + + /** + * 层 + */ + private BigDecimal layer_num; + + + /** + * 入库顺序 + */ + private BigDecimal in_order_seq; + + + /** + * 出库顺序 + */ + private BigDecimal out_order_seq; + + + /** + * 入空载具顺序 + */ + private BigDecimal in_empty_seq; + + + /** + * 出空载具顺序 + */ + private BigDecimal out_empty_seq; + + + /** + * 点位组编码 + */ + private String point_group_code; + + + /** + * 是否建工单 + */ + private String is_have_workder; + + + /** + * 在执行的任务标识 + */ + private Long task_id; + + + /** + * 生产区域 + */ + private String product_area; + + + /** + * 备注 + */ + private String remark; + + + /** + * 来源标识 + */ + private Long source_id; + + + /** + * 是否启用 + */ + private String is_used; + + + /** + * 是否删除 + */ + @TableField(fill = FieldFill.INSERT) + private String is_delete; + + + + + /** + * 创建人 + */ + private Long create_id; + + + /** + * 创建人 + */ + private String create_name; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private String create_time; + + + + + /** + * 修改人 + */ + private Long update_optid; + + + /** + * 修改人 + */ + private String update_optname; + + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String update_time; + + + + /** + * 位置 + */ + private String point_location; + + + /** + * 物料编码 + */ + private String material_code; + + + + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() + { + return this.point_id; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java index 6e673aaa4..93ba547e0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java @@ -24,13 +24,14 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") @TableName("st_ivt_coolregionio") public class StIvtCoolregionio extends Model { + private static final long serialVersionUID = -7739291296662381393L; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java index b8ac52c5f..b341cb5b6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java index 9f3262084..5297e7ba0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java index 6f9971236..5cd0b9266 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java index 20c3aac36..44583df84 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java @@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java index 50217f9a7..1ef267d21 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java index 60b960836..c8a1651bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java @@ -23,7 +23,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_sbpointivt") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java index f2a0e4ca4..5e9d4f5fd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java @@ -24,7 +24,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java index 61200a5a2..9bf1c28f7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.point.dao.mapper; -import org.nl.b_lms.sch.point.dao.SchBasePoint; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.sch.point.dao.SchBasePoint; /** * {@code @Description:} 点位基础表(SchBasePoint)数据持久层 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/SchBasePointQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/SchBasePointQuery.java index 3b069a9d5..8e0e60fb1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/SchBasePointQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/SchBasePointQuery.java @@ -1,13 +1,9 @@ package org.nl.b_lms.sch.point.dto; -import java.math.BigDecimal; - - import lombok.Data; import lombok.Builder; import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.common.domain.query.BaseQuery; @@ -20,7 +16,7 @@ import org.nl.common.domain.query.BaseQuery; @EqualsAndHashCode(callSuper = true) @Data @Builder -@NoArgsConstructor + public class SchBasePointQuery extends BaseQuery { } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IschBasePointService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IschBasePointService.java index 510358e62..c24ac89aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IschBasePointService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IschBasePointService.java @@ -1,21 +1,12 @@ package org.nl.b_lms.sch.point.service; - -import org.nl.b_lms.sch.point.dao.SchBasePoint; import com.baomidou.mybatisplus.extension.service.IService; - import java.util.Map; import java.util.Set; - import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.common.domain.query.PageQuery; -/** - * {@code @Description:} 点位基础表(SchBasePoint)服务接口层 - * {@code @Author:} gbx - * - * @since 2024-01-24 - */ public interface IschBasePointService extends IService { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/SchBasePointServiceImpl.java index b3459a2a4..370cabf65 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; import org.nl.b_lms.sch.point.service.IschBasePointService; -import cn.hutool.core.date.DateUtil; -import org.nl.common.utils.SecurityUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dao/SchBaseRegion.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dao/SchBaseRegion.java index f77ebd1e3..db14adc03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dao/SchBaseRegion.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dao/SchBaseRegion.java @@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor + @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") @@ -30,6 +30,7 @@ public class SchBaseRegion extends Model { /** * 区域标识 */ + @TableId(value = "region_id", type = IdType.NONE) private Long region_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dto/SchBaseRegionQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dto/SchBaseRegionQuery.java index d556e0916..20e6d5c23 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dto/SchBaseRegionQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/region/dto/SchBaseRegionQuery.java @@ -13,7 +13,7 @@ import org.nl.common.domain.query.BaseQuery; */ @Data @Builder -@NoArgsConstructor + public class SchBaseRegionQuery extends BaseQuery { } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java index ae553b3ea..767a2649c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java @@ -18,7 +18,6 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; @Data @Builder @ToString -@NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @SuppressWarnings("serial") @@ -31,6 +30,7 @@ public class SchBaseTask extends Model { /** * 任务标识 */ + @TableId(value = "task_id", type = IdType.NONE) private Long task_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dto/SchBaseTaskQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dto/SchBaseTaskQuery.java index a13c7984e..1cee22133 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dto/SchBaseTaskQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dto/SchBaseTaskQuery.java @@ -16,7 +16,7 @@ import org.nl.common.domain.query.BaseQuery; */ @Data @Builder -@NoArgsConstructor + public class SchBaseTaskQuery extends BaseQuery { } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java index d5332cc84..75d85524d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -97,14 +97,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl addTask() { + ArrayList resultList = new ArrayList<>(); + List taskList = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, 0) + ); + taskList.forEach(r -> { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(r.getTask_id().toString()) + .task_code(r.getTask_code()) + .task_type(r.getAcs_task_type()) + .start_device_code(r.getPoint_code1()) + .next_device_code(r.getPoint_code2()) + .start_device_code2(r.getPoint_code3()) + .next_device_code2(r.getPoint_code4()) + .vehicle_code(r.getVehicle_code()) + .priority(r.getPriority()) + .remark(r.getRemark()) + .product_area(r.getProduct_area()) + .agv_system_type("2") + .build(); + resultList.add(dto); + }); + return resultList; + } + + @Override + public void updateTaskStatus(JSONObject taskObj, String status) { + + } + + @Override + public String createTask(JSONObject form) { + Assert.notNull(form, "请求参数不能为空"); + String task_type = form.getString("task_type"); + if (StrUtil.isBlank(task_type)) { + throw new BadRequestException("业务类型不能为空"); + } + String point_code1 = form.getString("point_code1"); + if (StrUtil.isBlank(point_code1)) { + throw new BadRequestException("起点不能为空"); + } + String point_code2 = form.getString("point_code2"); + if (StrUtil.isBlank(point_code2)) { + throw new BadRequestException("下一点不能为空"); + } + String point_code3 = form.getString("point_code3"); + + String point_code4 = form.getString("point_code4"); + + String vehicle_code = form.getString("vehicle_code"); + if (StrUtil.isBlank(vehicle_code)) { + throw new BadRequestException("载具号不能为空"); + } + JSONObject json = new JSONObject(); + json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_type", form.getString("task_type")); + json.put("vehicle_code", form.getString("vehicle_code")); + String task_status = form.getString("task_status"); + if (StrUtil.isEmpty(task_status)) { + json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + } else { + json.put("task_status", task_status); + } + json.put("point_code1", point_code1); + json.put("point_code2", point_code2); + json.put("point_code3", point_code3); + json.put("point_code4", point_code4); + json.put("handle_class", this.getClass().getName()); + json.put("create_id", SecurityUtils.getCurrentUserId()); + json.put("create_name", SecurityUtils.getCurrentUsername()); + json.put("create_time", DateUtil.now()); + json.put("priority", "1"); + json.put("acs_task_type", "9"); + json.put("response_param", form.getString("truss_type")); + json.put("request_param", form.getString("request_param")); + taskService.save(json.toJavaObject(SchBaseTask.class)); + //如果目标点位没有空位先创建不下发 + if (form.getBoolean("isSend")) { + this.immediateNotifyAcs(json.getString("task_id")); + } + return json.getString("task_id"); + + + } + + @Override + public void forceFinish(String task_id) { + + } + + @Override + public void cancel(String task_id) { + + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxDjwTask.java new file mode 100644 index 000000000..fd3414191 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxDjwTask.java @@ -0,0 +1,134 @@ +package org.nl.b_lms.sch.tasks.packingArea; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 装箱区到装装箱对接位搬运任务 + * + * @author gbx + * @since 2024-02-01 + */ +@Service() +@RequiredArgsConstructor +@Slf4j +public class ZxDjwTask extends AbstractAcsTask { + @Resource + private IschBaseTaskService taskService; + private final String THIS_CLASS = ZxDjwTask.class.getName(); + + @Override + public List addTask() { + ArrayList resultList = new ArrayList<>(); + List taskList = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, 0) + ); + taskList.forEach(r -> { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(r.getTask_id().toString()) + .task_code(r.getTask_code()) + .task_type(r.getAcs_task_type()) + .start_device_code(r.getPoint_code1()) + .next_device_code(r.getPoint_code2()) + .start_device_code2(r.getPoint_code3()) + .next_device_code2(r.getPoint_code4()) + .vehicle_code(r.getVehicle_code()) + .priority(r.getPriority()) + .remark(r.getRemark()) + .product_area(r.getProduct_area()) + .agv_system_type("2") + .build(); + resultList.add(dto); + }); + return resultList; + } + + @Override + public void updateTaskStatus(JSONObject taskObj, String status) { + + + } + + @Override + public String createTask(JSONObject form) { + Assert.notNull(form, "请求参数不能为空"); + String task_type = form.getString("task_type"); + if (StrUtil.isBlank(task_type)) { + throw new BadRequestException("业务类型不能为空"); + } + String point_code1 = form.getString("point_code1"); + if (StrUtil.isBlank(point_code1)) { + throw new BadRequestException("起点不能为空"); + } + String point_code2 = form.getString("point_code2"); + if (StrUtil.isBlank(point_code2)) { + throw new BadRequestException("下一点不能为空"); + } + String point_code3 = form.getString("point_code3"); + + String point_code4 = form.getString("point_code4"); + + String vehicle_code = form.getString("vehicle_code"); + if (StrUtil.isBlank(vehicle_code)) { + throw new BadRequestException("载具号不能为空"); + } + JSONObject json = new JSONObject(); + json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_type", form.getString("task_type")); + json.put("vehicle_code", form.getString("vehicle_code")); + String task_status = form.getString("task_status"); + if (StrUtil.isEmpty(task_status)) { + json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + } else { + json.put("task_status", task_status); + } + json.put("point_code1", point_code1); + json.put("point_code2", point_code2); + json.put("point_code3", point_code3); + json.put("point_code4", point_code4); + json.put("handle_class", this.getClass().getName()); + json.put("create_id", SecurityUtils.getCurrentUserId()); + json.put("create_name", SecurityUtils.getCurrentUsername()); + json.put("create_time", DateUtil.now()); + json.put("priority", "1"); + json.put("acs_task_type", "9"); + json.put("response_param", form.getString("truss_type")); + json.put("request_param", form.getString("request_param")); + taskService.save(json.toJavaObject(SchBaseTask.class)); + //如果目标点位没有空位先创建不下发 + if (form.getBoolean("isSend")) { + this.immediateNotifyAcs(json.getString("task_id")); + } + return json.getString("task_id"); + } + + @Override + public void forceFinish(String task_id) { + + } + + @Override + public void cancel(String task_id) { + + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxqTask.java new file mode 100644 index 000000000..d144ad366 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/packingArea/ZxqTask.java @@ -0,0 +1,191 @@ +package org.nl.b_lms.sch.tasks.packingArea; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.productionplan.service.IpdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + + +/** + * 待检区到装箱区搬运任务 + * + * @author gbx + * @since 2024-02-01 + */ +@Service() +@RequiredArgsConstructor +@Slf4j +public class ZxqTask extends AbstractAcsTask { + @Resource + private IschBaseTaskService taskService; + @Resource + private ZxDjwTask zxDjwTask; + + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private IpdmBiSubpackagerelationService subpackageRelationService; + + + private final String THIS_CLASS = ZxqTask.class.getName(); + + @Override + public List addTask() { + ArrayList resultList = new ArrayList<>(); + List taskList = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, 0) + ); + taskList.forEach(r -> { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(r.getTask_id().toString()) + .task_code(r.getTask_code()) + .task_type(r.getAcs_task_type()) + .start_device_code(r.getPoint_code1()) + .next_device_code(r.getPoint_code2()) + .start_device_code2(r.getPoint_code3()) + .next_device_code2(r.getPoint_code4()) + .vehicle_code(r.getVehicle_code()) + .priority(r.getPriority()) + .remark(r.getRemark()) + .product_area(r.getProduct_area()) + .agv_system_type("2") + .build(); + resultList.add(dto); + }); + return resultList; + } + + @Override + public void updateTaskStatus(JSONObject taskObj, String status) { + + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() + .eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false); + if (schBaseTask == null) { + throw new BadRequestException("待检区到空载具缓存位搬运空载具桁架任务更新接口任务号为空!"); + } + if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + // 更新任务状态为执行中 + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + taskService.update(schBaseTask); + } + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + //1.更改任务状态为完成 + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + taskService.update(schBaseTask); + //2.改变起点点位状态 + packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); + //更新库存记录 + packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); + //todo 3.空木箱出库任务中,回调判断装箱区是否存在木箱号对应的子卷,如果存在,就创建搬运任务 + //4.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱位,否,什么都不做 + PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService.getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); + if (pdmBiSubpackagerelation != null) { + //查询目标点位信息 + BstIvtPackageinfoivt zxqPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code2())); + //查询装箱对接位的木箱号和区域与子卷对应的木箱号与区域是否匹配 + BstIvtPackageinfoivt zxdjwPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getContainer_name, pdmBiSubpackagerelation.getPackage_box_sn()).eq(BstIvtPackageinfoivt::getBlock, zxqPoint.getBlock())); + if (zxdjwPoint != null) { + //创建搬运任务到装箱位 + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + jo.put("point_code1", schBaseTask.getPoint_code2()); + jo.put("point_code2", zxdjwPoint.getPoint_code()); + jo.put("vehicle_code", schBaseTask.getVehicle_code()); + zxDjwTask.createTask(jo); + } + } + } + + } + + @Override + public String createTask(JSONObject form) { + Assert.notNull(form, "请求参数不能为空"); + String task_type = form.getString("task_type"); + if (StrUtil.isBlank(task_type)) { + throw new BadRequestException("业务类型不能为空"); + } + String point_code1 = form.getString("point_code1"); + if (StrUtil.isBlank(point_code1)) { + throw new BadRequestException("起点不能为空"); + } + String point_code2 = form.getString("point_code2"); + if (StrUtil.isBlank(point_code2)) { + throw new BadRequestException("下一点不能为空"); + } + String point_code3 = form.getString("point_code3"); + + String point_code4 = form.getString("point_code4"); + + String vehicle_code = form.getString("vehicle_code"); + if (StrUtil.isBlank(vehicle_code)) { + throw new BadRequestException("载具号不能为空"); + } + JSONObject json = new JSONObject(); + json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_type", form.getString("task_type")); + json.put("vehicle_code", form.getString("vehicle_code")); + String task_status = form.getString("task_status"); + if (StrUtil.isEmpty(task_status)) { + json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + } else { + json.put("task_status", task_status); + } + json.put("point_code1", point_code1); + json.put("point_code2", point_code2); + json.put("point_code3", point_code3); + json.put("point_code4", point_code4); + json.put("handle_class", this.getClass().getName()); + json.put("create_id", SecurityUtils.getCurrentUserId()); + json.put("create_name", SecurityUtils.getCurrentUsername()); + json.put("create_time", DateUtil.now()); + json.put("priority", "1"); + json.put("acs_task_type", "9"); + json.put("response_param", form.getString("truss_type")); + json.put("request_param", form.getString("request_param")); + taskService.save(json.toJavaObject(SchBaseTask.class)); + //如果目标点位没有空位先创建不下发 + if (form.getBoolean("isSend")) { + this.immediateNotifyAcs(json.getString("task_id")); + } + return json.getString("task_id"); + } + + @Override + public void forceFinish(String task_id) { + + } + + @Override + public void cancel(String task_id) { + + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/ContainerLevelEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/ContainerLevelEnum.java new file mode 100644 index 000000000..d6061dc38 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/ContainerLevelEnum.java @@ -0,0 +1,44 @@ +package org.nl.common.enums; +import java.util.Arrays; +import java.util.Optional; + +/** + * 子卷等级 + * @author gbx + * @since 2023-01-27 + */ +public enum ContainerLevelEnum { + // + BEST(1, "A+", "1"), + WELL(2, "A", "2"), + COMMON(3, "A-", "3"), + REWORK(4, "返切", "4"), + SCRAP(5, "报废", "5"), + CONTROL(6, "管制", "6"), + OTHER(7, "其他", "7"); + + private int index; + private String name; + private String code; + + public int getIndex() { return index;} + + public String getName() { + return name; + } + + public String getCode() { + return code; + } + + ContainerLevelEnum(int index, String name, String code) { + this.index = index; + this.name = name; + this.code = code; + } + + public static ContainerLevelEnum getType(String type) { + Optional first = Arrays.stream(ContainerLevelEnum.values()).filter(a -> a.getCode().equals(type)).findFirst(); + return first.orElse(ContainerLevelEnum.OTHER); + } +} \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java new file mode 100644 index 000000000..d1e5c5865 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java @@ -0,0 +1,48 @@ +package org.nl.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; + +import java.util.Map; + +/** + * 装箱区点位库存枚举 + * + * @author gbx + * @since 2024-01-31 + */ +@AllArgsConstructor +@Getter +public enum PackageInfoIvtEnum { + //点位类型 + POINT_STATUS(MapOf.of("满轴缓存位", "1", "空载具缓存位", "2", "待检区", "3", "管制区", "4", "装箱区", "5", "装箱位", "6")), + + TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)", "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709")), + //是否 + IS_USED(MapOf.of("启用", "1", "未启用", "0")), + //位置 + POINT_LOCATION(MapOf.of("上", "0", "下", "1")), + //库存状态 + IVT_STATUS(MapOf.of("空", "0", "1", "空载具", "2", "有子卷")); + private Map code; + + public String code(String desc) { + String code = this.getCode().get(desc); + if (StringUtils.isNotEmpty(code)) { + return code; + } + throw new BadRequestException(this.name() + "对应类型" + desc + "未定义"); + } + + public String check(String code) { + for (Map.Entry entry : this.getCode().entrySet()) { + if (entry.getValue().equals("code")) { + return entry.getValue(); + } + } + throw new BadRequestException(this.name() + "对应类型" + code + "未定义"); + } +} \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index 6967c7a58..83586570a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -219,7 +219,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl sysDictMapper.remove(new QueryWrapper().eq("para1", menu.getMenuId()).eq("code", DictConstantPool.DICT_SYS_CODE)); } if (!resources.getTitle().equals(menu.getTitle())) { - sysDictMapper.update(new UpdateWrapper().set("label", resources.getTitle()).eq("para1", menu.getMenuId()).eq("code", DictConstantPool.DICT_SYS_CODE)); + sysDictMapper.update(new UpdateWrapper().set("label", resources.getTitle()).eq("para1", menu.getMenuId()) + .eq("code", DictConstantPool.DICT_SYS_CODE)); } menu.setTitle(resources.getTitle()); menu.setComponent(resources.getComponent()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index fdbd8f9b9..87bee4625 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -29,12 +29,16 @@ public class AcsToWmsController { @PostMapping("/status") @Log(value = "ACS给WMS反馈任务状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) - @SaIgnore public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); } + + + + + @PostMapping("/orderFinish") @Log(value = "ACS给WMS下发工单完成状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @@ -137,4 +141,13 @@ public class AcsToWmsController { } + + @PostMapping("/sendProductToFirstFloor") + @Log(value = "成品子卷到达一楼输送线", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) + @SaIgnore + public ResponseEntity sendProductToFirstFloor(@RequestBody JSONObject json) { + return new ResponseEntity<>(acsToWmsService.sendProductToFirstFloor(json), HttpStatus.OK); + } + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index f1615091f..dbf787bfb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -79,6 +79,9 @@ public interface AcsToWmsService { */ JSONObject shipDeviceUpdate(JSONObject whereJson); + + + /** * ACS客户端--->LMS服务端 * 输送线光电无货上报 @@ -105,4 +108,17 @@ public interface AcsToWmsService { * 点位初始化 */ void initPoint(); + + + + /** + * ACS客户端--->LMS服务端 + * 成品子卷到达一楼输送线 + * + * @param whereJson 条件 + * @return JSONObject + */ + JSONObject sendProductToFirstFloor(JSONObject whereJson); + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index ddc7fa02b..8870ddf45 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -7,11 +7,28 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; 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.LambdaUpdateWrapper; import com.google.common.collect.Interner; import com.google.common.collect.Interners; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.point.service.IschBasePointService; +import org.nl.b_lms.sch.point.service.impl.BstIvtPackageinfoivtServiceImpl; +import org.nl.b_lms.sch.point.service.impl.SchBasePointServiceImpl; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.task.service.impl.SchBaseTaskServiceImpl; +import org.nl.b_lms.sch.tasks.packingArea.MzhcwTask; +import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; @@ -38,11 +55,14 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -66,6 +86,83 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final ISysNoticeService noticeService; + + @Resource + private IschBaseTaskService taskService; + @Resource + private IschBasePointService pointService; + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + + @Resource + private MzhcwTask mzhcwTask; + + + /** + * 成品子卷到达一楼输送线 + */ + @Override + public JSONObject sendProductToFirstFloor(JSONObject whereJson) { + log.info("sendProductToFirstFloor--------------------------:" + whereJson.toString()); + JSONObject result = new JSONObject(); + String task_code1 = whereJson.getString("task_code1"); + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(StringUtils.isNotBlank(task_code1), SchBaseTask::getTask_code, task_code1)); + if (schBaseTask == null) { + throw new BadRequestException("接口sendProductToFirstFloor,任务号为空!"); + } + // JSONObject whereJson 应该传子卷信息,子卷等级,载具号,任务号,车间号 + // 先查询满轴缓存位是否有可用库位,有创建搬运任务 + // 任务完成创建空载具补充到输送线桁架任务,子卷搬运至待检区或或管制区agv任务 + // 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发; + // 这个情况是有agv任务在搬去待检区或管制区的路上,还没有更新任务状态;需要查询是否有这种任务,等这个任务更新完后, + // 再补发之前创建的输送线到满轴缓存位任务; + //1.查询满轴缓存位是否有空位 + List bstIvtPackageinfoivtList = packageinfoivtService + .list(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + JSONObject jo = new JSONObject(); + //todo 添加任务类型 + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); + //一楼到输送线任务的目标点为当前位置,为起点 + jo.put("point_code1", schBaseTask.getPoint_code2()); + //任意一个满轴缓存位为终点 + jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code()); + //获取子卷号 + jo.put("vehicle_code", whereJson.getString("container_name1")); + if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { + jo.put("isSend", true); + mzhcwTask.createTask(jo); + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + return result; + } else { + //满轴缓存位点位 + List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))); + //todo 查找正在搬运到待检区的任务,假设只有一个,现场其实有多个车正在搬运过去 + List taskList = taskService.list(new LambdaUpdateWrapper() + //执行中 + .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .and( + r -> r.in(SchBaseTask::getPoint_code1, packageinfoivtList) + )); + // 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发; + List existTaskList = taskService.list(new LambdaUpdateWrapper() + //是否存在已创建的目标点相同的未下发的任务 + .eq(SchBaseTask::getPoint_code2, taskList.get(0).getPoint_code1()) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())); + if (CollectionUtils.isEmpty(existTaskList)) { + jo.put("point_code2", taskList.get(0).getPoint_code1()); + jo.put("isSend", false); + mzhcwTask.createTask(jo); + } + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + return result; + } + } + + /** * task_id:任务标识 * task_code:任务编码 @@ -1247,11 +1344,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { WQLObject.getWQLObject("st_ivt_shaftivt").update(rgv_device); //如果套管工位有货且套轴区域无轴,搬运一根轴到穿拔轴机上 - if (rgv_device.getIntValue("have_qzz") == 0){ + if (rgv_device.getIntValue("have_qzz") == 0) { //判断当前穿拔轴机构上是否存在可用的气涨轴 String cbj_qzz = cbz_jo.getString("have_qzz"); //判断是否存在未完成的成品下卷任务 - JSONObject container_jo = WQLObject.getWQLObject("sch_base_task").query("task_type = '010605' AND product_area = '"+product_area+"' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject container_jo = WQLObject.getWQLObject("sch_base_task").query("task_type = '010605' AND product_area = '" + product_area + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); if ("0".equals(cbj_qzz) && ObjectUtil.isEmpty(container_jo)) { PaperTrussTask paperTrussTask = SpringContextHolder.getBean(PaperTrussTask.class); //查询套管工位的库存信息 @@ -1282,6 +1379,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + //创建气胀轴放货任务 private JSONObject createTask(JSONObject result, String product_area, JSONObject cbz_jo, String cbz_size, String cbz_generation) { JSONObject jo = new JSONObject(); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java index 7d4d78a83..2394deb59 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java @@ -114,4 +114,12 @@ public class MesToLmsController { } + @PostMapping("/sendTargetHouse") + @Log("MES传递给LMS入线边库或者入成品库") + @SaIgnore + public ResponseEntity sendTargetHouse(@RequestBody JSONObject jo) { + return new ResponseEntity<>(mesToLmsService.sendTargetHouse(jo), HttpStatus.OK); + } + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java index fd296d665..6e3073fb8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java @@ -62,4 +62,12 @@ public interface MesToLmsService { JSONObject sendAuditResult(JSONObject param); JSONObject sendProcessInfo(JSONObject param); + + /** + * MES传递给LMS入线边库或者入成品库 + */ + JSONObject sendTargetHouse(JSONObject param); + + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 8627e526f..273fe01c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -7,9 +7,18 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.ProcessTask; +import org.nl.b_lms.sch.tasks.packingArea.DjqTask; +import org.nl.b_lms.sch.tasks.packingArea.GzqTask; +import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -28,8 +37,11 @@ import org.nl.wms.st.instor.service.impl.ProductScrapServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.HashMap; import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -42,6 +54,15 @@ public class MesToLmsServiceImpl implements MesToLmsService { private final InService inService; + @Resource + private DjqTask djqTask; + @Resource + private GzqTask gzqTask; + + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + + /** * 生箔烘箱: * 母卷批次创建信息发送智能物流(MES生箔工序Move In) @@ -1470,68 +1491,68 @@ public class MesToLmsServiceImpl implements MesToLmsService { throw new BadRequestException("传入的类型不能为空!"); } - JSONObject device_jo = WQLObject.getWQLObject("st_ivt_stpointivt").query("ext_code = '"+ResourceName+"'").uniqueResult(0); - if (ObjectUtil.isEmpty(device_jo)){ - throw new BadRequestException("未查询到["+ResourceName+"]应的表处机设备!"); + JSONObject device_jo = WQLObject.getWQLObject("st_ivt_stpointivt").query("ext_code = '" + ResourceName + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(device_jo)) { + throw new BadRequestException("未查询到[" + ResourceName + "]应的表处机设备!"); } ProcessTask processTask = SpringContextHolder.getBean(ProcessTask.class); //上料 - if ("1".equals(Type)){ + if ("1".equals(Type)) { String up_scroll = device_jo.getString("up_scroll"); String up_pcsn = device_jo.getString("up_pcsn"); - if (StrUtil.isNotEmpty(up_pcsn)){ - throw new BadRequestException("LMS系统上【"+ResourceName+"】表处机上还存在母卷号,不能进行上料!"); + if (StrUtil.isNotEmpty(up_pcsn)) { + throw new BadRequestException("LMS系统上【" + ResourceName + "】表处机上还存在母卷号,不能进行上料!"); } //查询母卷所在点位 JSONObject jsonCoolIvt = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0); JSONObject form = new JSONObject(); - if (StrUtil.isEmpty(up_scroll)){ + if (StrUtil.isEmpty(up_scroll)) { //取满放满 - form.put("point_code1",jsonCoolIvt.getString("point_code")); - form.put("point_code2",device_jo.getString("point_code")); - form.put("task_type","010702"); - form.put("material_code",jsonCoolIvt.getString("container_name")); - form.put("vehicle_code",jsonCoolIvt.getString("full_vehicle_code")); - form.put("product_area",device_jo.getString("product_area")); - }else { + form.put("point_code1", jsonCoolIvt.getString("point_code")); + form.put("point_code2", device_jo.getString("point_code")); + form.put("task_type", "010702"); + form.put("material_code", jsonCoolIvt.getString("container_name")); + form.put("vehicle_code", jsonCoolIvt.getString("full_vehicle_code")); + form.put("product_area", device_jo.getString("product_area")); + } else { //取满取空放满放空 - form.put("point_code1",jsonCoolIvt.getString("full_point_code")); - form.put("point_code2",device_jo.getString("point_code")); - form.put("point_code3",device_jo.getString("point_code")); + form.put("point_code1", jsonCoolIvt.getString("full_point_code")); + form.put("point_code2", device_jo.getString("point_code")); + form.put("point_code3", device_jo.getString("point_code")); //判断对应空轴点位是否为空,为空用当前点位,不为空查询其他点位 - if (jsonCoolIvt.getString("empty_point_status").equals("01")){ - form.put("point_code4",jsonCoolIvt.getString("empty_point_code")); - }else { + if (jsonCoolIvt.getString("empty_point_status").equals("01")) { + form.put("point_code4", jsonCoolIvt.getString("empty_point_code")); + } else { JSONObject map = new JSONObject(); map.put("flag", "6"); map.put("product_area", device_jo.getString("product_area")); JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); - form.put("point_code4",jsonIvt.getString("empty_point_code")); + form.put("point_code4", jsonIvt.getString("empty_point_code")); } - form.put("task_type","010701"); - form.put("material_code",jsonCoolIvt.getString("container_name")); - form.put("vehicle_code",jsonCoolIvt.getString("full_vehicle_code")); - form.put("product_area",device_jo.getString("product_area")); + form.put("task_type", "010701"); + form.put("material_code", jsonCoolIvt.getString("container_name")); + form.put("vehicle_code", jsonCoolIvt.getString("full_vehicle_code")); + form.put("product_area", device_jo.getString("product_area")); } processTask.createTask(form); } //退料 - if ("2".equals(Type)){ + if ("2".equals(Type)) { //取满取空放满放空 JSONObject form = new JSONObject(); JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("product_area", device_jo.getString("product_area")); JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); - form.put("point_code1",device_jo.getString("point_code")); + form.put("point_code1", device_jo.getString("point_code")); //寻找可用的冷却区满轴点位 - form.put("point_code2",jsonIvt.getString("full_point_code")); - form.put("task_type","010704"); - form.put("material_code",device_jo.getString("up_pcsn")); - form.put("vehicle_code",device_jo.getString("up_scroll")); - form.put("product_area",device_jo.getString("product_area")); + form.put("point_code2", jsonIvt.getString("full_point_code")); + form.put("task_type", "010704"); + form.put("material_code", device_jo.getString("up_pcsn")); + form.put("vehicle_code", device_jo.getString("up_scroll")); + form.put("product_area", device_jo.getString("product_area")); processTask.createTask(form); } @@ -1547,4 +1568,68 @@ public class MesToLmsServiceImpl implements MesToLmsService { log.info("sendProcessInfo接口输出参数为:-------------------" + resultParam.toString()); return resultParam; } + + @Override + public JSONObject sendTargetHouse(JSONObject param) { + log.info("sendTargetHouse输入参数为:-------------------" + param.toString()); + JSONObject resultParam = new JSONObject(); + try { + String containerName = param.getString("ContainerName"); + String TargetHouse = param.getString("TargetHouse"); + + if (StringUtils.isBlank(containerName)) { + throw new BadRequestException("传入的母卷号不能为空!"); + } + if (StringUtils.isBlank(TargetHouse)) { + throw new BadRequestException("传入的目标库不能为空!"); + } + //待检区和管制区库位信息 + List bstIvtPackageinfoivtList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + //子卷信息 + BstIvtPackageinfoivt containerInfo = + bstIvtPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()).get(0); + JSONObject toDjqTask = new JSONObject(); + toDjqTask.put("vehicle_code", containerName); + //0 管制区 1待检区 + if ("0".equals(TargetHouse)) { + if (containerInfo.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))) { + List djqList = bstIvtPackageinfoivtList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")) && r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))).collect(Collectors.toList()); + //待检区有空位,搬到待检区 + if (CollectionUtils.isNotEmpty(djqList)) { + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区")); + toDjqTask.put("point_code1", containerInfo.getPoint_code()); + toDjqTask.put("point_code2", djqList.get(0).getPoint_code()); + djqTask.createTask(toDjqTask); + } + } + + } else if ("1".equals(TargetHouse)) { + if (containerInfo.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("管制区"))) { + List gzqList = bstIvtPackageinfoivtList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("管制区")) && r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))).collect(Collectors.toList()); + //管制区有空位 + if (CollectionUtils.isNotEmpty(gzqList)) { + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区")); + toDjqTask.put("point_code1", containerInfo.getPoint_code()); + toDjqTask.put("point_code2", gzqList.get(0).getPoint_code()); + gzqTask.createTask(toDjqTask); + } + + } + } + resultParam.put("RTYPE", "S"); + resultParam.put("Code", "0"); + resultParam.put("RTMSG", "操作成功!"); + } catch (Exception e) { + resultParam.put("RTYPE", "E"); + resultParam.put("Code", "1"); + resultParam.put("RTMSG", "操作失败!," + e.getMessage()); + } + log.info("sendTargetHouse接口输出参数为:-------------------" + resultParam); + return resultParam; + } + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java index a7383d9a1..b7a66b33c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java @@ -85,71 +85,6 @@ public class CutTrussTask extends AbstractAcsTask { String task_id = taskObj.getString("task_id"); JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); - if (StrUtil.equals(status, "0")) { - // 更新删除字段 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); - - //桁架标准任务 - if ("010403".equals(jsonTask.getString("task_type"))) { - //更新入站气涨轴的分切计划状态 - JSONArray plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status IN ('04','05')").getResultJSONArray(0); - if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:入站中或入站完成的分切计划!"); - } - for (int i = 0; i < plan_jo.size(); i++) { - JSONObject plan_row = plan_jo.getJSONObject(i); - plan_row.put("status", "03"); - plan_row.put("end_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(plan_row); - } - - //更新出站气涨轴的分切计划状态 - JSONArray plan_jo2 = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code2") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status = '06'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(plan_jo2)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code2") + "状态为:出站中的分切计划!"); - } - for (int i = 0; i < plan_jo2.size(); i++) { - JSONObject plan_row = plan_jo2.getJSONObject(i); - plan_row.put("status", "05"); - plan_row.put("end_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(plan_row); - } - } - - //分切>输送线 子卷出站 - if ("010404".equals(jsonTask.getString("task_type"))) { - if (!jsonTask.getString("vehicle_code").contains("废箔")) { - //更新出站气涨轴的分切计划状态 - JSONArray plan_jo2 = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status = '06'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(plan_jo2)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:出站中的分切计划!"); - } - for (int i = 0; i < plan_jo2.size(); i++) { - JSONObject plan_row = plan_jo2.getJSONObject(i); - plan_row.put("status", "05"); - plan_row.put("end_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(plan_row); - } - } - } - //分切>输送线 子卷入站 - if ("010405".equals(jsonTask.getString("task_type"))) { - //更新入站气涨轴的分切计划状态 - JSONArray plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status IN ('04','05') ").getResultJSONArray(0); - if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:入站中或入站完成的分切计划!"); - } - for (int i = 0; i < plan_jo.size(); i++) { - JSONObject plan_row = plan_jo.getJSONObject(i); - plan_row.put("status", "03"); - plan_row.put("end_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(plan_row); - } - } - } - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); @@ -165,7 +100,6 @@ public class CutTrussTask extends AbstractAcsTask { jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); - //桁架标准任务,双工位任务 if ("010403".equals(jsonTask.getString("task_type"))) { //更新分切机对应位置的气涨轴 @@ -264,84 +198,6 @@ public class CutTrussTask extends AbstractAcsTask { cutConveyorTask.createTask(form); } - //子卷入站 - if ("010405".equals(jsonTask.getString("task_type"))) { - //更新输送线的气涨轴编码 - JSONObject delivery_point = WQLObject.getWQLObject("ST_IVT_DeliveryPointIvt").query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(delivery_point)) { - throw new BadRequestException("未查询到对应的输送线点位!"); - } - delivery_point.put("qzzno", ""); - delivery_point.put("point_status", "02"); - WQLObject.getWQLObject("ST_IVT_DeliveryPointIvt").update(delivery_point); - - //更新入站气涨轴的分切计划状态 - JSONArray plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status IN ('04','05') ").getResultJSONArray(0); - if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "对应的分切计划!"); - } - for (int i = 0; i < plan_jo.size(); i++) { - JSONObject plan_row = plan_jo.getJSONObject(i); - plan_row.put("status", "05"); - plan_row.put("end_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(plan_row); - } - - //如果桁架任务执行完,右侧的输送线上存在气涨轴,则生成一个输送出的任务,防止左侧空载具挡住右侧气涨轴进行横移 - log.debug("如果桁架任务执行完,缓存位的输送线上存在气涨轴,则对上料位的空载具生成一个输送出的任务"); - char dtl_type = jsonTask.getString("point_code1").charAt(jsonTask.getString("point_code1").length() - 1); - if (Integer.valueOf(String.valueOf(dtl_type)) % 2 != 0) { - String point_location = delivery_point.getString("point_location"); - String product_area = delivery_point.getString("product_area"); - String sort_seq = delivery_point.getString("sort_seq"); - JSONObject right_point = WQL.getWO("PDA_02") - .addParam("point_location", point_location) - .addParam("point_code", jsonTask.getString("point_code1")) - .addParam("product_area", product_area) - .addParam("sort_seq", sort_seq) - .addParam("find_type", "3") - .addParam("flag", "17").process().uniqueResult(0); - if (ObjectUtil.isNotEmpty(right_point)) { - log.debug("生成一个输送线出库任务"); - //生成一个输送线出库任务 - JSONObject form = new JSONObject(); - form.put("point_code1", jsonTask.getString("point_code1")); - JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '" + delivery_point.getString("product_area") + "' AND point_type = '7'").uniqueResult(0); - form.put("point_code2", ss_jo.getString("point_code")); - if (StrUtil.isEmpty(delivery_point.getString("vehicle_code"))) { - throw new BadRequestException("点位:" + delivery_point.getString("point_code") + "载具号为空!"); - } - form.put("vehicle_code2", delivery_point.getString("vehicle_code")); - //分切输送出 - form.put("task_type", "010401"); - form.put("product_area", delivery_point.getString("product_area")); - cutConveyorTask.createTask(form); - } else { - - right_point = WQL.getWO("PDA_02") - .addParam("point_location", point_location) - .addParam("point_code", jsonTask.getString("point_code1")) - .addParam("product_area", product_area) - .addParam("sort_seq", sort_seq) - .addParam("find_type", "4") - .addParam("flag", "18").process().uniqueResult(0); - if (ObjectUtil.isNotEmpty(right_point)) { - //判断对应缓存位是否存在需要末次下卷或者废箔下卷的任务 - JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("vehicle_code2 = '" + right_point.getString("vehicle_code") + "' AND is_delete = '0' AND task_status = '02'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(task_jo)) { - if ("010404".equals(task_jo.getString("task_type"))) { - //出站 - task_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - task_jo.put("point_code2", jsonTask.getString("point_code1")); - task_jo.put("vehicle_code2", delivery_point.getString("vehicle_code")); - WQLObject.getWQLObject("sch_base_task").update(task_jo); - new CutTrussTask().immediateNotifyAcs(null); - } - } - } - } - } - } } }