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 index 2f3530a0..2906e080 100644 --- 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 @@ -21,6 +21,8 @@ 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; @@ -47,6 +49,8 @@ public class QualityController { private IPdmProduceWorkorderService workorderService; @Autowired private IPdmBiWorkprocedureService workprocedureService; + @Autowired + private IPdmBiDeviceService deviceService; @GetMapping() @Log("查询质量分析") @@ -186,4 +190,95 @@ public class QualityController { } + @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 index 4ff8c6d1..e09927f7 100644 --- 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 @@ -19,6 +19,10 @@ public class QualityQuery { * 工序id */ private String workprocedure_id; + /** + * 设备编号 + */ + private String device_code; /** * 车间 */ 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/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 d45a1395..49467137 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 @@ -180,12 +180,19 @@ public interface IPdmProduceWorkorderService extends IService 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/mapper/PdmProduceWorkorderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java index adaecacf..b38d167b 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 @@ -68,4 +68,6 @@ public interface PdmProduceWorkorderMapper extends BaseMapper 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 43d11a3f..990a09a3 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 @@ -379,6 +379,46 @@ + 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 045f0543..cfdc4490 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 @@ -898,4 +898,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl 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/resources/logback-spring.xml b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml index 002b596c..0760580d 100644 --- a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -19,7 +19,7 @@ https://juejin.cn/post/6844903775631572999 - http://192.168.46.225:9200/_bulk + http://127.0.0.1:9200/_bulk ${esIndex} mes_log es-logger @@ -148,6 +148,7 @@ https://juejin.cn/post/6844903775631572999 + 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 c19d74ae..5f52ee57 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue @@ -48,9 +48,9 @@ - - - + + + @@ -58,16 +58,16 @@ - - - - - - - - - - + + + + + + + + + + - + - + + + - - + + - + - + - + + -
- +