From aa923a5a1a30f541fb6a4c5bf80668fe468b9ca8 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 8 Oct 2023 16:37:17 +0800 Subject: [PATCH 01/11] =?UTF-8?q?add=EF=BC=9A=E5=AE=9E=E6=97=B6=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/EmBiStructivtMapper.java | 4 + .../dao/mapper/xml/EmBiStructivtMapper.xml | 16 ++ .../rest/RealTimeIvtController.java | 42 +++++ .../service/RealTimeIvtService.java | 40 +++++ .../stata_manage/service/dto/StorUtil.java | 9 + .../service/impl/RealTimeIvtServiceImpl.java | 113 +++++++++++++ .../dao/mapper/StIvtStructivtCpMapper.java | 2 + .../dao/mapper/StIvtStructivtCpMapper.xml | 16 ++ .../dao/mapper/StIvtStructivtYlMapper.java | 3 + .../dao/mapper/xml/StIvtStructivtYlMapper.xml | 16 ++ .../dao/mapper/StIvtStructivtBcpMapper.java | 2 + .../mapper/xml/StIvtStructivtBcpMapper.xml | 16 ++ .../dao/mapper/StIvtStructivtHrBcpMapper.java | 3 + .../mapper/xml/StIvtStructivtHrBcpMapper.xml | 16 ++ .../wms/stata_manage/realtimeivt/PieChart.vue | 101 +++++++++++ .../wms/stata_manage/realtimeivt/index.vue | 160 ++++++++++++++++++ .../stata_manage/realtimeivt/realtimeivt.js | 40 +++++ 17 files changed, 599 insertions(+) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/RealTimeIvtController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/RealTimeIvtService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/dto/StorUtil.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/RealTimeIvtServiceImpl.java create mode 100644 mes/qd/src/views/wms/stata_manage/realtimeivt/PieChart.vue create mode 100644 mes/qd/src/views/wms/stata_manage/realtimeivt/index.vue create mode 100644 mes/qd/src/views/wms/stata_manage/realtimeivt/realtimeivt.js diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/EmBiStructivtMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/EmBiStructivtMapper.java index bda944e4..727ed553 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/EmBiStructivtMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/EmBiStructivtMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.device_manage.ios.service.structIvt.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.nl.common.domain.query.PageQuery; @@ -28,4 +29,7 @@ public interface EmBiStructivtMapper extends BaseMapper { List getSemiProductIvt(@Param("query") StructIvtEmQuery query); List getStructIvt(@Param("query") StructIvtEmQuery query); + + List getIvtPor(); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/xml/EmBiStructivtMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/xml/EmBiStructivtMapper.xml index 57ce08e9..e52062d5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/xml/EmBiStructivtMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/structIvt/dao/mapper/xml/EmBiStructivtMapper.xml @@ -186,4 +186,20 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/RealTimeIvtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/RealTimeIvtController.java new file mode 100644 index 00000000..8e8b2d6b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/RealTimeIvtController.java @@ -0,0 +1,42 @@ + +package org.nl.wms.stata_manage.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.stata_manage.service.RealTimeIvtService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author Liuxy + * @date 2022-06-28 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "实时库存统计分析") +@RequestMapping("/api/realtimeivt") +@Slf4j +public class RealTimeIvtController { + + private final RealTimeIvtService realTimeIvtService; + + @GetMapping + @ApiOperation("库存查询") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(realTimeIvtService.queryAll(whereJson, page), HttpStatus.OK); + } + + @PostMapping("/autoWeb") + @ApiOperation("饼图") + public ResponseEntity autoWeb(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(realTimeIvtService.autoWeb(whereJson), HttpStatus.OK); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/RealTimeIvtService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/RealTimeIvtService.java new file mode 100644 index 00000000..a196ddcd --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/RealTimeIvtService.java @@ -0,0 +1,40 @@ + +package org.nl.wms.stata_manage.service; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Map; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2022-06-28 + **/ +public interface RealTimeIvtService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + + + /** + * 饼图数据获取 + * @return / + */ + JSONObject autoWeb( JSONObject whereJson ); + + /** + * 根据仓库查询不同仓库得来类型 + * @param whereJson 、 + * @return 、 + */ + List queryIvt(Map whereJson); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/dto/StorUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/dto/StorUtil.java new file mode 100644 index 00000000..cced4a8d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/dto/StorUtil.java @@ -0,0 +1,9 @@ +package org.nl.wms.stata_manage.service.dto; +public class StorUtil { + public static final String STOR_YL = "1528627964823080960"; + public static final String STOR_CP = "1528627995269533696"; + public static final String STOR_BCP = "15286279952695336962"; + public static final String STOR_HR_BCP = "15286279952695336963"; + public static final String STOR_BJ = "15286279952695336977"; +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/RealTimeIvtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/RealTimeIvtServiceImpl.java new file mode 100644 index 00000000..0a477bb3 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/RealTimeIvtServiceImpl.java @@ -0,0 +1,113 @@ + +package org.nl.wms.stata_manage.service.impl; + + +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.common.utils.PageUtil; +import org.nl.wms.device_manage.ios.service.structIvt.dao.mapper.EmBiStructivtMapper; +import org.nl.wms.stata_manage.service.RealTimeIvtService; +import org.nl.wms.stata_manage.service.dto.StorUtil; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper.StIvtStructivtCpMapper; +import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.mapper.StIvtStructivtYlMapper; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.mapper.StIvtStructivtBcpMapper; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.dao.mapper.StIvtStructivtHrBcpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author Liuxy + * @description 服务实现 + * @date 2022-06-28 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class RealTimeIvtServiceImpl implements RealTimeIvtService { + + @Autowired + private StIvtStructivtYlMapper stIvtStructivtYlMapper; // 原料 + + @Autowired + private StIvtStructivtBcpMapper stIvtStructivtBcpMapper; // 半成品 + + @Autowired + private StIvtStructivtCpMapper stIvtStructivtCpMapper; // 成品 + + @Autowired + private StIvtStructivtHrBcpMapper stIvtStructivtHrBcpMapper; // 海柔半成品 + + @Autowired + private EmBiStructivtMapper emBiStructivtMapper; // 备件 + + @Override + public Map queryAll(Map whereJson, Pageable page) { + List allList = queryIvt(whereJson); + + // 组织分页 + Map json = PageUtil.toPage( + PageUtil.toPage(page.getPageNumber(), page.getPageSize(), allList), + allList.size() + ); + + return json; + } + + @Override + public JSONObject autoWeb(JSONObject whereJson) { + List allList = queryIvt(whereJson); + + // 处理数据 + List resultList = allList.stream() + .map(row -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("name", row.getString("material_code")); + jsonObject.put("value", row.getDoubleValue("pro")); + return jsonObject; + }) + .collect(Collectors.toList()); + + JSONObject result = new JSONObject(); + result.put("ivtList", resultList); + return result; + } + + @Override + public List queryIvt(Map whereJson) { + + String stor_id = MapUtil.getStr(whereJson, "stor_id"); + + List result = new ArrayList<>(); + + switch (stor_id) { + case StorUtil.STOR_YL : + result = stIvtStructivtYlMapper.getIvtPor(); + break; + + case StorUtil.STOR_BCP : + result = stIvtStructivtBcpMapper.getIvtPor(); + break; + + case StorUtil.STOR_CP : + result = stIvtStructivtCpMapper.getIvtPor(); + break; + + case StorUtil.STOR_HR_BCP : + result = stIvtStructivtHrBcpMapper.getIvtPor(); + break; + + case StorUtil.STOR_BJ : + result = emBiStructivtMapper.getIvtPor(); + break; + } + return result; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java index 74f6ae00..70756274 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java @@ -33,4 +33,6 @@ public interface StIvtStructivtCpMapper extends BaseMapper { List getStructAll(@Param("chanList") List list); + List getIvtPor(); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml index 4afe6843..22be2437 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml @@ -236,4 +236,20 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java index 68efdc83..1c6488f4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.mapper; +import com.alibaba.fastjson.JSONObject; import org.apache.ibatis.annotations.Param; import org.nl.common.domain.query.PageQuery; import org.nl.wms.pcs_manage.service.purchase.dto.PurchaseOrderQuery; @@ -29,4 +30,6 @@ public interface StIvtStructivtYlMapper extends BaseMapper { List getSemiProductIvt(@Param("query") StructIvtYLQuery query); List getStructIvt(@Param("query") StructIvtYLQuery query); + + List getIvtPor(); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml index 4d139bcd..5caf3888 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml @@ -192,4 +192,20 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java index 0f58b14f..9b4096e3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java @@ -38,4 +38,6 @@ public interface StIvtStructivtBcpMapper extends BaseMapper { List getPdaBcpMaterialIvt(JSONObject jo); StIvtStructivtBcp queryIvtOutOne(JSONObject json); + + List getIvtPor(); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml index d9cde3f3..ff11ec73 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml @@ -271,4 +271,20 @@ LIMIT 1 + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/StIvtStructivtHrBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/StIvtStructivtHrBcpMapper.java index 44db3d5e..cb3917d8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/StIvtStructivtHrBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/StIvtStructivtHrBcpMapper.java @@ -39,4 +39,7 @@ public interface StIvtStructivtHrBcpMapper extends BaseMapper getBcpMoveIvt(@Param("query") StructIvtYLQuery query); + + List getIvtPor(); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml index 6142814c..eb5b0dfa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml @@ -282,4 +282,20 @@ + + diff --git a/mes/qd/src/views/wms/stata_manage/realtimeivt/PieChart.vue b/mes/qd/src/views/wms/stata_manage/realtimeivt/PieChart.vue new file mode 100644 index 00000000..15d2087a --- /dev/null +++ b/mes/qd/src/views/wms/stata_manage/realtimeivt/PieChart.vue @@ -0,0 +1,101 @@ + + + diff --git a/mes/qd/src/views/wms/stata_manage/realtimeivt/index.vue b/mes/qd/src/views/wms/stata_manage/realtimeivt/index.vue new file mode 100644 index 00000000..39397245 --- /dev/null +++ b/mes/qd/src/views/wms/stata_manage/realtimeivt/index.vue @@ -0,0 +1,160 @@ + + + + diff --git a/mes/qd/src/views/wms/stata_manage/realtimeivt/realtimeivt.js b/mes/qd/src/views/wms/stata_manage/realtimeivt/realtimeivt.js new file mode 100644 index 00000000..0d3b45f9 --- /dev/null +++ b/mes/qd/src/views/wms/stata_manage/realtimeivt/realtimeivt.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/realtimeivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/realtimeivt/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/realtimeivt/update', + method: 'post', + data + }) +} + +export function autoWeb(data) { + return request({ + url: 'api/realtimeivt/autoWeb', + method: 'post', + data + }) +} + +export default { + add, + edit, + del, + autoWeb +} From 8ab8ebf29fedbf7773eb4d606fc0b668ab8651b6 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 9 Oct 2023 09:37:14 +0800 Subject: [PATCH 02/11] =?UTF-8?q?add:=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductCapController.java | 45 +++ .../productCapacity/dto/ProductCapQuery.java | 38 +++ .../controller/ScrapRateController.java | 46 +++ .../scrapRate/service/dto/ScrapRateQuery.java | 38 +++ .../service/dto/ByMaterialQuery.java | 23 -- .../acs/service/impl/AcsToWmsServiceImpl.java | 25 +- .../impl/ProduceshiftorderServiceImpl.java | 1 + .../IPdmProduceWorkorderService.java | 21 ++ .../workorder/dao/PdmProduceWorkorder.java | 12 + .../dao/mapper/PdmProduceWorkorderMapper.java | 15 + .../dao/mapper/PdmProduceWorkorderMapper.xml | 72 ++++- .../impl/IPdmProduceWorkorderServiceImpl.java | 19 +- .../analysis_manage/productCapacity/index.vue | 269 ++++++++++++++++++ .../productCap.js} | 16 +- .../wms/analysis_manage/qlmanage/index.vue | 231 ++++++++------- .../analysis_manage/qlmanage/productCap.js | 27 ++ .../wms/analysis_manage/scrapRate/index.vue | 259 +++++++++++++++++ .../analysis_manage/scrapRate/scrapRate.js | 27 ++ 18 files changed, 1042 insertions(+), 142 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/controller/ProductCapController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/dto/ProductCapQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/controller/ScrapRateController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/service/dto/ScrapRateQuery.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/workingGoods/service/dto/ByMaterialQuery.java create mode 100644 mes/qd/src/views/wms/analysis_manage/productCapacity/index.vue rename mes/qd/src/views/wms/analysis_manage/{qlmanage/dailyStructivt.js => productCapacity/productCap.js} (53%) create mode 100644 mes/qd/src/views/wms/analysis_manage/qlmanage/productCap.js create mode 100644 mes/qd/src/views/wms/analysis_manage/scrapRate/index.vue create mode 100644 mes/qd/src/views/wms/analysis_manage/scrapRate/scrapRate.js diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/controller/ProductCapController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/controller/ProductCapController.java new file mode 100644 index 00000000..61451824 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/controller/ProductCapController.java @@ -0,0 +1,45 @@ +package org.nl.wms.analysis_manage.productCapacity.controller; + +/* + * @author ZZQ + * @Date 2023/10/8 10:24 + */ + + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.analysis_manage.productCapacity.dto.ProductCapQuery; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +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; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api/productCap") +@Slf4j +public class ProductCapController { + + @Autowired + private IPdmProduceWorkorderService workorderService; + + @GetMapping() + @Log("查询产能利用率") + public ResponseEntity byMaterial(ProductCapQuery query, PageQuery page) { + Page result = PageHelper.startPage(page.getPage() + 1, page.getSize()); + List list = workorderService.productCap(query); + TableDataInfo build = TableDataInfo.build(list); + build.setTotalElements(result.getTotal()); + return new ResponseEntity<>(build, HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/dto/ProductCapQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/dto/ProductCapQuery.java new file mode 100644 index 00000000..148a6bd9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/dto/ProductCapQuery.java @@ -0,0 +1,38 @@ +package org.nl.wms.analysis_manage.productCapacity.dto; + +import lombok.Data; + +/* + * @author ZZQ + * @Date 2023/10/8 10:25 + */ +@Data +public class ProductCapQuery { + /** + * 设备编号 + */ + private String device_code; + /** + * 工序id + */ + private String workprocedure_id; + /** + * 车间 + */ + private String product_area; + /** + * 日期 + */ + private String[] create_time; + private String start_time; + private String end_time; + + + public void setCreate_time(String[] create_time) { + this.create_time = create_time; + if (create_time!=null && create_time.length == 2){ + this.start_time = create_time[0]; + this.end_time = create_time[1]; + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/controller/ScrapRateController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/controller/ScrapRateController.java new file mode 100644 index 00000000..375e7bde --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/controller/ScrapRateController.java @@ -0,0 +1,46 @@ +package org.nl.wms.analysis_manage.scrapRate.controller; + +/* + * @author ZZQ + * @Date 2023/10/8 10:24 + */ + + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.analysis_manage.scrapRate.service.dto.ScrapRateQuery; +import org.nl.wms.analysis_manage.workingGoods.service.dto.ByProcessQuery; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +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; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api/scrapRate") +@Slf4j +public class ScrapRateController { + + @Autowired + private IPdmProduceWorkorderService workorderService; + + @GetMapping() + @Log("查询废品率") + public ResponseEntity byMaterial(ScrapRateQuery query, PageQuery page) { + Page result = PageHelper.startPage(page.getPage() + 1, page.getSize()); + List list = workorderService.scrapRate(query); + TableDataInfo build = TableDataInfo.build(list); + build.setTotalElements(result.getTotal()); + return new ResponseEntity<>(build, HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/service/dto/ScrapRateQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/service/dto/ScrapRateQuery.java new file mode 100644 index 00000000..344936df --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/scrapRate/service/dto/ScrapRateQuery.java @@ -0,0 +1,38 @@ +package org.nl.wms.analysis_manage.scrapRate.service.dto; + +import lombok.Data; + +/* + * @author ZZQ + * @Date 2023/10/8 10:25 + */ +@Data +public class ScrapRateQuery { + /** + * 设备编号 + */ + private String device_code; + /** + * 工序id + */ + private String workprocedure_id; + /** + * 车间 + */ + private String product_area; + /** + * 日期 + */ + private String[] create_time; + private String start_time; + private String end_time; + + + public void setCreate_time(String[] create_time) { + this.create_time = create_time; + if (create_time!=null && create_time.length == 2){ + this.start_time = create_time[0]; + this.end_time = create_time[1]; + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/workingGoods/service/dto/ByMaterialQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/workingGoods/service/dto/ByMaterialQuery.java deleted file mode 100644 index 293fe1b1..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/workingGoods/service/dto/ByMaterialQuery.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.nl.wms.analysis_manage.workingGoods.service.dto; - -/* - * @author ZZQ - * @Date 2023/10/7 10:11 - */ -public class ByMaterialQuery { - - public void sdfds(){ - System.out.println(this.getClass().getName()+"调用方法"); - } - - @Override - protected void finalize() throws Throwable { - System.out.println("对象被释放"); - } -} -class demo{ - public static void main(String[] args) { - ByMaterialQuery query = new ByMaterialQuery(); - query.sdfds(); - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java index e31a4fcc..6ec30e7d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.ext_manage.acs.service.impl; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; @@ -53,9 +54,12 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; +import java.math.RoundingMode; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; @Service @Slf4j @@ -357,11 +361,24 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ return; } Iterator iterator = param.keySet().iterator(); + Map map = workorderService.list(new QueryWrapper() + .in("workorder_code", param.keySet())) + .stream().collect(HashMap::new, (k, v) -> k.put(v.getWorkorder_code(), v), HashMap::putAll); + Date now = new Date(); + BigDecimal divide = new BigDecimal(0); while (iterator.hasNext()){ String workorderCode = iterator.next(); BigDecimal dq_real_qty = param.getBigDecimal(workorderCode); + PdmProduceWorkorder workorder = map.get(workorderCode); + BigDecimal subtract = dq_real_qty.subtract(workorder.getDq_real_qty()); + if (workorder.getUpdate_time() !=null){ + divide = subtract.divide(new BigDecimal(DateUtil.between(workorder.getUpdate_time(), now, DateUnit.SECOND)), 3, RoundingMode.HALF_UP); + } workorderService.update(new UpdateWrapper() - .set("dq_real_qty",dq_real_qty).eq("workorder_code",workorderCode)); + .set("dq_real_qty",dq_real_qty) + .set("update_time",DateUtil.now()) + .set("slope",divide) + .eq("workorder_code",workorderCode)); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/other/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/other/service/impl/ProduceshiftorderServiceImpl.java index 1eddfb14..83779991 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/other/service/impl/ProduceshiftorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/other/service/impl/ProduceshiftorderServiceImpl.java @@ -408,6 +408,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ map.put("update_id", currentUserId); map.put("update_name", nickName); map.put("update_time", DateUtil.now()); + map.put("confirm_time", DateUtil.now()); map.put("realproduceend_date", DateUtil.now()); wo.update(map, "workorder_id = '" + workorder_id + "'"); //2.设置实际数量:数量待确认: 是否需要从报工记录表统计 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java index 81703667..8b0ab5c3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.wms.analysis_manage.productCapacity.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.scrapRate.service.dto.ScrapRateQuery; import org.nl.wms.analysis_manage.workingGoods.service.dto.ByProcessQuery; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto; @@ -155,8 +157,27 @@ public interface IPdmProduceWorkorderService extends IService reportQuery(ReportQuery query); + /** + * 在制品统计分析 + * @param query + * @return + */ List goodAnilysis(ByProcessQuery query); + /** + * 不合格品分析 + * @param query + * @return + */ + List scrapRate(ScrapRateQuery query); + + /** + * 不合格品分析 + * @param query + * @return + */ + List productCap(ProductCapQuery query); + void download(Map map, HttpServletResponse response) throws IOException; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java index e3349659..a5f9a3bc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java @@ -176,6 +176,18 @@ public class PdmProduceWorkorder implements Serializable{ * 下发时间 */ private String down_time; + + /** + * 开工时间 + */ + private String open_time; + + + /** + * 增长率 + */ + private BigDecimal slope; + /** * 完工人 */ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java index 52a11d69..04b2058e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java @@ -3,6 +3,8 @@ package org.nl.wms.product_manage.service.workorder.dao.mapper; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.nl.wms.analysis_manage.productCapacity.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.scrapRate.service.dto.ScrapRateQuery; import org.nl.wms.analysis_manage.workingGoods.service.dto.ByProcessQuery; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto; @@ -47,4 +49,17 @@ public interface PdmProduceWorkorderMapper extends BaseMapper goodAnalysis(ByProcessQuery query); + /** + * 不合格品统计 + * @param query + * @return + */ + List scrapRate(ScrapRateQuery query); + /** + * 不合格品统计 + * @param query + * @return + */ + List productCap(ProductCapQuery query); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml index d45cf66a..bd67013a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml @@ -257,7 +257,7 @@ and pdm_produce_workorder.product_area >= #{product_area} - + and #{end_time} >= pdm_produce_workorder.create_time @@ -269,6 +269,76 @@ md_me_materialbase.material_code, pdm_bi_workprocedure.workprocedure_name + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 0200c7c2..192292fc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -28,6 +28,8 @@ import org.nl.common.utils.api.RestBusinessTemplate; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.analysis_manage.productCapacity.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.scrapRate.service.dto.ScrapRateQuery; import org.nl.wms.analysis_manage.workingGoods.service.dto.ByProcessQuery; import org.nl.wms.ext_manage.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService; @@ -203,7 +205,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().set("workorder_status", WorkerOrderEnum.SEND.getCode()).set("down_id", SecurityUtils.getCurrentUserId()).set("down_name", SecurityUtils.getCurrentNickName()).set("down_time", new Date()).in("workorder_id", ids)); + this.update(new UpdateWrapper().set("workorder_status", WorkerOrderEnum.SEND.getCode()).set("down_id", SecurityUtils.getCurrentUserId()).set("down_name", SecurityUtils.getCurrentNickName()).set("update_time", new Date()).set("down_time", new Date()).in("workorder_id", ids)); this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0])); } @@ -269,6 +271,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); //开工为首道工序时,更新订单状态为开工 PdmBiWorkprocedure isFirst = workprocedureService.getOne(new LambdaUpdateWrapper().eq(PdmBiWorkprocedure::getWorkprocedure_id, workOrder.getWorkprocedure_id()).eq(PdmBiWorkprocedure::getIs_first, 1)); @@ -876,4 +882,15 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl goodAnilysis(ByProcessQuery query) { return this.baseMapper.goodAnalysis(query); } + + @Override + public List scrapRate(ScrapRateQuery query) { + return this.baseMapper.scrapRate(query); + } + + @Override + public List productCap(ProductCapQuery query) { + List maps = this.baseMapper.productCap(query); + return maps; + } } diff --git a/mes/qd/src/views/wms/analysis_manage/productCapacity/index.vue b/mes/qd/src/views/wms/analysis_manage/productCapacity/index.vue new file mode 100644 index 00000000..0cc48bdb --- /dev/null +++ b/mes/qd/src/views/wms/analysis_manage/productCapacity/index.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/mes/qd/src/views/wms/analysis_manage/qlmanage/dailyStructivt.js b/mes/qd/src/views/wms/analysis_manage/productCapacity/productCap.js similarity index 53% rename from mes/qd/src/views/wms/analysis_manage/qlmanage/dailyStructivt.js rename to mes/qd/src/views/wms/analysis_manage/productCapacity/productCap.js index c7fb0841..2342025c 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/dailyStructivt.js +++ b/mes/qd/src/views/wms/analysis_manage/productCapacity/productCap.js @@ -2,7 +2,7 @@ import request from '@/utils/request' export function add(data) { return request({ - url: 'api/structivtDaily', + url: 'api/scrapRate', method: 'post', data }) @@ -10,24 +10,18 @@ export function add(data) { export function del(ids) { return request({ - url: 'api/structivtDaily', + url: 'api/scrapRate', method: 'delete', data: ids }) } -export function sync(param) { - return request({ - url: 'api/structivtDaily/sync', - method: 'post', - data: param - }) -} + export function edit(data) { return request({ - url: 'api/structivtDaily', + url: 'api/scrapRate', method: 'put', data }) } -export default { add, edit, del, sync } +export default { add, edit, del } diff --git a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue index 37a215c3..0cc48bdb 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue @@ -9,51 +9,67 @@ label-width="80px" label-suffix=":" > - - + + + + + + - + + + + + + - - 同步 - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
+ + + diff --git a/mes/qd/src/views/wms/analysis_manage/scrapRate/scrapRate.js b/mes/qd/src/views/wms/analysis_manage/scrapRate/scrapRate.js new file mode 100644 index 00000000..2342025c --- /dev/null +++ b/mes/qd/src/views/wms/analysis_manage/scrapRate/scrapRate.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/scrapRate', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/scrapRate', + method: 'delete', + data: ids + }) +} + + +export function edit(data) { + return request({ + url: 'api/scrapRate', + method: 'put', + data + }) +} +export default { add, edit, del } From ad8df52dcfdd4446a3df269ef234adfd73b17f9e Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 9 Oct 2023 11:21:59 +0800 Subject: [PATCH 03/11] =?UTF-8?q?rev=EF=BC=9A=E6=97=A5=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=A2=9E=E5=8A=A0=EF=BC=9A=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=95=B0=E3=80=81=E5=87=BA=E5=BA=93=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/StIvtStructivtDaily.java | 8 +++ .../dao/mapper/StIvtStructivtDailyMapper.java | 8 ++- .../mapper/xml/StIvtStructivtDailyMapper.xml | 54 +++++++++++++++++++ .../impl/StIvtStructivtDailyServiceImpl.java | 32 +++++++++++ .../wms/stata_manage/historyivt/index.vue | 2 +- 5 files changed, 102 insertions(+), 2 deletions(-) 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 index b96c40ed..86e34c30 100644 --- 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 @@ -110,7 +110,15 @@ public class StIvtStructivtDaily implements Serializable { */ private BigDecimal warehousing_qty; + /** + * 入库数 + */ + private BigDecimal in_qty; + /** + * 出库数 + */ + private BigDecimal out_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 index 94e7158f..25d96347 100644 --- 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 @@ -23,10 +23,16 @@ public interface StIvtStructivtDailyMapper extends BaseMapper selectStructivt(@Param("table") String table); /** - * 大屏数据 - 近一周工段产量 + * 获取历史库存 * @param list / * @return / */ List getHistoryivt(@Param("chanList") List list, @Param("query") Map json); + + /** + * 获取当天出入库数量 + * @return / + */ + List getIoNum(@Param("query") Map json); } 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 index 43dda196..ee835387 100644 --- 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 @@ -29,4 +29,58 @@ + + 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 index 86b0c03f..518adabd 100644 --- 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 @@ -2,8 +2,10 @@ package org.nl.wms.masterdata_manage.storage.service.dailyStructivt.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; 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.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; @@ -15,6 +17,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.transaction.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -48,6 +51,35 @@ public class StIvtStructivtDailyServiceImpl extends ServiceImpl inNumList = this.baseMapper.getIoNum(param); + + // 出库数 + param.put("io_type", "1"); + List outNumList = this.baseMapper.getIoNum(param); + + // 整理数据 + for (StIvtStructivtDaily dao : list) { + + List jsonIn = inNumList.stream() + .filter(row -> row.getString("material_id").equals(dao.getMaterial_id())) + .collect(Collectors.toList()); + + dao.setIn_qty(ObjectUtil.isNotEmpty(jsonIn) ? jsonIn.get(0).getBigDecimal("io_num") : BigDecimal.valueOf(0)); + + List jsonOut = outNumList.stream() + .filter(row -> row.getString("material_id").equals(dao.getMaterial_id())) + .collect(Collectors.toList()); + + dao.setOut_qty(ObjectUtil.isNotEmpty(jsonOut) ? jsonOut.get(0).getBigDecimal("io_num") : BigDecimal.valueOf(0)); + } + 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)){ diff --git a/mes/qd/src/views/wms/stata_manage/historyivt/index.vue b/mes/qd/src/views/wms/stata_manage/historyivt/index.vue index 876fa7b5..4b610f40 100644 --- a/mes/qd/src/views/wms/stata_manage/historyivt/index.vue +++ b/mes/qd/src/views/wms/stata_manage/historyivt/index.vue @@ -87,7 +87,7 @@ - +
From e33ca3fae9c5fc99aff148b2c5eb72755b8d8451 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 9 Oct 2023 13:40:11 +0800 Subject: [PATCH 04/11] =?UTF-8?q?add:=E9=A1=B9=E7=9B=AE=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../em/rest/DevicerepairitemsController.java | 14 ++ .../em/service/DevicerepairitemsService.java | 9 ++ .../impl/DevicerepairitemsServiceImpl.java | 60 +++++++++ .../wms/analysis_manage/qlmanage/index.vue | 17 ++- .../em/devicerepairitems/UploadDialog.vue | 121 ++++++++++++++++++ .../em/devicerepairitems/devicerepairitems.js | 10 +- .../em/devicerepairitems/index.vue | 21 ++- 7 files changed, 240 insertions(+), 12 deletions(-) create mode 100644 mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java index 330cfedf..4041c833 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java @@ -7,12 +7,16 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.utils.RedissonUtils; import org.nl.wms.masterdata_manage.em.service.DevicerepairitemsService; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.Map; /** @@ -54,4 +58,14 @@ public class DevicerepairitemsController { devicerepairitemsService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + /** + * 导入bom数据 + */ + @Log("导入维修项") + @PostMapping("/excelImport") + public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + RedissonUtils.lock(() -> devicerepairitemsService.excelImport(file, request), "导入设备档案", null); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java index 06e776b3..e92d7fff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java @@ -4,7 +4,9 @@ package org.nl.wms.masterdata_manage.em.service; import com.alibaba.fastjson.JSONObject; import org.nl.wms.masterdata_manage.em.service.dto.DevicerepairitemsDto; import org.springframework.data.domain.Pageable; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -69,4 +71,11 @@ public interface DevicerepairitemsService { * @param ids / */ void deleteAll(Long[] ids); + + /** + * 导入维修项目 + * @param file + * @param request + */ + void excelImport(MultipartFile file, HttpServletRequest request); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java index eef4dbba..0f05917b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java @@ -7,25 +7,34 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; 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.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.masterdata_manage.em.service.DevicerepairitemsService; import org.nl.wms.masterdata_manage.em.service.dto.DevicerepairitemsDto; import org.nl.wms.masterdata_manage.bfmaster.service.ClassstandardService; +import org.nl.wms.system_manage.service.tableData.ColumnInfoService; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author Liuxy @@ -157,4 +166,55 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { } } + + @Override + @Transactional + public void excelImport(MultipartFile file, HttpServletRequest request) { + try { + // 调用用 hutool 方法读取数据 调用第一个sheet白班数据 + ExcelReader excelReader = ExcelUtil.getReader(file.getInputStream(), 0); + // 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 + ColumnInfoService columnInfoService = SpringContextHolder.getBean(ColumnInfoService.class); + Map tableColumn = columnInfoService.TableColumn2("em_bi_devicerepairitems"); + List> read = excelReader.read(0, excelReader.getRowCount()); + Map IndexValue = new HashMap<>(); + for (int i = 0; i < read.get(0).size(); i++) { + String label = String.valueOf(read.get(0).get(i)); + String value = tableColumn.get(label); + if (value != null) { + IndexValue.put(i, value); + } + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + JSONArray array = new JSONArray(); + List ids = new ArrayList<>(); + for (int i = 1; i < read.size(); i++) { + List list = read.get(i); + JSONObject item = new JSONObject(); + for (int i1 = 0; i1 < list.size(); i1++) { + String s = IndexValue.get(i1); + if (s != null) { + item.put(s, list.get(i1)); + + } + } + item.put("create_id", currentUserId); + item.put("create_name", currentUsername); + item.put("create_time", now); + array.add(item); + ids.add(item.getString("repair_item_id")); + } + System.out.println(array.size()); + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicerepairitems"); // 工艺路线主表 + mstTab.delete("repair_item_id in " + "('" + ids.stream().collect(Collectors.joining("','")) + "')"); + for (Object o : array) { + mstTab.insert((JSONObject) o); + } + } catch (Exception ex) { + throw new BadRequestException(ex.getMessage()); + } + } + } diff --git a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue index 0cc48bdb..96c6898d 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue @@ -36,15 +36,6 @@ :default-time="['00:00:00','23:59:59']" /> - - - + + + 指定 + + {{ item-1 }} + + + diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue new file mode 100644 index 00000000..c1b32f7f --- /dev/null +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue @@ -0,0 +1,121 @@ + + + + diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js index 9666d5d3..1e98f0f8 100644 --- a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function excelImport(data) { + return request({ + url: 'api/devicerepairitems/excelImport', + method: 'post', + data + }) +} + +export default { add, edit, del, excelImport } diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue index 49377fb3..067588d2 100644 --- a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue @@ -42,7 +42,18 @@ - + + + 导入 + + @@ -117,10 +128,12 @@ + + + diff --git a/mes/qd/src/views/wms/stata_manage/phyivt/phyivt.js b/mes/qd/src/views/wms/stata_manage/phyivt/phyivt.js new file mode 100644 index 00000000..933cafd9 --- /dev/null +++ b/mes/qd/src/views/wms/stata_manage/phyivt/phyivt.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/phyivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/phyivt/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/phyivt', + method: 'put', + data + }) +} + +export default { add, edit, del } From f58edac2efa375a3b11198b665af82c5543a0677 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 11 Oct 2023 16:53:46 +0800 Subject: [PATCH 08/11] =?UTF-8?q?fix:=E5=88=86=E9=A1=B5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes/qd/src/components/Crud/Pagination.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mes/qd/src/components/Crud/Pagination.vue b/mes/qd/src/components/Crud/Pagination.vue index d4482fbd..4e8ae262 100644 --- a/mes/qd/src/components/Crud/Pagination.vue +++ b/mes/qd/src/components/Crud/Pagination.vue @@ -1,10 +1,11 @@