From 5354d2f6177b4b5ac5a910b9994cfadec3b553ca Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 17 Apr 2024 15:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5+=E5=8E=BB=E6=8E=89=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MesReportWorkController.java | 19 +++++++- .../com/op/mes/domain/dto/LineChartDto.java | 9 ++++ .../op/mes/mapper/MesReportWorkMapper.java | 8 ++++ .../op/mes/service/IMesReportWorkService.java | 7 +++ .../impl/MesReportWorkServiceImpl.java | 47 +++++++++++++++++++ .../mapper/mes/MesReportWorkMapper.xml | 40 +++++++++++++++- .../service/impl/ProOrderServiceImpl.java | 26 +++++----- 7 files changed, 141 insertions(+), 15 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 92ea2b92..9b2a8cb3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -21,6 +21,7 @@ import com.op.common.core.utils.uuid.IdUtils; import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.mes.domain.*; import com.op.mes.domain.dto.LineChartDto; +import com.op.mes.domain.dto.LineChartSeriesDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.SysUser; @@ -249,12 +250,28 @@ public class MesReportWorkController extends BaseController { return mesReportWorkService.getWorkcenterList(mesDailyReport); } - /**首页柱状图**/ + /**首页柱状图(产品太多了,有点乱,不用了)**/ @GetMapping("/getLineChartData") public LineChartDto getLineChartData(MesReportProduction mesReportProduction) { return mesReportWorkService.getLineChartData(mesReportProduction); } + /**首页-各线体当日计划产量(横向柱状图)**/ + @PostMapping("/getLineProData") + public List getLineProData(MesReportWork dto) { + return mesReportWorkService.getLineProData(dto); + } + /**当月各日实际产量(单折线图)**/ + @GetMapping("/getMonthProData") + public LineChartDto getMonthProData(MesReportProduction mesReportProduction) { + return mesReportWorkService.getMonthProData(mesReportProduction); + } + + /**首页-当日产品产量(饼图)**/ + @PostMapping("/getProductProData") + public List getProductProData(MesReportWork dto) { + return mesReportWorkService.getProductProData(dto); + } /** * 小时产量表头 diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartDto.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartDto.java index 251246ff..c155fcf9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartDto.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartDto.java @@ -12,6 +12,15 @@ public class LineChartDto { private List seriesNames; private List xAxisDatas; private List seriesDatas; + private List yDatas; + + public List getyDatas() { + return yDatas; + } + + public void setyDatas(List yDatas) { + this.yDatas = yDatas; + } public List getSeriesNames() { return seriesNames; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 595d4cbc..b7c9cd2d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import com.op.mes.domain.*; +import com.op.mes.domain.dto.LineChartSeriesDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; @@ -88,6 +89,9 @@ public interface MesReportWorkMapper { @MapKey("nameDate") Map getLineChartsDatas(MesReportProduction mesReportProduction); + @MapKey("name") + Map getDayOfMonthDatas(MesReportProduction mesReportProduction); + List getLineChartsNames(MesReportProduction mesReportProduction); @MapKey("equCodeHour") @@ -147,4 +151,8 @@ public interface MesReportWorkMapper { void updateReportRemark(@Param("list") List mesReportWork); BigDecimal getReportRate(String productCode); + + List getLineProData(MesReportWork dto); + + List getProductProData(MesReportWork dto); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java index db5c06ce..a3f37b90 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java @@ -7,6 +7,7 @@ import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; import com.op.mes.domain.*; import com.op.mes.domain.dto.LineChartDto; +import com.op.mes.domain.dto.LineChartSeriesDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; @@ -115,4 +116,10 @@ public interface IMesReportWorkService { int deleteBomRowNow(String id); List getWarehouseList(MesReportWorkConsume workConsume); + + List getLineProData(MesReportWork dto); + + List getProductProData(MesReportWork dto); + + LineChartDto getMonthProData(MesReportProduction mesReportProduction); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 0cd93254..50f2e53d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -464,6 +464,53 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { lineChartDto.setSeriesDatas(seriesDatas); return lineChartDto; } + + @Override + @DS("#header.poolName") + public List getLineProData(MesReportWork dto) { + List dtos = mesReportWorkMapper.getLineProData(dto); + return dtos; + } + + @Override + @DS("#header.poolName") + public List getProductProData(MesReportWork dto) { + List dtos = mesReportWorkMapper.getProductProData(dto); + return dtos; + } + + @Override + public LineChartDto getMonthProData(MesReportProduction mesReportProduction) { + LineChartDto lineChartDto = new LineChartDto(); + + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date firstDayOfMonth = calendar.getTime(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String startTime = dateFormat.format(firstDayOfMonth); + String endTime = dateFormat.format(now); + mesReportProduction.setProductDateStart(startTime); + mesReportProduction.setProductDateEnd(endTime); + + //日期名称数组 + List xAxisDatas = getDays(startTime,endTime); + lineChartDto.setxAxisDatas(xAxisDatas); + Map productdatas = mesReportWorkMapper.getLineChartsDatas(mesReportProduction); + //值 + List datas = new ArrayList<>(); + for(String dayStr:xAxisDatas) { + MesReportProduction data0 = productdatas.get(dayStr); + if (data0 != null) { + datas.add(data0.getQuantity()); + } else { + datas.add("0"); + } + } + lineChartDto.setyDatas(datas); + return lineChartDto; + } + @DS("#header.poolName") @Override public List getHourProductionList(MesHourReport mesHourReport) { diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 57c4c1a1..5b6735bf 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -303,10 +303,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where CONVERT(varchar(10),feedback_time, 120) >= #{productDateStart} and #{productDateEnd} >= CONVERT(varchar(10),feedback_time, 120) - and parent_order = '0' + and parent_order = '0' and del_flag = '0' )mrw group by mrw.nameDate,mrw.productCode,mrw.productName,mrw.feedbackTime + + + insert into mes_report_work diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 25dd78a5..26201d52 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -285,19 +285,19 @@ public class ProOrderServiceImpl implements IProOrderService { //20231127,加入belongWorkOrder概念 belongWorkOrder = workOrder.getWorkorderCode(); - //推送sap订单更新信息 - SapShopOrderQuery sapChange = new SapShopOrderQuery(); - sapChange.setAufnr(proOrder.getOrderCode());//母订单号 - BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) - .subtract(new BigDecimal(proOrder.getQuantitySplit())); - sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 - logger.info("【成品订单拆分】母订单"+proOrder.getOrderCode()+ - "订单数量变更:修改前"+proOrder.getQuantity()+","+ - ",已拆数量"+proOrder.getQuantitySplit()+","+ - "给sap汇报数量"+newSapQuantityNum.toString()); - R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 - logger.info("母订单"+proOrder.getOrderCode()+ - "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); +// //推送sap订单更新信息 +// SapShopOrderQuery sapChange = new SapShopOrderQuery(); +// sapChange.setAufnr(proOrder.getOrderCode());//母订单号 +// BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) +// .subtract(new BigDecimal(proOrder.getQuantitySplit())); +// sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 +// logger.info("【成品订单拆分】母订单"+proOrder.getOrderCode()+ +// "订单数量变更:修改前"+proOrder.getQuantity()+","+ +// ",已拆数量"+proOrder.getQuantitySplit()+","+ +// "给sap汇报数量"+newSapQuantityNum.toString()); +// R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 +// logger.info("母订单"+proOrder.getOrderCode()+ +// "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); } workOrder.setProductCode(productNameInfo.getProdCode()); workOrder.setProductName(productNameInfo.getProdDesc());