From 4f97e62a5d366df652668e20c2d9bbb852877327 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 29 Oct 2025 16:55:26 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsMaterialCoilMapper中添加selectVoPagePlus方法及对应XML配置 - 实现基于QueryWrapper的分页查询逻辑- 补充关联字段warehouseName以支持统计展示-优化查询条件构造器,增强筛选能力 - 调整VO类结构,确保数据传输完整性- 修复原查询逻辑中的潜在空指针问题 --- .../com/klp/domain/vo/WmsMaterialCoilVo.java | 22 ++++++------ .../com/klp/mapper/WmsMaterialCoilMapper.java | 5 +++ .../impl/WmsMaterialCoilServiceImpl.java | 23 +++++++++++-- .../mapper/klp/WmsMaterialCoilMapper.xml | 34 ++++++++++++++++--- 4 files changed, 66 insertions(+), 18 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java index 4d04251c..804b2e2d 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java @@ -127,59 +127,61 @@ public class WmsMaterialCoilVo { private String remark; // ========== 关联对象属性 ========== - + /** * 所在库区信息 */ private WmsWarehouseVo warehouse; - + /** * 下一库区信息 */ private WmsWarehouseVo nextWarehouse; - + /** * 二维码信息 */ private WmsGenerateRecordVo qrcodeRecord; - + /** * 原材料信息(当itemType为raw_material时) */ private WmsRawMaterialVo rawMaterial; - + /** * 产品信息(当itemType为product时) */ private Object product; // 产品VO待定义 - + /** * BOM列表(原材料对应的BOM项目信息) */ private List bomItemList; // ========== 统计相关属性 ========== - + /** * 库区名称(用于统计查询) */ private String warehouseName; - + /** * 钢卷数量(用于统计查询) */ private Long coilCount; - + /** * 总毛重(用于统计查询) */ private BigDecimal totalGrossWeight; - + /** * 总净重(用于统计查询) */ private BigDecimal totalNetWeight; + + } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 271e82d5..41389ca7 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -1,5 +1,8 @@ package com.klp.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; @@ -34,5 +37,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId); + + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 193dda49..dbc78256 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -1,6 +1,7 @@ package com.klp.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -136,7 +137,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if ("product".equals(vo.getItemType()) && vo.getItemId() != null) { // 产品和原材料的查询逻辑相同,都通过itemId查询 WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId()); - + // 查询原材料对应的BOM信息(通过bomId查询BomItem列表) if (rawMaterial != null && rawMaterial.getBomId() != null) { WmsBomItemBo bomItemBo = new WmsBomItemBo(); @@ -152,11 +153,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { */ @Override public TableDataInfo queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + QueryWrapper qw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); return TableDataInfo.build(result); } + private QueryWrapper buildQueryWrapperPlus(WmsMaterialCoilBo bo) { + QueryWrapper qw = Wrappers.query(); + qw.like(StringUtils.isNotBlank(bo.getEnterCoilNo()), "mc.enter_coil_no", bo.getEnterCoilNo()); + qw.like(StringUtils.isNotBlank(bo.getCurrentCoilNo()), "mc.current_coil_no", bo.getCurrentCoilNo()); + qw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo()); + qw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType()); + qw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId()); + qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit()); + qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus()); + qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType()); + //逻辑删除 + qw.eq("mc.del_flag", 0); + return qw; + } + + /** * 查询钢卷物料表列表 */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 7fe251ad..0114e032 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT + SELECT mc.item_type, mc.item_id, w.warehouse_id, @@ -76,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" COALESCE(SUM(mc.net_weight), 0) as total_net_weight FROM wms_material_coil mc LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id - WHERE mc.data_type = 1 + WHERE mc.data_type = 1 AND mc.del_flag = '0' AND (w.del_flag = '0' OR w.del_flag IS NULL) @@ -88,6 +88,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY mc.item_type, mc.item_id, w.warehouse_id, w.warehouse_name ORDER BY mc.item_type, mc.item_id, w.warehouse_id + From ddab8521ecc13deca03b0fe11f411124de1714de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Wed, 29 Oct 2025 17:19:57 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=BA=93=E5=AD=98=E5=88=86=E5=B8=83=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加钢卷按仓库和类型分布的API接口 - 实现钢卷库存统计的可视化展示页面,包含树图、柱状图和饼图 - 优化库存列表页面,移除不必要字段 - 在基础信息面板中增加仓库名称显示 - 调整物料选择组件,根据类型显示不同选择器 --- klp-ui/src/api/wms/coil.js | 18 + klp-ui/src/views/wms/coil/box.vue | 711 ++++++++++++++++++++++ klp-ui/src/views/wms/coil/panels/base.vue | 14 +- klp-ui/src/views/wms/stock/index.vue | 16 +- 4 files changed, 746 insertions(+), 13 deletions(-) create mode 100644 klp-ui/src/views/wms/coil/box.vue diff --git a/klp-ui/src/api/wms/coil.js b/klp-ui/src/api/wms/coil.js index 962925b1..38ce3500 100644 --- a/klp-ui/src/api/wms/coil.js +++ b/klp-ui/src/api/wms/coil.js @@ -65,3 +65,21 @@ export function getMaterialCoilTrace(query) { params: query }) } + +// 查询各个库区中不同类型的钢卷分布情况 +export function getMaterialCoilDistributionByWarehouse(query) { + return request({ + url: '/wms/materialCoil/distributionByWarehouse', + method: 'get', + params: query + }) +} + +// 查询不同类型的钢卷在不同库区的分布情况 +export function getMaterialCoilDistributionByType(query) { + return request({ + url: '/wms/materialCoil/distributionByItemType', + method: 'get', + params: query + }) +} diff --git a/klp-ui/src/views/wms/coil/box.vue b/klp-ui/src/views/wms/coil/box.vue new file mode 100644 index 00000000..d5e3797b --- /dev/null +++ b/klp-ui/src/views/wms/coil/box.vue @@ -0,0 +1,711 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/coil/panels/base.vue b/klp-ui/src/views/wms/coil/panels/base.vue index 489aa8dc..cd0f95e7 100644 --- a/klp-ui/src/views/wms/coil/panels/base.vue +++ b/klp-ui/src/views/wms/coil/panels/base.vue @@ -64,6 +64,7 @@ + - - - - + + + + - + Date: Wed, 29 Oct 2025 17:30:51 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix(wms):=20=E6=B7=BB=E5=8A=A0=E7=89=A9?= =?UTF-8?q?=E6=96=99ID=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在查询条件中增加对item_id字段的过滤 - 保证查询逻辑与其它条件一致,避免空值查询- 完善物料钢卷信息的精确查询能力 --- .../java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 753dae6d..6e65fb85 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -168,6 +168,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit()); qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus()); qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType()); + qw.eq(bo.getItemId() !=null, "mc.item_id", bo.getItemId()); //逻辑删除 qw.eq("mc.del_flag", 0); return qw; From e2e26667bf7564b408925a918da90e6255e32c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Thu, 30 Oct 2025 10:37:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat(wms):=20=E8=B0=83=E6=95=B4=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E7=AE=A1=E7=90=86=E7=95=8C=E9=9D=A2=E5=88=97=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=E5=92=8C=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refactor(login): 重构登录页面布局和样式 --- klp-ui/src/views/login.vue | 110 ++++++++++++---------- klp-ui/src/views/wms/coil/box.vue | 32 ++++--- klp-ui/src/views/wms/coil/panels/base.vue | 32 ++++--- 3 files changed, 98 insertions(+), 76 deletions(-) diff --git a/klp-ui/src/views/login.vue b/klp-ui/src/views/login.vue index 3ea9735a..0b932b08 100644 --- a/klp-ui/src/views/login.vue +++ b/klp-ui/src/views/login.vue @@ -1,13 +1,25 @@ @@ -154,27 +166,52 @@ export default { diff --git a/klp-ui/src/components/Dashboard/item-wrap/item-wrap.vue b/klp-ui/src/components/Dashboard/item-wrap/item-wrap.vue new file mode 100644 index 00000000..e58dc5e1 --- /dev/null +++ b/klp-ui/src/components/Dashboard/item-wrap/item-wrap.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/components/Dashboard/kong.vue b/klp-ui/src/components/Dashboard/kong.vue new file mode 100644 index 00000000..87327565 --- /dev/null +++ b/klp-ui/src/components/Dashboard/kong.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/components/Dashboard/message/message.js b/klp-ui/src/components/Dashboard/message/message.js new file mode 100644 index 00000000..177e0264 --- /dev/null +++ b/klp-ui/src/components/Dashboard/message/message.js @@ -0,0 +1,49 @@ +/* + * @Author: daidai + * @Date: 2022-02-16 17:08:26 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2022-04-25 10:12:36 + * @FilePath: \yhht-ui\yhht-ui\packagesEle\getXY\src\main.js + */ +import Vue from 'vue'; +import Main from './message.vue'; +import {isObject,isVNode} from '@/lib/types' +let Message = Vue.extend(Main); +let instance; +var message = function (options) { + if (Vue.prototype.$isServer) return; + if(!instance){ + instance = new Message({ + data: { + ...options + }, + + }); + instance.$mount(); + } + instance.destroy=()=>{ + document.body.removeChild(instance.$el); + instance&&instance.$destroy() + instance=null + return null + } + instance.init(options) + document.body.appendChild(instance.$el); + return instance; +}; +['success', 'warning', 'info', 'error'].forEach(type => { + message[type] = (options) => { + if (isObject(options) && !isVNode(options)) { + return message({ + ...options, + type + }); + } + return message({ + type, + text: options + }); + }; + }); + +export default message; \ No newline at end of file diff --git a/klp-ui/src/components/Dashboard/message/message.vue b/klp-ui/src/components/Dashboard/message/message.vue new file mode 100644 index 00000000..8c8c7a1b --- /dev/null +++ b/klp-ui/src/components/Dashboard/message/message.vue @@ -0,0 +1,74 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/components/Dashboard/reacquire/reacquire.vue b/klp-ui/src/components/Dashboard/reacquire/reacquire.vue new file mode 100644 index 00000000..2f478458 --- /dev/null +++ b/klp-ui/src/components/Dashboard/reacquire/reacquire.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/components/Dashboard/scale-screen/scale-screen.vue b/klp-ui/src/components/Dashboard/scale-screen/scale-screen.vue new file mode 100644 index 00000000..a8c56378 --- /dev/null +++ b/klp-ui/src/components/Dashboard/scale-screen/scale-screen.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/klp-ui/src/views/dashboard/body.vue b/klp-ui/src/views/dashboard/body.vue new file mode 100644 index 00000000..e69de29b diff --git a/klp-ui/src/views/dashboard/demo.vue b/klp-ui/src/views/dashboard/demo.vue new file mode 100644 index 00000000..7be9f99d --- /dev/null +++ b/klp-ui/src/views/dashboard/demo.vue @@ -0,0 +1,360 @@ + + + + + + diff --git a/klp-ui/src/views/dashboard/indexs/center-bottom.vue b/klp-ui/src/views/dashboard/indexs/center-bottom.vue new file mode 100644 index 00000000..209be3a7 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/center-bottom.vue @@ -0,0 +1,186 @@ + + + + diff --git a/klp-ui/src/views/dashboard/indexs/center-map.vue b/klp-ui/src/views/dashboard/indexs/center-map.vue new file mode 100644 index 00000000..6f5923ff --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/center-map.vue @@ -0,0 +1,378 @@ + + + + + diff --git a/klp-ui/src/views/dashboard/indexs/index.vue b/klp-ui/src/views/dashboard/indexs/index.vue new file mode 100644 index 00000000..4b70ce8c --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/index.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/klp-ui/src/views/dashboard/indexs/left-bottom.vue b/klp-ui/src/views/dashboard/indexs/left-bottom.vue new file mode 100644 index 00000000..07ffbc59 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/left-bottom.vue @@ -0,0 +1,255 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/dashboard/indexs/left-center.vue b/klp-ui/src/views/dashboard/indexs/left-center.vue new file mode 100644 index 00000000..bbdfaa73 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/left-center.vue @@ -0,0 +1,231 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/dashboard/indexs/left-top.vue b/klp-ui/src/views/dashboard/indexs/left-top.vue new file mode 100644 index 00000000..04ff3de6 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/left-top.vue @@ -0,0 +1,229 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/dashboard/indexs/right-bottom.vue b/klp-ui/src/views/dashboard/indexs/right-bottom.vue new file mode 100644 index 00000000..b1fb54d3 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/right-bottom.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/dashboard/indexs/right-center.vue b/klp-ui/src/views/dashboard/indexs/right-center.vue new file mode 100644 index 00000000..b48557a7 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/right-center.vue @@ -0,0 +1,163 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/dashboard/indexs/right-top.vue b/klp-ui/src/views/dashboard/indexs/right-top.vue new file mode 100644 index 00000000..dc9d2714 --- /dev/null +++ b/klp-ui/src/views/dashboard/indexs/right-top.vue @@ -0,0 +1,299 @@ + + + + + \ No newline at end of file From 2338940b7e1a220839c0cef3d10fd28127cb0b89 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Thu, 30 Oct 2025 10:49:56 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat(pocket):=20=E6=96=B0=E5=A2=9E=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E4=B8=8E=E5=81=9C=E6=9C=BA=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD-=20=E5=9C=A8=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=B8=AD=E5=A2=9E=E5=8A=A0insertByBo=E3=80=81updateByBo?= =?UTF-8?q?=E5=92=8CdeleteWithValidByIds=E6=96=B9=E6=B3=95=20-=20=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=99=A8=E4=B8=AD=E5=AE=9E=E7=8E=B0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E6=94=B9=E3=80=81=E5=88=A0=E9=99=A4=E5=8F=8A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3-=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8@Log=E6=B3=A8=E8=A7=A3=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=98=B2=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4=20-=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=95=B0=E6=8D=AE=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E7=A1=AE=E4=BF=9D=E5=AE=9E=E4=BD=93=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=89=8D=E7=9A=84=E5=90=88=E6=B3=95=E6=80=A7=20-=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=9A=E8=BF=87=E4=B8=BB=E9=94=AE=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=8E=86=E5=8F=B2=E4=B8=8E=E5=81=9C=E6=9C=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20-=20=E5=BC=95=E5=85=A5BeanUtil=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=E7=AE=80=E5=8C=96BO=E5=88=B0=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=9A=84=E8=BD=AC=E6=8D=A2=E8=BF=87=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Klptcm1ProPlantStateHistoryController.java | 53 +++++++++++++++++++ .../Klptcm1ProStoppageController.java | 52 ++++++++++++++++++ .../IKlptcm1ProPlantStateHistoryService.java | 15 ++++++ .../service/IKlptcm1ProStoppageService.java | 16 ++++++ ...lptcm1ProPlantStateHistoryServiceImpl.java | 44 +++++++++++++++ .../impl/Klptcm1ProStoppageServiceImpl.java | 43 +++++++++++++++ 6 files changed, 223 insertions(+) diff --git a/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProPlantStateHistoryController.java b/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProPlantStateHistoryController.java index 11e8e301..1a99ba23 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProPlantStateHistoryController.java +++ b/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProPlantStateHistoryController.java @@ -1,5 +1,11 @@ package com.klp.pocket.controller; +import com.klp.common.annotation.Log; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -10,6 +16,11 @@ import com.klp.pocket.domain.bo.Klptcm1ProPlantStateHistoryBo; import com.klp.pocket.service.IKlptcm1ProPlantStateHistoryService; import com.klp.common.core.page.TableDataInfo; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; +import java.util.Date; + /** * 历史 * @@ -32,4 +43,46 @@ public class Klptcm1ProPlantStateHistoryController extends BaseController { return iKlptcm1ProPlantStateHistoryService.queryPageList(bo, pageQuery); } + /** + * 获取历史详细信息 + * + * @param INSDATE 主键 + */ + @GetMapping("/{INSDATE}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Date INSDATE) { + return R.ok(iKlptcm1ProPlantStateHistoryService.queryById(INSDATE)); + } + + /** + * 新增历史 + */ + @Log(title = "历史", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody Klptcm1ProPlantStateHistoryBo bo) { + return toAjax(iKlptcm1ProPlantStateHistoryService.insertByBo(bo)); + } + + /** + * 修改历史 + */ + @Log(title = "历史", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody Klptcm1ProPlantStateHistoryBo bo) { + return toAjax(iKlptcm1ProPlantStateHistoryService.updateByBo(bo)); + } + + /** + * 删除历史 + * + * @param INSDATEs 主键串 + */ + @Log(title = "历史", businessType = BusinessType.DELETE) + @DeleteMapping("/{INSDATEs}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Date[] INSDATEs) { + return toAjax(iKlptcm1ProPlantStateHistoryService.deleteWithValidByIds(Arrays.asList(INSDATEs), true)); + } } diff --git a/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProStoppageController.java b/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProStoppageController.java index 91e6f97d..bbb7ca77 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProStoppageController.java +++ b/klp-pocket/src/main/java/com/klp/pocket/controller/Klptcm1ProStoppageController.java @@ -1,5 +1,11 @@ package com.klp.pocket.controller; +import com.klp.common.annotation.Log; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -10,6 +16,10 @@ import com.klp.pocket.domain.bo.Klptcm1ProStoppageBo; import com.klp.pocket.service.IKlptcm1ProStoppageService; import com.klp.common.core.page.TableDataInfo; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + /** * 停机 * @@ -32,4 +42,46 @@ public class Klptcm1ProStoppageController extends BaseController { return iKlptcm1ProStoppageService.queryPageList(bo, pageQuery); } + /** + * 获取停机详细信息 + * + * @param STOPID 主键 + */ + @GetMapping("/{STOPID}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long STOPID) { + return R.ok(iKlptcm1ProStoppageService.queryById(STOPID)); + } + + /** + * 新增停机 + */ + @Log(title = "停机", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody Klptcm1ProStoppageBo bo) { + return toAjax(iKlptcm1ProStoppageService.insertByBo(bo)); + } + + /** + * 修改停机 + */ + @Log(title = "停机", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody Klptcm1ProStoppageBo bo) { + return toAjax(iKlptcm1ProStoppageService.updateByBo(bo)); + } + + /** + * 删除停机 + * + * @param STOPIDs 主键串 + */ + @Log(title = "停机", businessType = BusinessType.DELETE) + @DeleteMapping("/{STOPIDs}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] STOPIDs) { + return toAjax(iKlptcm1ProStoppageService.deleteWithValidByIds(Arrays.asList(STOPIDs), true)); + } } diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProPlantStateHistoryService.java b/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProPlantStateHistoryService.java index 640bdfb2..b33dc1d7 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProPlantStateHistoryService.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProPlantStateHistoryService.java @@ -5,6 +5,7 @@ import com.klp.pocket.domain.bo.Klptcm1ProPlantStateHistoryBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; +import java.util.Collection; import java.util.Date; import java.util.List; @@ -31,4 +32,18 @@ public interface IKlptcm1ProPlantStateHistoryService { */ List queryList(Klptcm1ProPlantStateHistoryBo bo); + /** + * 新增历史 + */ + Boolean insertByBo(Klptcm1ProPlantStateHistoryBo bo); + + /** + * 修改历史 + */ + Boolean updateByBo(Klptcm1ProPlantStateHistoryBo bo); + + /** + * 校验并批量删除历史信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProStoppageService.java b/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProStoppageService.java index 048b5164..203d4d39 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProStoppageService.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/IKlptcm1ProStoppageService.java @@ -5,6 +5,7 @@ import com.klp.pocket.domain.bo.Klptcm1ProStoppageBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; +import java.util.Collection; import java.util.List; /** @@ -29,4 +30,19 @@ public interface IKlptcm1ProStoppageService { * 查询停机列表 */ List queryList(Klptcm1ProStoppageBo bo); + + /** + * 新增停机 + */ + Boolean insertByBo(Klptcm1ProStoppageBo bo); + + /** + * 修改停机 + */ + Boolean updateByBo(Klptcm1ProStoppageBo bo); + + /** + * 校验并批量删除停机信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProPlantStateHistoryServiceImpl.java b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProPlantStateHistoryServiceImpl.java index 50716c91..946b8105 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProPlantStateHistoryServiceImpl.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProPlantStateHistoryServiceImpl.java @@ -1,5 +1,6 @@ package com.klp.pocket.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -14,6 +15,7 @@ import com.klp.pocket.domain.Klptcm1ProPlantStateHistory; import com.klp.pocket.mapper.Klptcm1ProPlantStateHistoryMapper; import com.klp.pocket.service.IKlptcm1ProPlantStateHistoryService; +import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Map; @@ -169,4 +171,46 @@ public class Klptcm1ProPlantStateHistoryServiceImpl implements IKlptcm1ProPlantS lqw.eq(bo.getVALUE99() != null, Klptcm1ProPlantStateHistory::getValue99, bo.getVALUE99()); return lqw; } + + /** + * 新增历史 + */ + @Override + public Boolean insertByBo(Klptcm1ProPlantStateHistoryBo bo) { + Klptcm1ProPlantStateHistory add = BeanUtil.toBean(bo, Klptcm1ProPlantStateHistory.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setINSDATE(add.getInsdate()); + } + return flag; + } + + /** + * 修改历史 + */ + @Override + public Boolean updateByBo(Klptcm1ProPlantStateHistoryBo bo) { + Klptcm1ProPlantStateHistory update = BeanUtil.toBean(bo, Klptcm1ProPlantStateHistory.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(Klptcm1ProPlantStateHistory entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除历史 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } } diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java index 826a3254..a5c1f9fe 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java @@ -1,5 +1,6 @@ package com.klp.pocket.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -15,6 +16,7 @@ import com.klp.pocket.domain.Klptcm1ProStoppage; import com.klp.pocket.mapper.Klptcm1ProStoppageMapper; import com.klp.pocket.service.IKlptcm1ProStoppageService; +import java.util.Collection; import java.util.List; import java.util.Map; @@ -77,4 +79,45 @@ public class Klptcm1ProStoppageServiceImpl implements IKlptcm1ProStoppageService return lqw; } + /** + * 新增停机 + */ + @Override + public Boolean insertByBo(Klptcm1ProStoppageBo bo) { + Klptcm1ProStoppage add = BeanUtil.toBean(bo, Klptcm1ProStoppage.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setSTOPID(add.getStopid()); + } + return flag; + } + + /** + * 修改停机 + */ + @Override + public Boolean updateByBo(Klptcm1ProStoppageBo bo) { + Klptcm1ProStoppage update = BeanUtil.toBean(bo, Klptcm1ProStoppage.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(Klptcm1ProStoppage entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除停机 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } }