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 f2b71fd5..54a48bd3 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 @@ -8,6 +8,7 @@ import com.op.common.core.utils.uuid.IdUtils; import com.op.mes.domain.MesDailyReport; import com.op.mes.domain.MesProcessReport; import com.op.mes.domain.MesReportProduction; +import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.mes.mapper.MesReportWorkMapper; import org.apache.commons.lang.StringUtils; @@ -181,6 +182,13 @@ public class MesReportWorkController extends BaseController { public List getWorkcenterList(MesDailyReport mesDailyReport) { return mesReportWorkService.getWorkcenterList(mesDailyReport); } + + /**首页柱状图**/ + @GetMapping("/getLineChartData") + public LineChartDto getLineChartData(MesReportProduction mesReportProduction) { + return mesReportWorkService.getLineChartData(mesReportProduction); + } + } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportProduction.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportProduction.java index 667d3b1c..60a10791 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportProduction.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportProduction.java @@ -45,6 +45,24 @@ public class MesReportProduction extends BaseEntity { private String unit; private String productDateStart; private String productDateEnd; + private String feedbackTime; + private String nameDate; + + public String getNameDate() { + return nameDate; + } + + public void setNameDate(String nameDate) { + this.nameDate = nameDate; + } + + public String getFeedbackTime() { + return feedbackTime; + } + + public void setFeedbackTime(String feedbackTime) { + this.feedbackTime = feedbackTime; + } public String getFactoryCode() { return factoryCode; 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 new file mode 100644 index 00000000..21a51283 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartDto.java @@ -0,0 +1,39 @@ +package com.op.mes.domain.dto; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class LineChartDto{ + private List seriesNames; + private List xAxisDatas; + private List seriesDatas; + + public List getSeriesNames() { + return seriesNames; + } + + public void setSeriesNames(List seriesNames) { + this.seriesNames = seriesNames; + } + + public List getxAxisDatas() { + return xAxisDatas; + } + + public void setxAxisDatas(List xAxisDatas) { + this.xAxisDatas = xAxisDatas; + } + + public List getSeriesDatas() { + return seriesDatas; + } + + public void setSeriesDatas(List seriesDatas) { + this.seriesDatas = seriesDatas; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartSeriesDto.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartSeriesDto.java new file mode 100644 index 00000000..7fe858ce --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/LineChartSeriesDto.java @@ -0,0 +1,50 @@ +package com.op.mes.domain.dto; + +import com.op.common.core.web.domain.TreeEntity; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class LineChartSeriesDto { + private String name; + private String type; + private String stack; + private List data; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStack() { + return stack; + } + + public void setStack(String stack) { + this.stack = stack; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} 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 630d214d..9d5938b0 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 @@ -1,12 +1,14 @@ package com.op.mes.mapper; import java.util.List; +import java.util.Map; import com.op.mes.domain.MesDailyReport; import com.op.mes.domain.MesProcessReport; import com.op.mes.domain.MesReportProduction; import com.op.mes.domain.MesReportWork; import com.op.mes.domain.dto.SysFactoryDto; +import org.apache.ibatis.annotations.MapKey; /** * 报工报表Mapper接口 @@ -78,4 +80,8 @@ public interface MesReportWorkMapper { List getWorkcenterList(MesDailyReport mesDailyReport); public void updateWorkOrderStatus(MesReportWork work); + @MapKey("nameDate") + Map getLineChartsDatas(MesReportProduction mesReportProduction); + + List getLineChartsNames(MesReportProduction mesReportProduction); } 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 de6e661e..ab5f2218 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 @@ -6,6 +6,7 @@ import com.op.mes.domain.MesDailyReport; import com.op.mes.domain.MesProcessReport; import com.op.mes.domain.MesReportProduction; import com.op.mes.domain.MesReportWork; +import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.SysFactoryDto; /** @@ -72,4 +73,6 @@ public interface IMesReportWorkService { String getTitleName(MesDailyReport mesDailyReport); List getWorkcenterList(MesDailyReport mesDailyReport); + + LineChartDto getLineChartData(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 6cf28f96..bcda1f53 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 @@ -1,14 +1,18 @@ package com.op.mes.service.impl; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; import com.op.mes.domain.MesDailyReport; import com.op.mes.domain.MesProcessReport; import com.op.mes.domain.MesReportProduction; +import com.op.mes.domain.dto.LineChartDto; +import com.op.mes.domain.dto.LineChartSeriesDto; import com.op.mes.domain.dto.SysFactoryDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -226,4 +230,101 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return mesReportWorkMapper.getWorkcenterList(mesDailyReport); } + /** + * seriesNames: ['榄菊大盘薰衣草蚊香筒装(18装)', '榄菊儿宝健蚊香(60装)', '榄菊小盘无烟型蚊香赠品装(288装)', '榄菊无烟型蚊香优惠装(30装)', '榄菊加大盘儿宝健蚊香(60装)'], + * xAxisDatas: ['2023/08/01', '2023/08/02', '2023/08/03', '2023/08/04', '2023/08/05', '2023/08/06', '2023/08/07', + * '2023/08/08','2023/08/09','2023/08/10','2023/08/11','2023/08/12','2023/08/13','2023/08/14', + * ], + * seriesDatas: [ + * { + * name: '榄菊大盘薰衣草蚊香筒装(18装)', + * type: 'bar',//line + * stack: 'Total', + * data: [120, 132, 101, 134, 90, 230, 210,120, 132, 101, 134, 90, 230, 210] + * } + * ] + * @param mesDailyReport + * @return + */ + @Override + @DS("#header.poolName") + public LineChartDto getLineChartData(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 seriesNames = mesReportWorkMapper.getLineChartsNames(mesReportProduction); + lineChartDto.setSeriesNames(seriesNames); + //日期名称数组 + List xAxisDatas = getDays(startTime,endTime); + lineChartDto.setxAxisDatas(xAxisDatas); + Map productdatas = mesReportWorkMapper.getLineChartsDatas(mesReportProduction); + //值 + List seriesDatas = new ArrayList<>(); + LineChartSeriesDto lineChartSeriesDto = null; + for(String productName:seriesNames){ + lineChartSeriesDto = new LineChartSeriesDto(); + lineChartSeriesDto.setName(productName); + lineChartSeriesDto.setType("bar"); + lineChartSeriesDto.setStack("Total"); + List datas = new ArrayList<>(); + for(String dayStr:xAxisDatas) { + MesReportProduction data0 = productdatas.get(productName + dayStr); + if (data0 != null) { + datas.add(data0.getQuantity()); + } else { + datas.add("0"); + } + } + lineChartSeriesDto.setData(datas); + seriesDatas.add(lineChartSeriesDto); + } + lineChartDto.setSeriesDatas(seriesDatas); + return lineChartDto; + } + /**两个日期之间的所有日期**/ + public static List getDays(String startTime,String endTime) { + + // 返回的日期集合 + List days = new ArrayList(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date start = dateFormat.parse(startTime); + Date end = dateFormat.parse(endTime); + + Calendar tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + Calendar tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束) + while (tempStart.before(tempEnd)) { + days.add(dateFormat.format(tempStart.getTime())); + tempStart.add(Calendar.DAY_OF_YEAR, 1); + } + } catch (ParseException e) { + e.printStackTrace(); + } + return days; + } + + public static void main(String[] args) { + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date firstDayOfMonth = calendar.getTime(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = format.format(firstDayOfMonth); + System.out.println("当前日期: " + format.format(now)); + System.out.println("当月的第一天: " + formattedDate); + } + } 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 7b2b11df..1cc3c3fc 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 @@ -211,8 +211,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" factory_code factoryCode from sys_factory where f_type = 'c' + + - + insert into mes_report_work id, diff --git a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDeptServiceImpl.java b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDeptServiceImpl.java index f60df967..be667108 100644 --- a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDeptServiceImpl.java +++ b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDeptServiceImpl.java @@ -23,7 +23,7 @@ import com.op.system.service.ISysDeptService; /** * 部门管理 服务实现 - * + * * @author OP */ @Service @@ -36,7 +36,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 查询部门管理数据 - * + * * @param dept 部门信息 * @return 部门信息集合 */ @@ -48,7 +48,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 查询部门树结构信息 - * + * * @param dept 部门信息 * @return 部门树信息集合 */ @@ -60,7 +60,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 构建前端所需要树结构 - * + * * @param depts 部门列表 * @return 树结构列表 */ @@ -83,7 +83,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 构建前端所需要下拉树结构 - * + * * @param depts 部门列表 * @return 下拉树结构列表 */ @@ -95,7 +95,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 根据角色ID查询部门树信息 - * + * * @param roleId 角色ID * @return 选中部门列表 */ @@ -107,7 +107,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 根据部门ID查询信息 - * + * * @param deptId 部门ID * @return 部门信息 */ @@ -118,7 +118,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 根据ID查询所有子部门(正常状态) - * + * * @param deptId 部门ID * @return 子部门数 */ @@ -129,7 +129,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 是否存在子节点 - * + * * @param deptId 部门ID * @return 结果 */ @@ -141,7 +141,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 查询部门是否存在用户 - * + * * @param deptId 部门ID * @return 结果 true 存在 false 不存在 */ @@ -153,7 +153,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 校验部门名称是否唯一 - * + * * @param dept 部门信息 * @return 结果 */ @@ -169,7 +169,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 校验部门是否有数据权限 - * + * * @param deptId 部门id */ @Override @@ -186,7 +186,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 新增保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @@ -198,12 +198,13 @@ public class SysDeptServiceImpl implements ISysDeptService { throw new ServiceException("部门停用,不允许新增"); } dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + dept.setDelFlag("0"); return deptMapper.insertDept(dept); } /** * 修改保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @@ -228,7 +229,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 修改该部门的父级部门状态 - * + * * @param dept 当前部门 */ private void updateParentDeptStatusNormal(SysDept dept) { @@ -239,7 +240,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 修改子元素关系 - * + * * @param deptId 被修改的部门ID * @param newAncestors 新的父ID集合 * @param oldAncestors 旧的父ID集合 @@ -256,7 +257,7 @@ public class SysDeptServiceImpl implements ISysDeptService { /** * 删除部门管理信息 - * + * * @param deptId 部门ID * @return 结果 */ diff --git a/op-modules/op-system/src/main/resources/mapper/system/SysDeptMapper.xml b/op-modules/op-system/src/main/resources/mapper/system/SysDeptMapper.xml index 530f5955..55a513c7 100644 --- a/op-modules/op-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/op-modules/op-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -99,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" phone, email, status, + del_flag, create_by, create_time )values( @@ -111,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{phone}, #{email}, #{status}, + #{delFlag}, #{createBy}, GETDATE() )