From a1b892ff1b349af757f351b7db770005b78838b6 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 4 Aug 2023 17:33:33 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9APC=E6=B5=B7=E6=9F=94=E5=8D=8A?= =?UTF-8?q?=E6=88=90=E5=93=81=E7=9B=98=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/AcsTaskEnum.java | 1 + .../org/nl/wms/storage_manage/CHECKEnum.java | 2 + .../storage_manage/semimanage/TASKEnum.java | 5 + .../check/StIvtCheckmstHrBcpController.java | 76 ++++ .../check/IStIvtCheckdtlHrBcpService.java | 36 ++ .../check/IStIvtCheckmstHrBcpService.java | 69 +++ .../service/check/dao/StIvtCheckdtlHrBcp.java | 162 +++++++ .../service/check/dao/StIvtCheckmstHrBcp.java | 168 +++++++ .../dao/mapper/StIvtCheckdtlHrBcpMapper.java | 24 + .../dao/mapper/StIvtCheckmstHrBcpMapper.java | 16 + .../mapper/xml/StIvtCheckdtlHrBcpMapper.xml | 57 +++ .../mapper/xml/StIvtCheckmstHrBcpMapper.xml | 5 + .../service/check/dto/CheckHrQuery.java | 35 ++ .../impl/StIvtCheckdtlHrBcpServiceImpl.java | 89 ++++ .../impl/StIvtCheckmstHrBcpServiceImpl.java | 336 ++++++++++++++ .../java/org/nl/wms/storage_manage/stivt.xls | Bin 431616 -> 432128 bytes .../semiproductHrCheck/AddDialog.vue | 338 ++++++++++++++ .../semiproductHrCheck/CheckDialog.vue | 423 ++++++++++++++++++ .../semiproductHrCheck/StructIvt.vue | 155 +++++++ .../semiproducthr/semiproductHrCheck/check.js | 136 ++++++ .../semiproductHrCheck/index.vue | 322 +++++++++++++ 21 files changed, 2455 insertions(+) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/check/StIvtCheckmstHrBcpController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckdtlHrBcpService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckmstHrBcpService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckdtlHrBcp.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckmstHrBcp.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckdtlHrBcpMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckmstHrBcpMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckdtlHrBcpMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckmstHrBcpMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dto/CheckHrQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckdtlHrBcpServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckmstHrBcpServiceImpl.java create mode 100644 mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/AddDialog.vue create mode 100644 mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/CheckDialog.vue create mode 100644 mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/StructIvt.vue create mode 100644 mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/check.js create mode 100644 mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/index.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index cc08b085..99c52985 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -42,6 +42,7 @@ public enum AcsTaskEnum { TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"), TASK_STRUCT_HR_IN("26","入库-海柔半成品-生产入库"), TASK_STRUCT_HR_OUT("27","出库-海柔半成品-生产出库"), + TASK_STRUCT_HR_CHECK("28","海柔半成品-盘点"), TASK_STRUCT_CP_CHECK("13","-盘点"), TASK_WASH_LACK("20","清洗机-缺料请求"), TASK_WASH_EMP("21","清洗机-空框请求"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/CHECKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/CHECKEnum.java index 3f00c9ae..bc6c140f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/CHECKEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/CHECKEnum.java @@ -19,6 +19,8 @@ public enum CHECKEnum { BILL_TYPE(MapOf.of("计划盘点", "31", "临时盘点", "32")), //单据状态 BILL_STATUS(MapOf.of("生成", "10", "盘点中", "30", "完成", "99")), + //海柔盘点结果 + CHECK_RESULT(MapOf.of("正常", "0", "异常", "1")), //单据状态 DTL_STATUS(MapOf.of("生成", "01", "盘点中", "04", "已盘点", "05", "异常处理中", "06", "异常处理完成" , "07", "确认完成", "99")), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java index c3a8c11e..e8c73611 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java @@ -15,6 +15,7 @@ import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpServi import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; import org.nl.wms.storage_manage.semimanage.service.shutFrame.IStIvtShutframeinvBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckmstHrBcpService; import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpInService; import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpOutService; @@ -76,6 +77,10 @@ public enum TASKEnum implements FunctionStrategy { IStIvtIostorinvHrBcpOutService bean = SpringContextHolder.getBean(IStIvtIostorinvHrBcpOutService.class); bean.taskOperate(form); }), + HR_CP_CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_HR_CHECK.getCode().equals(type), form -> { + IStIvtCheckmstHrBcpService bean = SpringContextHolder.getBean(IStIvtCheckmstHrBcpService.class); + bean.taskOperate(form); + }), ; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/check/StIvtCheckmstHrBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/check/StIvtCheckmstHrBcpController.java new file mode 100644 index 00000000..a969fdba --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/check/StIvtCheckmstHrBcpController.java @@ -0,0 +1,76 @@ +package org.nl.wms.storage_manage.semimanagehr.controller.check; + + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckmstHrBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.check.dto.CheckHrQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 盘点单主表 前端控制器 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@RestController +@RequestMapping("/api/bcp/checkHr") +public class StIvtCheckmstHrBcpController { + + @Autowired + private IStIvtCheckmstHrBcpService checkmstBcpService; + + @GetMapping + @Log("查询盘点单") + //("查询盘点单") + public ResponseEntity query(CheckHrQuery query, PageQuery page) { + return new ResponseEntity<>(checkmstBcpService.pageQuery(query, page), HttpStatus.OK); + } + + @PostMapping + @Log("创建盘点单") + //("创建盘点单") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + checkmstBcpService.create(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getCheckDtl") + @Log("查询盘点明细") + //("查询盘点明细") + public ResponseEntity getCheckDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(checkmstBcpService.getCheckDtl(whereJson), HttpStatus.OK); + } + + @PostMapping("/update") + @Log("修改盘点单") + //("修改盘点单") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + checkmstBcpService.update(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/delete") + @Log("删除盘点单") + //("删除盘点单") + public ResponseEntity delete(@RequestBody Long[] ids){ + checkmstBcpService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/issueTask") + @Log("下发任务") + //("下发任务") + public ResponseEntity issueTask(@RequestBody JSONObject whereJson) { + checkmstBcpService.issueTask(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckdtlHrBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckdtlHrBcpService.java new file mode 100644 index 00000000..0531daa0 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckdtlHrBcpService.java @@ -0,0 +1,36 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckdtlHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 服务类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface IStIvtCheckdtlHrBcpService extends IService { + + /** + * 主单据使用 创建明细 + * @param row / + * @param mst / + * @return / + */ + double create(JSONArray row, StIvtCheckmstHrBcp mst); + + /** + * 获取明细 + * @param map / + * @return / + */ + List getCheckDtl(JSONObject map); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckmstHrBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckmstHrBcpService.java new file mode 100644 index 00000000..d47fd65a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/IStIvtCheckmstHrBcpService.java @@ -0,0 +1,69 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dto.CheckHrQuery; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单主表 服务类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface IStIvtCheckmstHrBcpService extends IService { + + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(CheckHrQuery query, PageQuery page); + + /** + * 创建盘点单 + * @param jo / + */ + void create(JSONObject jo); + + /** + * 获取盘点单明细 + * @param map + * @return / + */ + List getCheckDtl(JSONObject map); + + /** + * 修改盘点单 + * @param map / + */ + void update(JSONObject map); + + /** + * 删除 + * @param ids + * { + * 主表id.. + * } + */ + void delete(Long[] ids); + + /** + * 下发任务 + * @param jo / + */ + void issueTask(JSONObject jo); + + /** + * 任务反馈处理 + * @param jo / + */ + void taskOperate(JSONObject jo); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckdtlHrBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckdtlHrBcp.java new file mode 100644 index 00000000..d48f0c01 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckdtlHrBcp.java @@ -0,0 +1,162 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 盘点单明细表 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkdtl_hr_bcp") +public class StIvtCheckdtlHrBcp implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 盘点单明细id + */ + @TableId + private String checkdtl_id; + + /** + * 盘点单标识 + */ + private String check_id; + + /** + * 盘点单号 + */ + private String check_code; + + /** + * 明细序号 + */ + private BigDecimal seq_no; + + /** + * 盘点库区 + */ + private String sect_id; + + /** + * 库区名称 + */ + private String sect_name; + + /** + * 盘点货位 + */ + private String struct_id; + + /** + * 货位名称 + */ + private String struct_name; + + /** + * 盘点站台 + */ + private String checkpoint_id; + + /** + * 存储载具标识 + */ + private String storagevehicle_id; + + /** + * 存储载具编码 + */ + private String storagevehicle_code; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 数量 + */ + private BigDecimal base_qty; + + /** + * 数量计量单位标识 + */ + private String qty_unit_id; + + /** + * 数量计量单位名称 + */ + private String qty_unit_name; + + /** + * 状态 + */ + private String status; + + /** + * 是否已下发 + */ + private String is_down; + + /** + * 盘点数量 + */ + private BigDecimal fac_qty; + + /** + * 盘点结果 + */ + private String check_result; + + /** + * 盘点人 + */ + private String check_optid; + + /** + * 盘点人姓名 + */ + private String check_optname; + + /** + * 盘点时间 + */ + private String check_time; + + /** + * 异常是否处理 + */ + private Boolean is_process; + + /** + * 异常处理方式 + */ + private String process_type; + + /** + * 异常处理人 + */ + private String process_optid; + + /** + * 处理时间 + */ + private String process_time; + + /** + * 任务标识 + */ + private String task_id; + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckmstHrBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckmstHrBcp.java new file mode 100644 index 00000000..95248c88 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/StIvtCheckmstHrBcp.java @@ -0,0 +1,168 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 盘点单主表 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkmst_hr_bcp") +public class StIvtCheckmstHrBcp implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 盘点单标识 + */ + @TableId + private String check_id; + + /** + * 盘点单号 + */ + private String check_code; + + /** + * 业务类型 + */ + private String buss_type; + + /** + * 盘点单类型 + */ + private String check_type; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 明细数 + */ + private BigDecimal dtl_num; + + /** + * 生成方式 + */ + private String create_mode; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 审核人 + */ + private String audit_optid; + + /** + * 审核人姓名 + */ + private String audit_optname; + + /** + * 审核时间 + */ + private String audit_time; + + /** + * 确认人 + */ + private String confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 备注 + */ + private String remark; + + /** + * 状态 + */ + private String status; + + /** + * 是否删除 + */ + private Boolean is_delete; + + /** + * 是否盘点有异 + */ + private Boolean is_nok; + + /** + * 是否已上传 + */ + private Boolean is_upload; + + /** + * 回传人 + */ + private String upload_optid; + + /** + * 回传入姓名 + */ + private String upload_optname; + + /** + * 回传时间 + */ + private String upload_time; + + /** + * 部门ID + */ + private String sysdeptid; + + /** + * 公司ID + */ + private String syscompanyid; + + /** + * 车间标识 + */ + private String workshop_id; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckdtlHrBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckdtlHrBcpMapper.java new file mode 100644 index 00000000..7fa79ee5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckdtlHrBcpMapper.java @@ -0,0 +1,24 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckdtlHrBcp; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface StIvtCheckdtlHrBcpMapper extends BaseMapper { + + List getCheckDtl(@Param("map") Map map); + + List queryCheckDtlByTask(@Param("map") Map map); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckmstHrBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckmstHrBcpMapper.java new file mode 100644 index 00000000..f1a27280 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/StIvtCheckmstHrBcpMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; + +/** + *

