diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java index c326491..9bc6551 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java @@ -1,6 +1,5 @@ package com.casic.missiles.dto.cockpit; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,10 +23,10 @@ private Integer samples = 0; @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; - @ApiModelProperty(value = "产值总计(单位分)", dataType = "Integer") + @ApiModelProperty(value = "产值总计(分)", dataType = "Integer") private Integer outPut; - @ExcelProperty(value = "产值总计(元)", order = 10) + @ApiModelProperty(value = "产值总计(元)", dataType = "String") private String outPutYuan; public String getOutPutYuan() { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java index c326491..9bc6551 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java @@ -1,6 +1,5 @@ package com.casic.missiles.dto.cockpit; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,10 +23,10 @@ private Integer samples = 0; @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; - @ApiModelProperty(value = "产值总计(单位分)", dataType = "Integer") + @ApiModelProperty(value = "产值总计(分)", dataType = "Integer") private Integer outPut; - @ExcelProperty(value = "产值总计(元)", order = 10) + @ApiModelProperty(value = "产值总计(元)", dataType = "String") private String outPutYuan; public String getOutPutYuan() { diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java new file mode 100644 index 0000000..4780051 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 14:20 + */ +@ApiModel +@Data +public class DeptOutputRatioResponse { + @ApiModelProperty(value = "产值总计(元)", dataType = "String") + private String outPutYuan; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java index c326491..9bc6551 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java @@ -1,6 +1,5 @@ package com.casic.missiles.dto.cockpit; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,10 +23,10 @@ private Integer samples = 0; @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; - @ApiModelProperty(value = "产值总计(单位分)", dataType = "Integer") + @ApiModelProperty(value = "产值总计(分)", dataType = "Integer") private Integer outPut; - @ExcelProperty(value = "产值总计(元)", order = 10) + @ApiModelProperty(value = "产值总计(元)", dataType = "String") private String outPutYuan; public String getOutPutYuan() { diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java new file mode 100644 index 0000000..4780051 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 14:20 + */ +@ApiModel +@Data +public class DeptOutputRatioResponse { + @ApiModelProperty(value = "产值总计(元)", dataType = "String") + private String outPutYuan; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java new file mode 100644 index 0000000..fb540ba --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 13:24 + */ +@ApiModel +@Data +public class WorkRatioResponse { + @ApiModelProperty(value = "本月检完样品", dataType = "Integer") + private Integer measuredSampleCount; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java index c326491..9bc6551 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java @@ -1,6 +1,5 @@ package com.casic.missiles.dto.cockpit; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,10 +23,10 @@ private Integer samples = 0; @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; - @ApiModelProperty(value = "产值总计(单位分)", dataType = "Integer") + @ApiModelProperty(value = "产值总计(分)", dataType = "Integer") private Integer outPut; - @ExcelProperty(value = "产值总计(元)", order = 10) + @ApiModelProperty(value = "产值总计(元)", dataType = "String") private String outPutYuan; public String getOutPutYuan() { diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java new file mode 100644 index 0000000..4780051 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 14:20 + */ +@ApiModel +@Data +public class DeptOutputRatioResponse { + @ApiModelProperty(value = "产值总计(元)", dataType = "String") + private String outPutYuan; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java new file mode 100644 index 0000000..fb540ba --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 13:24 + */ +@ApiModel +@Data +public class WorkRatioResponse { + @ApiModelProperty(value = "本月检完样品", dataType = "Integer") + private Integer measuredSampleCount; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java index b220332..e572716 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java @@ -94,18 +94,10 @@ } @Override - public List deptOutputList() { + public List deptOutputList(String startTime, String endTime) { BoardBaseRequest request = new BoardBaseRequest(); - Calendar c = Calendar.getInstance(); - c.add(Calendar.MONTH, 0); - c.set(Calendar.DAY_OF_MONTH, 1); - c.set(Calendar.HOUR_OF_DAY, 0); - c.set(Calendar.MINUTE, 0); - c.set(Calendar.SECOND, 0); - Date m = c.getTime(); - String format = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); - request.setStartTime(format); - request.setEndTime(DateUtil.now()); + request.setStartTime(startTime); + request.setEndTime(endTime); BoardDeptOutputListResponse response = boardService.deptOutputList(request); List list = response.getList(); if(CollectionUtils.isEmpty(list)){ @@ -122,6 +114,46 @@ } @Override + public DeptOutputRatioResponse deptOutputRatio() { + //本月产值 + String thisMonthStartTime = DateUtils.getThisMonthFirst(); + List thisMonthResponses = this.deptOutputList(thisMonthStartTime, DateUtil.now()); + int thisMonthSum = thisMonthResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + String outPutYuan = BigDecimal.valueOf(thisMonthSum).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP).toPlainString(); + //上月产值 + String lastMonthStartTime = DateUtils.getLastMonthFirst(); + String lastMonthEndTime = DateUtils.getThisMonthFirst(); + List lastMonthResponses = this.deptOutputList(lastMonthStartTime, lastMonthEndTime); + int lastMonthSum = lastMonthResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + //去年上月产值 + String lastYearThisMonthStartTime = DateUtils.getLastYearThisMonthFirst(); + String lastYearThisMonthEndTime = DateUtils.getLastYearThisMonthEnd(); + List lastYearResponses = this.deptOutputList(lastYearThisMonthStartTime, lastYearThisMonthEndTime); + int lastYearSum = lastYearResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + + BigDecimal thisMonthCount = BigDecimal.valueOf(Double.valueOf(thisMonthSum)); + //同比 + String sameRatio = "100.00%"; + if(0 != lastYearSum){ + BigDecimal lastYearCount = BigDecimal.valueOf(Double.valueOf(lastYearSum)); + BigDecimal sameRatioBigDecimal = thisMonthCount.subtract(lastYearCount).divide(lastYearCount, 2, BigDecimal.ROUND_HALF_UP); + sameRatio = sameRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + //环比 + String ringRatio = "100.00%"; + if(0 != lastMonthSum){ + BigDecimal lastMonthCount = BigDecimal.valueOf(Double.valueOf(lastMonthSum)); + BigDecimal ringRatioBigDecimal = thisMonthCount.subtract(lastMonthCount).divide(lastMonthCount, 2, BigDecimal.ROUND_HALF_UP); + ringRatio = ringRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + DeptOutputRatioResponse response = new DeptOutputRatioResponse(); + response.setOutPutYuan(outPutYuan); + response.setSameRatio(sameRatio); + response.setRingRatio(ringRatio); + return response; + } + + @Override public List workList() { BoardDeptComprehensiveRequest request = new BoardDeptComprehensiveRequest(); Calendar c = Calendar.getInstance(); @@ -138,6 +170,44 @@ } @Override + public WorkRatioResponse workRatio() { + //本月检完样品数,包括检测完成和待归还的,使用更新时间判断 + String now = DateUtil.now(); + WorkRatioResponse thisMonthResponse = orderSampleRelationMapper.selectCountByMonth(now); + //上月 + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + Date m = c.getTime(); + String lastMonth = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + WorkRatioResponse lastMonthResponse = orderSampleRelationMapper.selectCountByMonth(lastMonth); + //去年上月 + Calendar cc = Calendar.getInstance(); + cc.add(Calendar.YEAR, -1); + Date y = cc.getTime(); + String lastYear = DateUtil.format(y, "yyyy-MM-dd HH:mm:ss"); + WorkRatioResponse lastYearResponse = orderSampleRelationMapper.selectCountByMonth(lastYear); + + BigDecimal thisMonthCount = BigDecimal.valueOf(Double.valueOf(thisMonthResponse.getMeasuredSampleCount())); + //同比 + String sameRatio = "100.00%"; + if(0 != lastYearResponse.getMeasuredSampleCount()){ + BigDecimal lastYearCount = BigDecimal.valueOf(Double.valueOf(lastYearResponse.getMeasuredSampleCount())); + BigDecimal sameRatioBigDecimal = thisMonthCount.subtract(lastYearCount).divide(lastYearCount, 2, BigDecimal.ROUND_HALF_UP); + sameRatio = sameRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + //环比 + String ringRatio = "100.00%"; + if(0 != lastMonthResponse.getMeasuredSampleCount()){ + BigDecimal lastMonthCount = BigDecimal.valueOf(Double.valueOf(lastMonthResponse.getMeasuredSampleCount())); + BigDecimal ringRatioBigDecimal = thisMonthCount.subtract(lastMonthCount).divide(lastMonthCount, 2, BigDecimal.ROUND_HALF_UP); + ringRatio = ringRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + thisMonthResponse.setSameRatio(sameRatio); + thisMonthResponse.setRingRatio(ringRatio); + return thisMonthResponse; + } + + @Override public OverdueSampleResponse overdueSample() { //超期样品数 Integer sampleOverdueCount = orderSampleRelationMapper.selectCountForCockpit(4, "month"); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java index cb3e43b..0d6f1e3 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/cockpit/MeasureTaskController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.cockpit; +import cn.hutool.core.date.DateUtil; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.BoardDeptComprehensiveResponse; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Calendar; +import java.util.Date; + /** * @Description: 计量管理驾驶舱-计量任务 * @Author: wangpeng @@ -43,26 +47,43 @@ } /** - * 工作分析(本月),使用业务管理-业务看板中部门综合分析,缺少同比、环比、本月检完样品总数 + * 部门工作分析情况(本月),使用业务管理-业务看板中部门综合分析 */ - @ApiOperation("工作分析(本月)") + @ApiOperation("部门工作分析情况(本月)") @GetMapping("/work/list") public ReturnDTO workList() { return ReturnUtil.success(measureTaskService.workList()); } - /** - * 产值分析(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计,缺少同比、环比、总产值 - */ - @ApiOperation("产值分析(本月)") - @GetMapping("/output/list") - public ReturnDTO deptOutputList() { - return ReturnUtil.success(measureTaskService.deptOutputList()); + @ApiOperation("本月检完样品、同比、环比") + @GetMapping("/work/ratio") + public ReturnDTO workRatio() { + return ReturnUtil.success(measureTaskService.workRatio()); } /** - * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + * 部门产值分析情况(本月),使用业务管理-业务看板中部门产值分析改造成按部门分组统计 */ + @ApiOperation("部门产值分析情况(本月)") + @GetMapping("/output/list") + public ReturnDTO deptOutputList() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return ReturnUtil.success(measureTaskService.deptOutputList(startTime, DateUtil.now())); + } + + @ApiOperation("本月产值、同比、环比") + @GetMapping("/output/ratio") + public ReturnDTO deptOutputRatio() { + return ReturnUtil.success(measureTaskService.deptOutputRatio()); + } + @ApiOperation("本月调度工况-超期样品信息") @GetMapping("/situation/overdueSample") public ReturnDTO overdueSample() { @@ -70,6 +91,10 @@ } /** + * 本月调度工况,中间的各实验室样品超期数量在部门综合分析中有,建议直接放到工作分析中展示 + */ + + /** * 本月调度工况-合格信息,样品检测合格与否无该信息,待和产品确认 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java index b65db87..324d1d8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.casic.missiles.utils; +import cn.hutool.core.date.DateUtil; + import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -7,6 +9,8 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -74,4 +78,66 @@ return list; } + /** + * 本月1日0点 + */ + public static String getThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 上月1日0点 + */ + public static String getLastMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月一日0点 + */ + public static String getLastYearThisMonthFirst() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } + + /** + * 去年同月最后一日12点 + */ + public static String getLastYearThisMonthEnd() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + //去年相对今年本月的下一个月的第一天的0点 + c.add(Calendar.MONTH, 1); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + Date m = c.getTime(); + String startTime = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + return startTime; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index d6ff005..4437c4d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -13,6 +13,7 @@ import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; import com.casic.missiles.dto.cockpit.BusTrendResponse; +import com.casic.missiles.dto.cockpit.WorkRatioResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.dto.finance.SamplePriceDTO; import com.casic.missiles.dto.finance.SettlementSampleDTO; @@ -68,4 +69,6 @@ Integer selectCountForCockpit(@Param("type") int type, @Param("dimension") String dimension); List selectPreMonthCountByYear(); + + WorkRatioResponse selectCountByMonth(@Param("date") String date); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 5a4b1dc..dc0af38 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -452,7 +452,7 @@ AND bo.require_over_time >= NOW() - and DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') + AND DATE_FORMAT(bo.require_over_time, '%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m') @@ -465,4 +465,14 @@ AND DATE_SUB(CURDATE(), INTERVAL 365 DAY) <= DATE(bo.order_time) GROUP BY DATE_FORMAT(bo.order_time,'%Y-%m') + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java index c326491..9bc6551 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/CockpitDeptOutputListResponse.java @@ -1,6 +1,5 @@ package com.casic.missiles.dto.cockpit; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,10 +23,10 @@ private Integer samples = 0; @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; - @ApiModelProperty(value = "产值总计(单位分)", dataType = "Integer") + @ApiModelProperty(value = "产值总计(分)", dataType = "Integer") private Integer outPut; - @ExcelProperty(value = "产值总计(元)", order = 10) + @ApiModelProperty(value = "产值总计(元)", dataType = "String") private String outPutYuan; public String getOutPutYuan() { diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java new file mode 100644 index 0000000..4780051 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/DeptOutputRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 14:20 + */ +@ApiModel +@Data +public class DeptOutputRatioResponse { + @ApiModelProperty(value = "产值总计(元)", dataType = "String") + private String outPutYuan; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java new file mode 100644 index 0000000..fb540ba --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/cockpit/WorkRatioResponse.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/6/15 13:24 + */ +@ApiModel +@Data +public class WorkRatioResponse { + @ApiModelProperty(value = "本月检完样品", dataType = "Integer") + private Integer measuredSampleCount; + @ApiModelProperty(value = "同比", dataType = "String") + private String sameRatio; + @ApiModelProperty(value = "环比", dataType = "String") + private String ringRatio; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java index b220332..e572716 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/cockpit/MeasureTaskServiceImpl.java @@ -94,18 +94,10 @@ } @Override - public List deptOutputList() { + public List deptOutputList(String startTime, String endTime) { BoardBaseRequest request = new BoardBaseRequest(); - Calendar c = Calendar.getInstance(); - c.add(Calendar.MONTH, 0); - c.set(Calendar.DAY_OF_MONTH, 1); - c.set(Calendar.HOUR_OF_DAY, 0); - c.set(Calendar.MINUTE, 0); - c.set(Calendar.SECOND, 0); - Date m = c.getTime(); - String format = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); - request.setStartTime(format); - request.setEndTime(DateUtil.now()); + request.setStartTime(startTime); + request.setEndTime(endTime); BoardDeptOutputListResponse response = boardService.deptOutputList(request); List list = response.getList(); if(CollectionUtils.isEmpty(list)){ @@ -122,6 +114,46 @@ } @Override + public DeptOutputRatioResponse deptOutputRatio() { + //本月产值 + String thisMonthStartTime = DateUtils.getThisMonthFirst(); + List thisMonthResponses = this.deptOutputList(thisMonthStartTime, DateUtil.now()); + int thisMonthSum = thisMonthResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + String outPutYuan = BigDecimal.valueOf(thisMonthSum).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP).toPlainString(); + //上月产值 + String lastMonthStartTime = DateUtils.getLastMonthFirst(); + String lastMonthEndTime = DateUtils.getThisMonthFirst(); + List lastMonthResponses = this.deptOutputList(lastMonthStartTime, lastMonthEndTime); + int lastMonthSum = lastMonthResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + //去年上月产值 + String lastYearThisMonthStartTime = DateUtils.getLastYearThisMonthFirst(); + String lastYearThisMonthEndTime = DateUtils.getLastYearThisMonthEnd(); + List lastYearResponses = this.deptOutputList(lastYearThisMonthStartTime, lastYearThisMonthEndTime); + int lastYearSum = lastYearResponses.stream().mapToInt(CockpitDeptOutputListResponse::getOutPut).sum(); + + BigDecimal thisMonthCount = BigDecimal.valueOf(Double.valueOf(thisMonthSum)); + //同比 + String sameRatio = "100.00%"; + if(0 != lastYearSum){ + BigDecimal lastYearCount = BigDecimal.valueOf(Double.valueOf(lastYearSum)); + BigDecimal sameRatioBigDecimal = thisMonthCount.subtract(lastYearCount).divide(lastYearCount, 2, BigDecimal.ROUND_HALF_UP); + sameRatio = sameRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + //环比 + String ringRatio = "100.00%"; + if(0 != lastMonthSum){ + BigDecimal lastMonthCount = BigDecimal.valueOf(Double.valueOf(lastMonthSum)); + BigDecimal ringRatioBigDecimal = thisMonthCount.subtract(lastMonthCount).divide(lastMonthCount, 2, BigDecimal.ROUND_HALF_UP); + ringRatio = ringRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + DeptOutputRatioResponse response = new DeptOutputRatioResponse(); + response.setOutPutYuan(outPutYuan); + response.setSameRatio(sameRatio); + response.setRingRatio(ringRatio); + return response; + } + + @Override public List workList() { BoardDeptComprehensiveRequest request = new BoardDeptComprehensiveRequest(); Calendar c = Calendar.getInstance(); @@ -138,6 +170,44 @@ } @Override + public WorkRatioResponse workRatio() { + //本月检完样品数,包括检测完成和待归还的,使用更新时间判断 + String now = DateUtil.now(); + WorkRatioResponse thisMonthResponse = orderSampleRelationMapper.selectCountByMonth(now); + //上月 + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + Date m = c.getTime(); + String lastMonth = DateUtil.format(m, "yyyy-MM-dd HH:mm:ss"); + WorkRatioResponse lastMonthResponse = orderSampleRelationMapper.selectCountByMonth(lastMonth); + //去年上月 + Calendar cc = Calendar.getInstance(); + cc.add(Calendar.YEAR, -1); + Date y = cc.getTime(); + String lastYear = DateUtil.format(y, "yyyy-MM-dd HH:mm:ss"); + WorkRatioResponse lastYearResponse = orderSampleRelationMapper.selectCountByMonth(lastYear); + + BigDecimal thisMonthCount = BigDecimal.valueOf(Double.valueOf(thisMonthResponse.getMeasuredSampleCount())); + //同比 + String sameRatio = "100.00%"; + if(0 != lastYearResponse.getMeasuredSampleCount()){ + BigDecimal lastYearCount = BigDecimal.valueOf(Double.valueOf(lastYearResponse.getMeasuredSampleCount())); + BigDecimal sameRatioBigDecimal = thisMonthCount.subtract(lastYearCount).divide(lastYearCount, 2, BigDecimal.ROUND_HALF_UP); + sameRatio = sameRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + //环比 + String ringRatio = "100.00%"; + if(0 != lastMonthResponse.getMeasuredSampleCount()){ + BigDecimal lastMonthCount = BigDecimal.valueOf(Double.valueOf(lastMonthResponse.getMeasuredSampleCount())); + BigDecimal ringRatioBigDecimal = thisMonthCount.subtract(lastMonthCount).divide(lastMonthCount, 2, BigDecimal.ROUND_HALF_UP); + ringRatio = ringRatioBigDecimal.multiply(BigDecimal.valueOf(100)).toPlainString() + "%"; + } + thisMonthResponse.setSameRatio(sameRatio); + thisMonthResponse.setRingRatio(ringRatio); + return thisMonthResponse; + } + + @Override public OverdueSampleResponse overdueSample() { //超期样品数 Integer sampleOverdueCount = orderSampleRelationMapper.selectCountForCockpit(4, "month"); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/cockpit/IMeasureTaskService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/cockpit/IMeasureTaskService.java index 4b3d9b0..b8f6395 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/cockpit/IMeasureTaskService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/cockpit/IMeasureTaskService.java @@ -15,10 +15,14 @@ List labAssets(); - List deptOutputList(); + List deptOutputList(String startTime, String endTime); + + DeptOutputRatioResponse deptOutputRatio(); List workList(); + WorkRatioResponse workRatio(); + OverdueSampleResponse overdueSample(); List staffAnalyse();