From e4f9467b03ec6253a91c3fbd8c448009e502ffd8 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 18 Sep 2023 17:43:45 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=97=A5=E5=BA=93=E5=AD=98=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=EF=BC=9Atodu:=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=B7=9F=E9=A1=B5=E9=9D=A2=EF=BC=9Brev:cp?= =?UTF-8?q?=E7=BC=BA=E5=B0=91stor=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StIvtStructivtDailyController.java | 51 +++++++++++ .../IStIvtStructivtDailyService.java | 20 +++++ .../dao/StIvtStructivtDaily.java | 90 +++++++++++++++++++ .../dao/mapper/StIvtStructivtDailyMapper.java | 24 +++++ .../mapper/xml/StIvtStructivtDailyMapper.xml | 5 ++ .../dto/DailyStructivtQuery.java | 35 ++++++++ .../impl/StIvtStructivtDailyServiceImpl.java | 64 +++++++++++++ .../mapper/xml/StIvtStructivtDailyMapper.xml | 5 ++ .../structIvt/dao/StIvtStructivtBcp.java | 12 +++ .../src/main/resources/sql/日库存.sql | 21 +++++ 10 files changed, 327 insertions(+) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/dailyStructivt/StIvtStructivtDailyController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/IStIvtStructivtDailyService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/StIvtStructivtDaily.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/StIvtStructivtDailyMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/xml/StIvtStructivtDailyMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dto/DailyStructivtQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/impl/StIvtStructivtDailyServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructivtDailyMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/resources/sql/日库存.sql diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/dailyStructivt/StIvtStructivtDailyController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/dailyStructivt/StIvtStructivtDailyController.java new file mode 100644 index 00000000..02452e41 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/dailyStructivt/StIvtStructivtDailyController.java @@ -0,0 +1,51 @@ +package org.nl.wms.masterdata_manage.storage.controller.dailyStructivt; + + +import cn.dev33.satoken.annotation.SaIgnore; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.IStIvtStructivtDailyService; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dto.DailyStructivtQuery; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dto.SectattrQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 日库存统计表 前端控制器 + *