+ * 盘点单主表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface StIvtCheckmstHrBcpMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckdtlHrBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckdtlHrBcpMapper.xml new file mode 100644 index 00000000..ea82639b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckdtlHrBcpMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckmstHrBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckmstHrBcpMapper.xml new file mode 100644 index 00000000..3cf6b69e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dao/mapper/xml/StIvtCheckmstHrBcpMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dto/CheckHrQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dto/CheckHrQuery.java new file mode 100644 index 00000000..12369120 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/dto/CheckHrQuery.java @@ -0,0 +1,35 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class CheckHrQuery extends BaseQuery { + + + private String stor_id; + + private String status; + + private String check_type; + + private String check_code; + + private Boolean is_delete = false; + + + @Override + public void paramMapping() { + super.doP.put("check_code", QParam.builder().k(new String[]{"check_code"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckdtlHrBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckdtlHrBcpServiceImpl.java new file mode 100644 index 00000000..09b42e42 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckdtlHrBcpServiceImpl.java @@ -0,0 +1,89 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.CHECKEnum; +import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckdtlHrBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckdtlHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.mapper.StIvtCheckdtlHrBcpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Service +public class StIvtCheckdtlHrBcpServiceImpl extends ServiceImpl implements IStIvtCheckdtlHrBcpService { + + @Autowired + private IStIvtSectattrService sectattrService; + @Autowired + private IStIvtStructattrService structattrService; + + @Override + public double create(JSONArray rows, StIvtCheckmstHrBcp mst) { + double total_qty = 0; + + if (rows.size() > 0 && ObjectUtil.isNotEmpty(mst)) { + // 先删除在插入 + this.remove(new QueryWrapper().eq("check_id", mst.getCheck_id())); + + for (int i = 0; i < rows.size(); i++) { + String checkdtl_id = IdUtil.getStringId(); + StIvtCheckdtlHrBcp row = rows.getJSONObject(i).toJavaObject(StIvtCheckdtlHrBcp.class); + row.setCheckdtl_id(checkdtl_id); + row.setCheck_id(mst.getCheck_id()); + row.setCheck_code(mst.getCheck_code()); + row.setSeq_no(BigDecimal.valueOf(i + 1)); + row.setIs_down("0"); + + // 获取库区信息 + QueryWrapper sect_wrapper = new QueryWrapper<>(); + sect_wrapper.eq("sect_id", row.getSect_id()); + sect_wrapper.eq("is_used", true); + StIvtSectattr sectDao = sectattrService.getOne(sect_wrapper); + if (ObjectUtil.isEmpty(sectDao)) throw new BadRequestException("库区不存在或未启用!"); + row.setSect_name(sectDao.getSect_name()); + // 获取仓位信息 + QueryWrapper struct_wrapper = new QueryWrapper<>(); + struct_wrapper.eq("struct_id", row.getStruct_id()); + struct_wrapper.eq("is_used", true); + StIvtStructattr structDao = structattrService.getOne(struct_wrapper); + if (ObjectUtil.isEmpty(structDao)) throw new BadRequestException("仓位不存在或未启用!"); + row.setStruct_name(structDao.getStruct_name()); + + row.setStatus(CHECKEnum.DTL_STATUS.code("生成")); + this.save(row); + + //锁定货位 + structattrService.update(new UpdateWrapper().set("lock_type", "1").set("inv_code",mst.getCheck_code()).eq("struct_id", row.getStruct_id())); + } + } + return total_qty; + } + + @Override + public List getCheckDtl(JSONObject map) { + return this.baseMapper.getCheckDtl(map); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckmstHrBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckmstHrBcpServiceImpl.java new file mode 100644 index 00000000..2e2afe4c --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/check/impl/StIvtCheckmstHrBcpServiceImpl.java @@ -0,0 +1,336 @@ +package org.nl.wms.storage_manage.semimanagehr.service.check.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext_manage.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.storage_manage.CHECKEnum; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckdtlBcpMapper; +import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckdtlHrBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckmstHrBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckdtlHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.StIvtCheckmstHrBcp; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.mapper.StIvtCheckdtlHrBcpMapper; +import org.nl.wms.storage_manage.semimanagehr.service.check.dao.mapper.StIvtCheckmstHrBcpMapper; +import org.nl.wms.storage_manage.semimanagehr.service.check.dto.CheckHrQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + *

+ * 盘点单主表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Service +public class StIvtCheckmstHrBcpServiceImpl extends ServiceImpl implements IStIvtCheckmstHrBcpService { + + @Autowired + private IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 实物属性服务 + + @Autowired + private IStIvtCheckdtlHrBcpService checkdtlBcpService; // 盘点明细服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private StIvtCheckdtlHrBcpMapper checkdtlBcpMapper; // 明细mapper + + @Autowired + private SchBasePointMapper pointMapper; // 点位服务mapper + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private ISchBaseTaskService iSchBaseTaskService; // 任务服务 + + @Override + public Object pageQuery(CheckHrQuery query, PageQuery page) { + // 查询条件 + page.setSort("check_code,desc"); + page.setIsAsc(true); + // 分页查询 + Page pageQuery = this.page(page.build(), query.build()); + TableDataInfo build = TableDataInfo.build(pageQuery); + return build; + } + + @Override + @Transactional + public void create(JSONObject form) { + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + + // 调用主表 插入/更新方法 + StIvtCheckmstHrBcp checkmstYl = packageMstForm(new StIvtCheckmstHrBcp(), form); + this.save(checkmstYl); + + //调用明细表 插入方法 + checkdtlBcpService.create(rows, checkmstYl); + + } + + @Override + public List getCheckDtl(JSONObject map) { + return checkdtlBcpService.getCheckDtl(map); + } + + @Override + @Transactional + public void update(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("check_id")}, "请求参数不能为空"); + StIvtCheckmstHrBcp mst = form.toJavaObject(StIvtCheckmstHrBcp.class); + this.updateById(mst); + + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + // 调用明细表 插入/更新方法 + checkdtlBcpService.create(rows, mst); + } + + @Override + @Transactional + public void issueTask(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("checkdtl_id")}, "请求参数不能为空"); + + StIvtCheckdtlHrBcp dtl = checkdtlBcpService.getById(form.getString("checkdtl_id")); + + if (dtl.getIs_down().equals(IOSEnum.IS_USED.code("是"))) { + throw new BadRequestException("当前货位任务已下发!"); + } + + StIvtCheckmstHrBcp mst = this.getById(dtl.getCheck_id()); + + StIvtStructattr struct = structattrService.getOne( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getStruct_id, dtl.getStruct_id()) + ); + + // 生成任务 + String task_group_id = IdUtil.getStringId(); + PointEvent event = PointEvent.builder() + .acs_task_type("7") + .type(AcsTaskEnum.TASK_STRUCT_HR_CHECK) + .point_code1(struct.getStruct_code()) + .point_code3(struct.getStruct_code()) + .vehicle_code(dtl.getStoragevehicle_code()) + .task_group_id(task_group_id) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) dtl::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + + // 下发任务 + SchBaseTask taskDao = iSchBaseTaskService.getOne( + new QueryWrapper().lambda() + .eq(SchBaseTask::getTask_id, dtl.getTask_id()) + ); + + sendTask(taskDao); + + // 更新明细表 + dtl.setIs_down(IOSEnum.IS_USED.code("是")); + dtl.setStatus(CHECKEnum.BILL_STATUS.code("盘点中")); + checkdtlBcpService.updateById(dtl); + + mst.setStatus(CHECKEnum.BILL_STATUS.code("盘点中")); + this.updateById(mst); + } + + @Override + @Transactional + public void taskOperate(JSONObject form) { + String task_id = form.getString("task_id"); + String status = form.getString("status"); + + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 + + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + + // 更新明细 + StIvtCheckdtlHrBcp dtlDao = checkdtlBcpService.getOne( + new QueryWrapper().lambda() + .eq(StIvtCheckdtlHrBcp::getTask_id, task_id) + ); + + dtlDao.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + dtlDao.setCheck_result(CHECKEnum.CHECK_RESULT.code("正常")); + checkdtlBcpService.updateById(dtlDao); + + // 更新主表 + updateMst(dtlDao.getCheck_id()); + + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + // 执行中 + + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + + } + } + + @Override + @Transactional + public void delete(Long[] ids) { + for (Long id : ids) { + StIvtCheckmstHrBcp dao = this.getOne(new QueryWrapper().eq("check_id", id)); + dao.setIs_delete(true); + + //获取所有明细下的仓位解锁 + List dtl_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", id)); + dtl_list.stream() + .map(dtl -> dtl.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + this.updateById(dao); + } + } + + private void sendTask(SchBaseTask taskDao) { + JSONArray param = new JSONArray(); + param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao))); + // 1.下发任务 + WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class); + Map result = bean.issueTaskToAcs3(param); + + // 反馈失败报错 + if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) { + throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message")); + } + + // 2.更新任务状态 + taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode()); + iSchBaseTaskService.updateById(taskDao); + } + + @NotNull + private StIvtCheckmstHrBcp packageMstForm(StIvtCheckmstHrBcp checkmstYl, JSONObject whereJson) { + JSONArray rows = whereJson.getJSONArray("tableData"); + // 新增 + checkmstYl.setCheck_id(IdUtil.getStringId()); + checkmstYl.setCheck_code(CodeUtil.getNewCode("PD_CODE")); + checkmstYl.setBuss_type(whereJson.getString("check_type")); + checkmstYl.setCheck_type(checkmstYl.getBuss_type()); + + // 获取仓库信息 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("stor_id", whereJson.getString("stor_id")); + wrapper.eq("is_used", true); + StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper); + if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!"); + + checkmstYl.setStor_id(bsrealDao.getStor_id()); + checkmstYl.setStor_name(bsrealDao.getStor_name()); + checkmstYl.setDtl_num(BigDecimal.valueOf(rows.size())); + checkmstYl.setCreate_mode(CHECKEnum.CREATE_MODE.code("PC产生")); + checkmstYl.setStatus(CHECKEnum.BILL_STATUS.code("生成")); + checkmstYl.setCreate_id(SecurityUtils.getCurrentUserId()); + checkmstYl.setCreate_name(SecurityUtils.getCurrentNickName()); + checkmstYl.setCreate_time(DateUtil.now()); + checkmstYl.setIs_delete(false); + checkmstYl.setIs_upload(true); + // TODO 暂时写死 + checkmstYl.setSysdeptid("111"); + checkmstYl.setSyscompanyid("111"); + + checkmstYl.setRemark(whereJson.getString("remark")); + checkmstYl.setWorkshop_id(whereJson.getString("workshop_id")); + + return checkmstYl; + } + + private void updateMst(String check_id) { + + StIvtCheckmstHrBcp mstDao = this.getById(check_id); + + List dtlDaoList = checkdtlBcpService.list( + new QueryWrapper().lambda() + .eq(StIvtCheckdtlHrBcp::getCheck_id, check_id) + ); + + // 判断是否都为完成 + boolean is_status = dtlDaoList.stream() + .anyMatch(row -> row.getStatus().equals(CHECKEnum.BILL_STATUS.code("完成"))); + + if (is_status) { + // 完成单据 + mstDao.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + + // 解锁全部货位 + for (StIvtCheckdtlHrBcp dtlDao : dtlDaoList) { + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStruct_id, dtlDao.getStruct_id()) + ); + } + } + + // 判断是否都为正常 + boolean is_check = dtlDaoList.stream() + .filter(row -> ObjectUtil.isNotEmpty(row.getCheck_result())) + .anyMatch(row -> row.getCheck_result().equals(CHECKEnum.CHECK_RESULT.code("正常"))); + + mstDao.setIs_nok(is_check); + + this.updateById(mstDao); + + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls index c442e7f2aa8e103a1e7c223eb4ef24af91bf4e8c..3f1244936f27cec7e97d5b0d1b700000cb8adbfc 100644 GIT binary patch delta 10811 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 YZ~RxhUF?VQ3Ry9L^EY=i@bQZO2P!K|)&Kwi delta 10757 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 diff --git a/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/AddDialog.vue new file mode 100644 index 00000000..9c6c1666 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/AddDialog.vue @@ -0,0 +1,338 @@ + + + + + + diff --git a/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/CheckDialog.vue b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/CheckDialog.vue new file mode 100644 index 00000000..ab6f9860 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/CheckDialog.vue @@ -0,0 +1,423 @@ + + + + + + diff --git a/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/StructIvt.vue b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/StructIvt.vue new file mode 100644 index 00000000..b6f21ed6 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/StructIvt.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/check.js b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/check.js new file mode 100644 index 00000000..105ca994 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/check.js @@ -0,0 +1,136 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bcp/checkHr', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bcp/checkHr/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bcp/checkHr/update', + method: 'post', + data + }) +} + +export function getCheckDtl(data) { + return request({ + url: '/api/bcp/checkHr/getCheckDtl', + method: 'post', + data + }) +} + +export function getOutBillDtl2(params) { + return request({ + url: '/api/bcp/checkHr/getOutBillDtl2', + method: 'get', + params + }) +} + +export function getOutBillDis(params) { + return request({ + url: '/api/bcp/checkHr/getOutBillDis', + method: 'get', + params + }) +} + +export function getInvTypes() { + return request({ + url: '/api/bcp/checkHr/getInvTypes', + method: 'get' + }) +} + +export function insertDtl(data) { + return request({ + url: '/api/bcp/checkHr/insertDtl', + method: 'post', + data + }) +} + +export function getStructIvt(params) { + return request({ + url: '/api/bcp/checkHr/getStructIvt', + method: 'get', + params + }) +} + +export function confirm(data) { + return request({ + url: '/api/bcp/checkHr/confirm', + method: 'post', + data + }) +} + +export function handdown(data) { + return request({ + url: '/api/bcp/checkHr/handdown', + method: 'post', + data + }) +} + +export function saveCheck(data) { + return request({ + url: '/api/bcp/checkHr/saveCheck', + method: 'post', + data + }) +} + +export function process0(data) { + return request({ + url: '/api/bcp/checkHr/process0', + method: 'post', + data + }) +} + +export function process1(data) { + return request({ + url: '/api/bcp/checkHr/process1', + method: 'post', + data + }) +} + +export function issueTask(data) { + return request({ + url: '/api/bcp/checkHr/issueTask', + method: 'post', + data + }) +} + +export default { + add, + edit, + del, + getCheckDtl, + getStructIvt, + getOutBillDtl2, + confirm, + getInvTypes, + saveCheck, + process0, + issueTask, + getOutBillDis, + process1 +} diff --git a/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/index.vue b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/index.vue new file mode 100644 index 00000000..3ea86361 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/semiproducthr/semiproductHrCheck/index.vue @@ -0,0 +1,322 @@ + + + + +