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..3dd678a3 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/controller/ProductCapController.java @@ -0,0 +1,46 @@ +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.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 org.nl.wms.analysis_manage.productCapacity.service.dto.ProductCapQuery; + + +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/service/dto/ProductCapQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/service/dto/ProductCapQuery.java new file mode 100644 index 00000000..09891f83 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/productCapacity/service/dto/ProductCapQuery.java @@ -0,0 +1,38 @@ +package org.nl.wms.analysis_manage.productCapacity.service.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/qlmanage/controller/QualityController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/qlmanage/controller/QualityController.java new file mode 100644 index 00000000..2906e080 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/qlmanage/controller/QualityController.java @@ -0,0 +1,284 @@ +package org.nl.wms.analysis_manage.qlmanage.controller; + +/* + * @author ZZQ + * @Date 2023/10/8 10:24 + */ + + +import cn.hutool.core.date.*; +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.plugins.pagination.Page; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.analysis_manage.qlmanage.dto.QualityQuery; +import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; +import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; +import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.spring.web.json.Json; + +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/api/qualityanalysis") +@Slf4j +public class QualityController { + + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private IPdmBiWorkprocedureService workprocedureService; + @Autowired + private IPdmBiDeviceService deviceService; + + @GetMapping() + @Log("查询质量分析") + public ResponseEntity byMaterial(QualityQuery query, PageQuery page) { + long between = 30; + between = checkDateLimit(query, between); + + QueryWrapper wrapper = new QueryWrapper<>(); + if (StringUtils.isEmpty(query.getProduct_area())){ + query.setProduct_area("A1"); + } + wrapper.eq("product_area",query.getProduct_area()); + if (!StringUtils.isEmpty(query.getWorkprocedure_id())){ + wrapper.eq("workprocedure_id",query.getWorkprocedure_id()); + } + Page> page1 = workprocedureService.pageMaps(page.build(PdmBiWorkprocedure.class), wrapper); + String collect = page1.getRecords().stream().map(a->String.valueOf(a.get("workprocedure_id"))).collect(Collectors.joining("','")); + query.setWorkprocedure_id("('"+collect+"')"); + List list = workorderService.qualityAna(query); + if (!CollectionUtils.isEmpty(list)){ + System.out.println("有数据了!!!!"+list.size()); + } + Map> workprocedure_idMap = list.stream().collect(Collectors.groupingBy(map -> String.valueOf(map.get("workprocedure_id")))); + + //数据封装 + List> result = new ArrayList<>(); + String time = query.getStart_time(); + String mo =DatePattern.NORM_MONTH_FORMAT.format(DateUtil.parse(query.getStart_time())); + int minWeek = DateUtil.weekOfYear(DateUtil.parse(query.getStart_time())); + int minYear = DateUtil.year(DateUtil.parse(query.getStart_time())); + for (Map record : page1.getRecords()) { + Map item = new HashMap<>(); + List maps = workprocedure_idMap.get(record.get("workprocedure_id")); + item.put("workprocedure_id",record.get("workprocedure_id")); + item.put("workprocedure_name",record.get("workprocedure_name")); + item.put("workprocedure_code",record.get("workprocedure_code")); + item.put("product_area",record.get("product_area")); + Map collectByAnalysis = new HashMap<>(); + if (!CollectionUtils.isEmpty(maps)){ + collectByAnalysis = maps.stream().collect(HashMap::new, (k, v) -> k.put(String.valueOf(v.get(query.getAnalysis())), v), HashMap::putAll); + }else { + maps = new ArrayList<>(); + } + String weektime = minYear+"_"+minWeek; + String motime = mo; + String datetime = time; + for (int i = 1; i <= between; i++) { + switch (query.getAnalysis()){ + case "1": + Map itemData = collectByAnalysis.get(datetime); + if (itemData==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",datetime,"sort",i)); + }else { + itemData.put("sort",i); + itemData.put("header",datetime); + } + datetime = DatePattern.NORM_DATE_FORMAT.format(DateUtil.offset(DateUtil.parse(query.getStart_time()),DateField.DAY_OF_MONTH,i)); + break; + case "2": + Map weekData = collectByAnalysis.get(weektime); + if (weekData==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",weektime,"sort",i)); + }else { + weekData.put("sort",i); + weekData.put("header",weektime); + } + DateTime offset = DateUtil.offset(DateUtil.parse(query.getStart_time()), DateField.WEEK_OF_YEAR, i); + weektime = DateUtil.year(offset)+"_"+DateUtil.weekOfYear(offset); + break; + case "3": + Map moDAta = collectByAnalysis.get(motime); + if (moDAta==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",motime,"sort",i)); + }else { + moDAta.put("header",motime); + moDAta.put("sort",i); + } + motime = DatePattern.NORM_MONTH_FORMAT.format(DateUtil.offset(DateUtil.parse(query.getStart_time()),DateField.MONTH,i)); + break; + default:throw new BadRequestException("统计周期未定义"); + } + } + maps.removeIf(map -> map.get("sort")==null); + maps.sort(Comparator.comparing(a->(int)a.get("sort"))); + item.put("item",maps); + item.put("viewData",maps.stream().map(a->a.get("nok_rate")).collect(Collectors.toList())); + item.put("header",maps.stream().map(a->a.get("header")).collect(Collectors.toList())); + item.put("total_real_qty",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("real_qty")))).sum()); + item.put("total_nok_qty",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("nok_qty")))).sum()); + item.put("total_order_count",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("order_count")))).sum()); + result.add(item); + } + page1.setRecords(result); + System.out.println(list.size()); + return new ResponseEntity<>(TableDataInfo.build(page1), HttpStatus.OK); + } + + private long checkDateLimit(QualityQuery query, long between) { + if (StringUtils.isEmpty(query.getAnalysis())){ + query.setAnalysis("1"); + } + if (query.getAnalysis().equals("1")){ + if (query.getStart_time()!=null){ + between = DateUtil.between(DateUtil.parse(query.getStart_time()), DateUtil.parse(query.getEnd_time()), DateUnit.DAY); + if (between >30){ + throw new BadRequestException("日汇总请选择时间周期为一个月之内"); + } + }else { + query.setEnd_time(DateUtil.today()); + query.setStart_time(DatePattern.NORM_DATE_FORMAT.format(DateUtil.lastMonth())); + } + } + if (query.getAnalysis().equals("2")){ + if (query.getStart_time()!=null){ + between = DateUtil.between(DateUtil.parse(query.getStart_time()), DateUtil.parse(query.getEnd_time()), DateUnit.WEEK); + if (between >30){ + throw new BadRequestException("日汇总请选择时间周期为一个月之内"); + } + }else { + query.setEnd_time(DateUtil.today()); + query.setStart_time(DatePattern.NORM_DATE_FORMAT.format(DateUtil.offset(new Date(), DateField.WEEK_OF_MONTH, -30))); + } + } + if (query.getAnalysis().equals("3")){ + if (query.getStart_time()!=null){ + between = DateUtil.betweenMonth(DateUtil.parse(query.getStart_time()), DateUtil.parse(query.getEnd_time()),true)+1; + if (between >24){ + throw new BadRequestException("月汇总请选择时间周期为2年之内"); + } + }else { + query.setEnd_time(DateUtil.today()); + query.setStart_time(DatePattern.NORM_DATE_FORMAT.format(DateUtil.offset(new Date(), DateField.MONTH, -24))); + between =24; + } + } + return between; + } + + + @GetMapping("/bydevice") + @Log("查询质量分析") + public ResponseEntity bydevice(QualityQuery query, PageQuery page) { + long between = 30; + between = checkDateLimit(query, between); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("workprocedure_id",query.getWorkprocedure_id()); + + Page> page1 = deviceService.pageMaps(page.build(PdmBiDevice.class), wrapper); + String collect = page1.getRecords().stream().map(a->String.valueOf(a.get("device_code"))).collect(Collectors.joining("','")); + query.setDevice_code("('"+collect+"')"); + List list = workorderService.qualityAnaByDevice(query); + if (!CollectionUtils.isEmpty(list)){ + System.out.println("有数据了!!!!"+list.size()); + } + Map> device_codeMap = list.stream().collect(Collectors.groupingBy(map -> String.valueOf(map.get("device_code")))); + + //数据封装 + List> result = new ArrayList<>(); + String time = query.getStart_time(); + String mo =DatePattern.NORM_MONTH_FORMAT.format(DateUtil.parse(query.getStart_time())); + int minWeek = DateUtil.weekOfYear(DateUtil.parse(query.getStart_time())); + int minYear = DateUtil.year(DateUtil.parse(query.getStart_time())); + for (Map record : page1.getRecords()) { + Map item = new HashMap<>(); + List maps = device_codeMap.get(record.get("device_code")); + item.put("device_code",record.get("device_code")); + item.put("device_name",record.get("device_name")); + item.put("product_area",record.get("product_area")); + Map collectByAnalysis = new HashMap<>(); + if (!CollectionUtils.isEmpty(maps)){ + collectByAnalysis = maps.stream().collect(HashMap::new, (k, v) -> k.put(String.valueOf(v.get(query.getAnalysis())), v), HashMap::putAll); + }else { + maps = new ArrayList<>(); + } + String weektime = minYear+"_"+minWeek; + String motime = mo; + String datetime = time; + for (int i = 1; i <= between; i++) { + switch (query.getAnalysis()){ + case "1": + Map itemData = collectByAnalysis.get(datetime); + if (itemData==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",datetime,"sort",i)); + }else { + itemData.put("sort",i); + itemData.put("header",datetime); + } + datetime = DatePattern.NORM_DATE_FORMAT.format(DateUtil.offset(DateUtil.parse(query.getStart_time()),DateField.DAY_OF_MONTH,i)); + break; + case "2": + Map weekData = collectByAnalysis.get(weektime); + if (weekData==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",weektime,"sort",i)); + }else { + weekData.put("sort",i); + weekData.put("header",weektime); + } + DateTime offset = DateUtil.offset(DateUtil.parse(query.getStart_time()), DateField.WEEK_OF_YEAR, i); + weektime = DateUtil.year(offset)+"_"+DateUtil.weekOfYear(offset); + break; + case "3": + Map moDAta = collectByAnalysis.get(motime); + if (moDAta==null){ + maps.add(MapOf.of("order_count", "0", "plan_qty", "0", "real_qty", "0", "nok_qty", "0","nok_rate",0,"header",motime,"sort",i)); + }else { + moDAta.put("header",motime); + moDAta.put("sort",i); + } + motime = DatePattern.NORM_MONTH_FORMAT.format(DateUtil.offset(DateUtil.parse(query.getStart_time()),DateField.MONTH,i)); + break; + default:throw new BadRequestException("统计周期未定义"); + } + } + maps.removeIf(map -> map.get("sort")==null); + maps.sort(Comparator.comparing(a->(int)a.get("sort"))); + item.put("item",maps); + item.put("viewData",maps.stream().map(a->a.get("nok_rate")).collect(Collectors.toList())); + item.put("header",maps.stream().map(a->a.get("header")).collect(Collectors.toList())); + item.put("total_real_qty",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("real_qty")))).sum()); + item.put("total_nok_qty",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("nok_qty")))).sum()); + item.put("total_order_count",maps.stream().mapToLong(a->Long.valueOf(String.valueOf(a.get("order_count")))).sum()); + result.add(item); + } + page1.setRecords(result); + System.out.println(list.size()); + return new ResponseEntity<>(TableDataInfo.build(page1), HttpStatus.OK); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/qlmanage/dto/QualityQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/qlmanage/dto/QualityQuery.java new file mode 100644 index 00000000..e09927f7 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/analysis_manage/qlmanage/dto/QualityQuery.java @@ -0,0 +1,45 @@ +package org.nl.wms.analysis_manage.qlmanage.dto; + +import cn.hutool.core.date.DateUtil; +import lombok.Data; + +import java.util.Date; + +/* + * @author ZZQ + * @Date 2023/10/8 10:25 + */ +@Data +public class QualityQuery { + /** + * 分析时间:1日2周3月 + */ + private String analysis; + /** + * 工序id + */ + private String workprocedure_id; + /** + * 设备编号 + */ + private String device_code; + /** + * 车间 + */ + 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/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/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/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/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java index 8a3373ea..0ae07fc1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java @@ -39,5 +39,5 @@ public interface IMdPbBucketrecordService extends IService { */ void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response); - List getMstList(String storagevehicle_code); + List getMstList(String storagevehicle_code,String sale_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java index 50cd98f0..37fc0277 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.masterdata_manage.service.vehicle.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -18,5 +19,5 @@ public interface MdPbBucketrecordMapper extends BaseMapper { List queryAll(Map map); - List getMstList(String storagevehicle_code); + List getMstList(@Param("storagevehicle_code") String storagevehicle_code,@Param("sale_code") String sale_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml index e3b4a16d..d8f38871 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml @@ -16,7 +16,7 @@ and ma.material_id = #{material_id} - and re.sale_code like '${sale_code}%' + and re.sale_code like '%${sale_code}%' and re.storagevehicle_type = #{storagevehicle_type} @@ -25,10 +25,10 @@ and re.status = #{status} - and re.storagevehicle_code like '${storagevehicle_code}%' + and re.storagevehicle_code like '%${storagevehicle_code}%' - and ( re.bucketunique like '${bucketunique}%' ) + and ( re.bucketunique like '%${bucketunique}%' ) order by re.create_time DESC @@ -39,7 +39,10 @@ from md_pb_bucketrecord,(select @rowcount := 0) as r where status = '1' - and storagevehicle_code like '${storagevehicle_code}%' + and storagevehicle_code like '%${storagevehicle_code}%' + + + and sale_code like '%${sale_code}%' GROUP BY storagevehicle_code,sale_code,create_time diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java index b1641899..144e7140 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java @@ -278,7 +278,7 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl getMstList(String storagevehicle_code) { - return this.baseMapper.getMstList(storagevehicle_code); + public List getMstList(String storagevehicle_code,String sale_code) { + return this.baseMapper.getMstList(storagevehicle_code,sale_code); } } 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..16b9309f 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,22 @@ 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); + + /** + * 收发存查询 + * @return / + */ + List getPhyIvt(@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..08a1f96b 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,96 @@ + + + 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/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/pda_manage/pda/controller/PdaProductIosController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java index 007882c6..fbba2c85 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java @@ -92,13 +92,13 @@ public class PdaProductIosController { } @PostMapping("/bucket") - @Log("根据订单获取订单物料信息") + @Log("查询订单组盘记录") //("根据订单获取订单物料信息") public ResponseEntity bucket(@RequestBody JSONObject param) { String storagevehicleCode = param.getString("storagevehicle_code"); List mstList= new ArrayList<>(); if (param.getString("sale_code")!=null){ - mstList = bucketrecordService.getMstList(storagevehicleCode); + mstList = bucketrecordService.getMstList(storagevehicleCode,param.getString("sale_code")); }else { List> maps = bucketrecordService.listMaps(new QueryWrapper() .eq("storagevehicle_code", storagevehicleCode).eq("status", "1")); 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 a608c8e7..62852fce 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,9 @@ 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.service.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.qlmanage.dto.QualityQuery; +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 +158,41 @@ 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); + + /** + * 车间质量统计分析 + * @param query + * @return + */ + List qualityAna(QualityQuery query); + + /** + * 车间工序质量统计分析 + * @param query + * @return + */ + List qualityAnaByDevice(QualityQuery 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 21c90743..e6aa4102 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 d5b4c629..facbf59c 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 @@ -1,8 +1,10 @@ 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.service.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.qlmanage.dto.QualityQuery; +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; @@ -56,4 +58,25 @@ public interface PdmProduceWorkorderMapper extends BaseMapper queryAdjustWorkOrder(String device_code); + /** + * 不合格品统计 + * @param query + * @return + */ + List scrapRate(ScrapRateQuery query); + /** + * 不合格品统计 + * @param query + * @return + */ + List productCap(ProductCapQuery query); + /** + * 工序质量统计 + * @param query + * @return + */ + List qualityAnalysis(QualityQuery query); + + List qualityAnalysisByDevice(QualityQuery 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 a9c6432a..d5a10f05 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 @@ -21,7 +21,7 @@ LEFT JOIN md_me_materialbase material ON material.material_id = ShiftOrder.material_id LEFT JOIN PDM_BI_WorkProcedure pro ON pro.workprocedure_id = ShiftOrder.workprocedure_id LEFT JOIN sys_user users ON users.user_id = ShiftOrder.current_produce_person_id - LEFT JOIN pdm_bi_device device ON ShiftOrder.device_code = device.device_code + LEFT JOIN pdm_bi_device device ON ShiftOrder.device_code = device.device_code WHERE ShiftOrder.is_delete = '0' @@ -31,41 +31,40 @@ and find_in_set(ShiftOrder.workorder_status, #{query.order_status}) - and (ShiftOrder.device_code like concat('%',${query.device_code},'%') or ShiftOrder.device_name like - concat('%',${query.device_code},'%')) + and (ShiftOrder.device_code like concat('%',${query.device_code},'%') or ShiftOrder.device_name like concat('%',${query.device_code},'%')) - and ShiftOrder.shift_type_scode = #{query.shift_type_scode} + and ShiftOrder.shift_type_scode = #{query.shift_type_scode} - and pro.workprocedure_id = #{query.workprocedure_id} + and pro.workprocedure_id = #{query.workprocedure_id} - and pro.workprocedure_code IN #{query.workprocedure_codes} + and pro.workprocedure_code IN #{query.workprocedure_codes} - and ShiftOrder.product_area = #{query.product_area} + and ShiftOrder.product_area = #{query.product_area} - and ShiftOrder.is_error = #{query.is_error} + and ShiftOrder.is_error = #{query.is_error} - and ShiftOrder.materialprocess_series in ${query.product_series} + and ShiftOrder.materialprocess_series in ${query.product_series} - and ShiftOrder.realproducestart_date >= #{query.start_time} + and ShiftOrder.realproducestart_date >= #{query.start_time} - and ShiftOrder.realproduceend_date <= #{query.end_time} + and ShiftOrder.realproduceend_date <= #{query.end_time} and STR_TO_DATE(ShiftOrder.planproducestart_date, '%Y/%m/%d %H:%i:%s') >= #{query.plan_start_time} - and STR_TO_DATE(ShiftOrder.planproduceend_date, '%Y/%m/%d %H:%i:%s') <= #{query.plan_end_time} + and STR_TO_DATE(ShiftOrder.planproduceend_date, '%Y/%m/%d %H:%i:%s') <= #{query.plan_end_time} - and ShiftOrder.sale_id like '%${query.sale_id}%' + and ShiftOrder.sale_id like '%${query.sale_id}%' and ( @@ -222,14 +221,7 @@ - insert into pdm_produce_workorder(workorder_id,workorder_code, shift_type_scode, workprocedure_id, product_area, - plan_qty, person_real_qty, dq_real_qty, material_id, material_weight, planproducestart_date, - planproduceend_date, realproducestart_date, realproduceend_date, device_code, current_produce_person_id, - is_canupdate_update, materialprocess_series, workorder_status, is_needmove, sale_id, create_type, is_error, - error_info, remark, create_id, create_name, create_time, is_delete, report_qty, order_type_scode, nok_qty, - repare_qty, down_id, down_name, down_time, confirm_id, confirm_name, confirm_time, aps_workorder_status, - aps_update_flag, aps_update_time, package_ext, is_used_fxx, aps_update_inner_flag, - update_id, update_name, update_time, device_name) + insert into pdm_produce_workorder(workorder_id,workorder_code, shift_type_scode, workprocedure_id, product_area, plan_qty, person_real_qty, dq_real_qty, material_id, material_weight, planproducestart_date, planproduceend_date, realproducestart_date, realproduceend_date, device_code, current_produce_person_id, is_canupdate_update, materialprocess_series, workorder_status, is_needmove, sale_id, create_type, is_error, error_info, remark, create_id, create_name, create_time, is_delete, report_qty, order_type_scode, nok_qty, repare_qty, down_id, down_name, down_time, confirm_id, confirm_name, confirm_time, aps_workorder_status, aps_update_flag, aps_update_time, package_ext, is_used_fxx, aps_workprocedure_no, aps_update_inner_flag, update_id, update_name, update_time, device_name) values (#{entity.workorder_id},#{entity.workorder_code}, #{entity.shift_type_scode}, #{entity.workprocedure_id}, @@ -281,8 +273,8 @@ and pdm_produce_workorder.product_area >= #{product_area} - - and #{end_time} >= pdm_produce_workorder.create_time + + and #{end_time} >= pdm_produce_workorder.create_time and ( 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 5169d380..85705d5a 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 @@ -7,7 +7,6 @@ import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -28,13 +27,15 @@ 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.service.dto.ProductCapQuery; +import org.nl.wms.analysis_manage.qlmanage.dto.QualityQuery; +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; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.mps_manage.other.service.dto.ProduceshiftorderDto; -import org.nl.wms.mps_manage.saleorder.service.IMpsSaleOrderService; import org.nl.wms.mps_manage.saleorder.service.dao.MpsSaleOrder; import org.nl.wms.mps_manage.saleorder.service.impl.MpsSaleOrderServiceImpl; import org.nl.wms.product_manage.service.workorder.dao.WorkorderRecord; @@ -203,7 +204,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 +270,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)); @@ -886,4 +891,27 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl queryAdjustWorkOrder(String device_code) { return pdmProduceWorkorderMapper.queryAdjustWorkOrder(device_code); } + + @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; + } + + @Override + public List qualityAna(QualityQuery query) { + List maps = this.baseMapper.qualityAnalysis(query); + return maps; + } + + @Override + public List qualityAnaByDevice(QualityQuery query) { + List maps = this.baseMapper.qualityAnalysisByDevice(query); + return maps; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/PhyivtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/PhyivtController.java new file mode 100644 index 00000000..b061a258 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/rest/PhyivtController.java @@ -0,0 +1,38 @@ + +package org.nl.wms.stata_manage.rest; + + +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.PhyivtService; +import org.springframework.data.domain.Pageable; +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.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author Liuxy + * @date 2022-06-28 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "收发存查询") +@RequestMapping("/api/phyivt") +@Slf4j +public class PhyivtController { + + private final PhyivtService phyivtService; + + @GetMapping + @ApiOperation("库存查询") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(phyivtService.queryAll(whereJson, page), HttpStatus.OK); + } +} 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/PhyivtService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/PhyivtService.java new file mode 100644 index 00000000..a54c6cca --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/PhyivtService.java @@ -0,0 +1,24 @@ + +package org.nl.wms.stata_manage.service; + +import org.springframework.data.domain.Pageable; + +import java.util.Map; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2022-06-28 + **/ +public interface PhyivtService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + +} 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/PhyivtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/PhyivtServiceImpl.java new file mode 100644 index 00000000..5e07d1a5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/stata_manage/service/impl/PhyivtServiceImpl.java @@ -0,0 +1,69 @@ + +package org.nl.wms.stata_manage.service.impl; + + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.common.utils.PageUtil; +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.nl.wms.stata_manage.service.PhyivtService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +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 PhyivtServiceImpl implements PhyivtService { + + @Autowired + private StIvtStructivtDailyMapper stIvtStructivtDailyMapper; + + @Override + public Map queryAll(Map whereJson, Pageable page) { + + whereJson.put("begin_time", MapUtil.getStr(whereJson, "begin_time").substring(0,10)); + whereJson.put("end_time", MapUtil.getStr(whereJson, "end_time").substring(0,10)); + + List phyIvtList = stIvtStructivtDailyMapper.getPhyIvt(whereJson); + + // 计算期初数 + List beginList = stIvtStructivtDailyMapper.selectList( + new QueryWrapper().lambda() + .eq(StIvtStructivtDaily::getCreate_time, MapUtil.getStr(whereJson, "begin_time").substring(0, 10)) + ); + + for(JSONObject json : phyIvtList) { + + List dao = beginList.stream() + .filter(row -> row.getMaterial_id().equals(json.getString("material_id"))) + .collect(Collectors.toList()); + + json.put("begin_qty", ObjectUtil.isNotEmpty(dao) ? dao.get(0).getCanuse_qty() : 0); + + } + + // 处理分页 + Map json = PageUtil.toPage( + PageUtil.toPage(page.getPageNumber(), page.getPageSize(), phyIvtList), + phyIvtList.size() + ); + + return json; + } + +} 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/hd/nladmin-system/src/main/resources/config/application.yml b/mes/hd/nladmin-system/src/main/resources/config/application.yml index a1b17757..2cd47978 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: dev3 + active: prod jackson: time-zone: GMT+8 data: diff --git a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml index 002b596c..896ffa31 100644 --- a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -148,6 +148,7 @@ https://juejin.cn/post/6844903775631572999 + 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 @@ + + + + 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/WorkprodureDevDialog.vue b/mes/qd/src/views/wms/analysis_manage/qlmanage/WorkprodureDevDialog.vue new file mode 100644 index 00000000..02f882a2 --- /dev/null +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/WorkprodureDevDialog.vue @@ -0,0 +1,197 @@ + + + + + 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..5f52ee57 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue @@ -9,50 +9,64 @@ label-width="80px" label-suffix=":" > - - - - - + + + + + + + + + + + + + + + + + + - - 同步 - - - + @@ -60,100 +74,84 @@ ref="table" v-loading="crud.loading" :data="crud.data" + :render-header="labelHead" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler" > - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 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 } diff --git a/mes/qd/src/views/wms/analysis_manage/workProgress/index.vue b/mes/qd/src/views/wms/analysis_manage/workProgress/index.vue index 37a215c3..a6096e83 100644 --- a/mes/qd/src/views/wms/analysis_manage/workProgress/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/workProgress/index.vue @@ -87,7 +87,7 @@ + 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 } 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 +} diff --git a/mes/qd/src/views/wms/storage_manage/product/bucketRecord/index.vue b/mes/qd/src/views/wms/storage_manage/product/bucketRecord/index.vue index c2d6efc8..b562020d 100644 --- a/mes/qd/src/views/wms/storage_manage/product/bucketRecord/index.vue +++ b/mes/qd/src/views/wms/storage_manage/product/bucketRecord/index.vue @@ -19,6 +19,22 @@ + + + + + diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index 3ef07ba6..92d8d2bf 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -226,7 +226,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC ThreadUtl.sleep((long) (5000 + random)); // ThreadUtl.sleep((long) ((new Random()).nextInt(3) +1) * 10000); -// break start; + break start; } else if (this.all_null < 6) { if (log.isWarnEnabled()) { log.warn(tag + "重新创建server");