+ * + * @author generator + * @since 2023-09-18 + */ +@RestController +@RequestMapping("api/structivtDaily") +@SaIgnore +public class StIvtStructivtDailyController { + + @Autowired + private IStIvtStructivtDailyService stIvtStructivtDailyService; + + @GetMapping + @Log("查询日库区") + @SaIgnore + public ResponseEntity query(DailyStructivtQuery query, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(stIvtStructivtDailyService.page(page.build(),query.build())),HttpStatus.OK); + } + @GetMapping("/sync") + @Log("同步日库区") + @SaIgnore + public ResponseEntity sync(String[] structivts){ + stIvtStructivtDailyService.dailyStructivt(structivts); + return new ResponseEntity<>(HttpStatus.OK); + } +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/IStIvtStructivtDailyService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/IStIvtStructivtDailyService.java new file mode 100644 index 00000000..75f4779f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/IStIvtStructivtDailyService.java @@ -0,0 +1,20 @@ +package org.nl.wms.masterdata_manage.storage.service.dailyStructivt; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao.StIvtStructivtDaily; + +/** + *

+ * 日库存统计表 服务类 + *

+ * + * @author generator + * @since 2023-09-18 + */ +public interface IStIvtStructivtDailyService extends IService { + + /** + * 统计日常数据 + */ + void dailyStructivt(String...structivts); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/StIvtStructivtDaily.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/StIvtStructivtDaily.java new file mode 100644 index 00000000..b2f3a0a1 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/StIvtStructivtDaily.java @@ -0,0 +1,90 @@ +package org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 日库存统计表 + *

+ * + * @author generator + * @since 2023-09-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_structivt_daily") +public class StIvtStructivtDaily implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 库存记录标识 + */ + @TableId + private String id; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 仓库表 + */ + private String table_name; + + /** + * 车间标识 + */ + private String product_area; + + /** + * 货位集合 + */ + private String struct_code; + + /** + * 计量单位标识 + */ + private String qty_unit_id; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 可用数 + */ + private BigDecimal canuse_qty; + + /** + * 冻结数 + */ + private BigDecimal frozen_qty; + + /** + * 库存数 + */ + private BigDecimal ivt_qty; + + /** + * 待入数 + */ + private BigDecimal warehousing_qty; + + + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/StIvtStructivtDailyMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/StIvtStructivtDailyMapper.java new file mode 100644 index 00000000..76bd26c2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/StIvtStructivtDailyMapper.java @@ -0,0 +1,24 @@ +package org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao.StIvtStructivtDaily; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 日库存统计表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-09-18 + */ +public interface StIvtStructivtDailyMapper extends BaseMapper { + + @Select("select #{table} as table_name,'A1' as product_area, UUID_SHORT() id,material_id,sum(canuse_qty) canuse_qty ,sum(frozen_qty) frozen_qty,sum(ivt_qty) ivt_qty,sum(warehousing_qty) warehousing_qty,GROUP_CONCAT(struct_code) struct_code,stor_id,qty_unit_id,CURDATE() create_time from ${table} GROUP BY material_id") + List selectStructivt(@Param("table") String table); +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/xml/StIvtStructivtDailyMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/xml/StIvtStructivtDailyMapper.xml new file mode 100644 index 00000000..fd4511cc --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dao/mapper/xml/StIvtStructivtDailyMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dto/DailyStructivtQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dto/DailyStructivtQuery.java new file mode 100644 index 00000000..9705f65a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/dto/DailyStructivtQuery.java @@ -0,0 +1,35 @@ +package org.nl.wms.masterdata_manage.storage.service.dailyStructivt.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.masterdata_manage.storage.service.dailyStructivt.dao.StIvtStructivtDaily; + +/* + * @author ZZQ + * @Date 2023/5/14 17:13 + */ +@Data +public class DailyStructivtQuery extends BaseQuery { + + private String is_materialstore; + private String is_reversed; + private String is_attachment; + private String is_productstore; + private String is_semi_finished; + private String is_virtualstore; + private String sect_id; + private String struct_code; + private String lock_type; + private Boolean is_used; + private Boolean emptyvehicle; + private Boolean is_emptyvehicle; + private String blurry; + + @Override + public void paramMapping() { + super.doP.put("blurry", QParam.builder().k(new String[]{"struct_code"}).type(QueryTEnum.LK).build()); + super.doP.put("emptyvehicle", QParam.builder().k(new String[]{"storagevehicle_code"}).type(QueryTEnum.NULL_OR_EMPTY).build()); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/impl/StIvtStructivtDailyServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/impl/StIvtStructivtDailyServiceImpl.java new file mode 100644 index 00000000..5fc32c93 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/dailyStructivt/impl/StIvtStructivtDailyServiceImpl.java @@ -0,0 +1,64 @@ +package org.nl.wms.masterdata_manage.storage.service.dailyStructivt.impl; + + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.IStIvtStructivtDailyService; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao.StIvtStructivtDaily; +import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.dao.mapper.StIvtStructivtDailyMapper; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + *

+ * 日库存统计表 服务实现类 + *

+ * + * @author generator + * @since 2023-09-18 + */ +@Service +public class StIvtStructivtDailyServiceImpl extends ServiceImpl implements IStIvtStructivtDailyService { + + @Override + @Transactional + public void dailyStructivt(String... structivts) { + if (structivts.length == 0){ + return; + } + ArrayList list = new ArrayList<>(); + for (String structivt : structivts) { + List maps = this.baseMapper.selectStructivt(structivt); + if (!CollectionUtils.isEmpty(maps)){ + List dailyList = JSONArray.parseArray(JSON.toJSONString(maps), StIvtStructivtDaily.class); + list.addAll(dailyList); + } + } + if (!CollectionUtils.isEmpty(list)){ + List errorData = list.stream().filter(stIvtStructivtDaily -> StringUtils.isEmpty(stIvtStructivtDaily.getStor_id()) || StringUtils.isEmpty(stIvtStructivtDaily.getMaterial_id())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(errorData)){ + throw new BadRequestException("表存在异常数据没有仓库跟物料信息:"+errorData + .stream() + .map(stIvtStructivtDaily-> stIvtStructivtDaily.getTable_name()+".仓位:"+stIvtStructivtDaily.getStruct_code()+".物料"+stIvtStructivtDaily.getMaterial_id()) + .distinct().collect(Collectors.joining(","))); + } + Set collect = list.stream().map(StIvtStructivtDaily::getStor_id).collect(Collectors.toSet()); + this.remove(new QueryWrapper().in("stor_id",collect).eq("create_time", DateUtil.now())); + this.saveBatch(list); + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructivtDailyMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructivtDailyMapper.xml new file mode 100644 index 00000000..317a035a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructivtDailyMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java index 88050f46..85766131 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java @@ -72,6 +72,18 @@ public class StIvtStructivtBcp implements Serializable { * 库存数 */ private BigDecimal canuse_qty; + /** + * 库存数 + */ + private BigDecimal frozen_qty; + /** + * 库存数 + */ + private BigDecimal ivt_qty; + /** + * 库存数 + */ + private BigDecimal warehousing_qty; /** * 计量单位标识 diff --git a/mes/hd/nladmin-system/src/main/resources/sql/日库存.sql b/mes/hd/nladmin-system/src/main/resources/sql/日库存.sql new file mode 100644 index 00000000..590bf01b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/resources/sql/日库存.sql @@ -0,0 +1,21 @@ +CREATE TABLE `st_ivt_structivt_daily` ( + `id` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '库存记录标识', + `stor_id` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '仓库标识', + `struct_id` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '仓位标识', + `struct_code` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '仓位编码', + `struct_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '仓位名称', + `material_id` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '物料标识', + `canuse_qty` decimal(18,6) NOT NULL DEFAULT '0.000000' COMMENT '可用数', + `frozen_qty` decimal(18,6) DEFAULT '0.000000' COMMENT '冻结数', + `ivt_qty` decimal(18,6) NOT NULL DEFAULT '0.000000' COMMENT '库存数', + `warehousing_qty` decimal(18,6) DEFAULT '0.000000' COMMENT '待入数', + `qty_unit_id` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '计量单位标识', + `create_time` varchar(25) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL COMMENT '创建时间', + `product_area` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '车间标识', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='日库存统计表'; + +ALTER TABLE st_ivt_structivt_bcp + ADD COLUMN `frozen_qty` decimal(18,3) DEFAULT '0.000' COMMENT '冻结数', + ADD COLUMN `ivt_qty` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '库存数', + ADD COLUMN `warehousing_qty` decimal(18,3) DEFAULT '0.000' COMMENT '待入数';