From 160d6f72801382c2995bb6eefd6d9c41f6336744 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 20 Nov 2023 13:24:17 +0800 Subject: [PATCH 01/64] =?UTF-8?q?=E6=88=90=E5=93=81=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E6=B4=BE=EF=BC=8C=E6=9A=82=E6=97=B6=E5=8E=BB=E6=8E=89?= =?UTF-8?q?sap=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProOrderWorkorderServiceImpl.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 3509a1c85..aac5d70a1 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -279,14 +279,20 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sysSapLog.setReqcode("请求"); sysSapLog.setCreateTime(DateUtils.getNowDate()); proOrderMapper.addSapLog(sysSapLog); - - R> r = remoteSapService.SapCreateOrder(sapList); - logger.info("sap工单回传:" + r.getMsg()); - if (500 == r.getCode()) { - logger.error("sap工单回传:" + r.getMsg()); - return 0; +//未来生产要打开 +// R> r = remoteSapService.SapCreateOrder(sapList); +// logger.info("sap工单回传:" + r.getMsg()); +// if (500 == r.getCode()) { +// logger.error("sap工单回传:" + r.getMsg()); +// return 0; +// } +// List returnCodes = r.getData(); + //未来生产要删掉 + List returnCodes = new ArrayList<>(); + for(SapCreateOrder xnsap:sapList){ + returnCodes.add("test"); } - List returnCodes = r.getData(); + if (!CollectionUtils.isEmpty(returnCodes)) { for (String sapCode : returnCodes) { ProOrderWorkorder oworkSap = new ProOrderWorkorder(); From 76ef1fd10237686b0053a8401610f1ad99ec9eec Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 20 Nov 2023 15:29:15 +0800 Subject: [PATCH 02/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=A8=A1=E5=9D=97-?= =?UTF-8?q?=E6=8A=A5=E4=BF=AE-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquRepairOrderController.java | 5 +- .../java/com/op/device/domain/EquOrder.java | 29 ++++++ .../com/op/device/domain/EquRepairOrder.java | 53 ++++++++++ .../com/op/device/mapper/EquOrderMapper.java | 14 +++ .../device/mapper/EquRepairOrderMapper.java | 3 +- .../service/IEquRepairOrderService.java | 6 +- .../impl/EquRepairOrderServiceImpl.java | 99 ++++++++++++++----- .../mapper/device/EquOrderMapper.xml | 21 ++++ .../mapper/device/EquOrderStandardMapper.xml | 2 +- .../mapper/device/EquRepairOrderMapper.xml | 17 +++- 10 files changed, 213 insertions(+), 36 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java index e77b96947..9d7874255 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.op.device.domain.EquEquipment; +import com.op.device.domain.EquTeamUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -130,9 +131,9 @@ public class EquRepairOrderController extends BaseController { * 查询报修人员列表 */ @GetMapping("/getRepairPersonList") - public TableDataInfo getRepairPersonList(EquEquipment equEquipment) { + public TableDataInfo getRepairPersonList(EquTeamUser equTeamUser) { startPage(); - List list = equRepairOrderService.getRepairPersonList(equEquipment); + List list = equRepairOrderService.getRepairPersonList(equTeamUser); return getDataTable(list); } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 64dc108ae..4dcfca2a4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -605,6 +605,35 @@ public class EquOrder extends BaseEntity { return delFlag; } + //检查项详情 + public void setItemName(String itemName) { + this.itemName = itemName; + } + public String getItemName() { + return itemName; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + public String getItemMethod() { + return itemMethod; + } + + public void setItemType(String itemType) { + this.itemType = itemType; + } + public String getItemType() { + return itemType; + } + + public void setItemTypeName(String itemTypeName) { + this.itemTypeName = itemTypeName; + } + public String getItemTypeName() { + return itemTypeName; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java index cfed63506..60c6e759a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java @@ -178,6 +178,16 @@ public class EquRepairOrder extends BaseEntity { //检查项列表 private List checkList; + //时间列表 虚拟字段 + private List orderBreakdownTimeArray; + private List orderTimeArray; + //故障开始时间、故障结束时间 + private String orderBreakdownTimeStart; + private String orderBreakdownTimeEnd; + //报修开始时间、结束时间 + private String orderTimeStart; + private String orderTimeEnd; + //图片文件 public String getFileList() { return fileList; @@ -463,6 +473,49 @@ public class EquRepairOrder extends BaseEntity { this.checkList = checkList; } + //时间列表 + public List getOrderBreakdownTimeArray() { + return orderBreakdownTimeArray; + } + public void setOrderBreakdownTimeArray(List orderBreakdownTimeArray) { + this.orderBreakdownTimeArray = orderBreakdownTimeArray; + } + + public List getOrderTimeArray() { + return orderTimeArray; + } + public void setOrderTimeArray(List orderTimeArray) { + this.orderTimeArray = orderTimeArray; + } + + //故障开始时间、结束时间 + public String getOrderBreakdownTimeStart() { + return orderBreakdownTimeStart; + } + public void setOrderBreakdownTimeStart(String orderBreakdownTimeStart) { + this.orderBreakdownTimeStart = orderBreakdownTimeStart; + } + public String getOrderBreakdownTimeEnd() { + return orderBreakdownTimeEnd; + } + public void setOrderBreakdownTimeEnd(String orderBreakdownTimeEnd) { + this.orderBreakdownTimeEnd = orderBreakdownTimeEnd; + } + + //报修开始时间、结束时间 + public String getOrderTimeStart() { + return orderTimeStart; + } + public void setOrderTimeStart(String orderTimeStart) { + this.orderTimeStart = orderTimeStart; + } + public String getOrdeTimeEnd() { + return orderTimeEnd; + } + public void setOrderTimeEnd(String orderTimeEnd) { + this.orderTimeEnd = orderTimeEnd; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 5d29e9ffe..9ab79a036 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -134,4 +134,18 @@ public interface EquOrderMapper { * @return */ String selectEquipmentNameByEquCode(String equipmentCode); + + /** + * 通过OrderCode查询对应所有检查项ID + * @param orderCode + * @return + */ + List getIdsByOrderCode(String orderCode); + + /** + * 只更新维修单号 + * @param equOrder + * @return + */ + void updateEquOrderRepairCode(EquOrder equOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java index 13282b06f..ea5646365 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java @@ -7,6 +7,7 @@ import com.op.common.core.domain.BaseFileData; import com.op.device.domain.EquEquipment; import com.op.device.domain.EquFile; import com.op.device.domain.EquRepairOrder; +import com.op.device.domain.EquTeamUser; import org.apache.ibatis.annotations.Param; /** @@ -72,7 +73,7 @@ public interface EquRepairOrderMapper { //查询报修人员列表 @DS("master") - List getRepairPersonList(EquEquipment equEquipment); + List getRepairPersonList(EquTeamUser equTeamUser); /** * 通过报修code查询报修单信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java index ef98c30ed..097698abd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java @@ -3,10 +3,8 @@ package com.op.device.service; import java.util.List; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.*; import com.op.device.domain.EquEquipment; -import com.op.device.domain.EquEquipment; -import com.op.device.domain.EquRepairOrder; -import com.op.device.domain.EquRepairWorkOrder; /** * 故障报修Service接口 @@ -78,5 +76,5 @@ public interface IEquRepairOrderService { public int checkEquRepairOrder(EquRepairOrder equRepairOrder); //查询报修人员列表 - List getRepairPersonList(EquEquipment equEquipment); + List getRepairPersonList(EquTeamUser equTeamUser); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 55d73659c..48a1a3ce8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.device.service.impl; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -66,19 +67,6 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { list.setFiles(files); } -// //查询对应检查项信息 -// EquOrder equOrder = new EquOrder(); -// equOrder.setOrderCode(list.getOrderCode()); -// List checkLists = equOrderStandardMapper.selectPdaEquOrderList(equOrder); -// //每个检查项对应文件 -// for(EquOrderStandard equOrderStandard :checkLists){ -// List file = equOrderStandardMapper.getBaseFileBatch(equOrderStandard.getId()); -// if (!CollectionUtils.isEmpty(file)) { -// equOrderStandard.setPicturePaths(file); -// } -// } -// list.setCheckList(checkLists); - //查询对应检查项信息 EquOrder equOrder = new EquOrder(); //报修单号 @@ -112,6 +100,22 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public List selectEquRepairOrderList(EquRepairOrder equRepairOrder) { + if (equRepairOrder.getOrderBreakdownTimeArray() != null) { + // 设置故障开始时间、结束时间 + if (equRepairOrder.getOrderBreakdownTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + equRepairOrder.setOrderBreakdownTimeStart(formatter.format(equRepairOrder.getOrderBreakdownTimeArray().get(0))); + equRepairOrder.setOrderBreakdownTimeEnd(formatter.format(equRepairOrder.getOrderBreakdownTimeArray().get(1))); + } + } + if (equRepairOrder.getOrderTimeArray() != null) { + // 设置更新日期开始和结束 + if (equRepairOrder.getOrderTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + equRepairOrder.setOrderTimeStart(formatter.format(equRepairOrder.getOrderTimeArray().get(0))); + equRepairOrder.setOrderTimeEnd(formatter.format(equRepairOrder.getOrderTimeArray().get(1))); + } + } return equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder); } @@ -166,14 +170,31 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public int checkEquRepairOrder(EquRepairOrder equRepairOrder) { + //改了,不生成流水号,从第十位开始切割 + String code = equRepairOrder.getOrderCode().substring(10); + String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code; + //判断是否是点检、巡检过来的 + if(equRepairOrder.getOrderSource().equals("点检") || equRepairOrder.getOrderSource().equals("巡检")){ + //更新检查项信息 + EquOrder equOrder = new EquOrder(); + List ids = equOrderMapper.getIdsByOrderCode(equRepairOrder.getOrderCode()); + for(String id :ids){ + EquOrder one = new EquOrder(); + one.setOrderId(id); + one.setWorkCode("WX" + workCode); + one.setUpdateBy(SecurityUtils.getUsername()); + one.setUpdateTime(DateUtils.getNowDate()); + //只更新其中一个信息 + equOrderMapper.updateEquOrderRepairCode(one); + } + } + if(equRepairOrder.getRepairDestination().equals("计划性维修")){ EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); //报修单号 equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //维修单号 - String serialNum = String.format("%03d", equRepairWorkOrderMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairOrder.getEquipmentCode(); - equRepairWorkOrder.setWorkCode("WX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairWorkOrder.setWorkCode("WX" + workCode); equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); @@ -202,17 +223,17 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); + }else if(equRepairOrder.getRepairDestination().equals("不维修")){ equRepairOrder.setOrderStatus("驳回"); + }else if(equRepairOrder.getRepairDestination().equals("委外维修")){ EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); //委外工单编码、id、联系方式、委外单位、委外人员、委外原因 equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode()); - String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairOrder.getEquipmentCode(); - equOutsourceWork.setEquipmentCode(equipmentCode); - equOutsourceWork.setWorkCode("WW"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode()); + equOutsourceWork.setWorkCode("WW" + workCode); equOutsourceWork.setRepairCode("无"); equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection()); equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); @@ -226,10 +247,38 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); equRepairOrder.setOrderStatus("审核通过"); }else if(equRepairOrder.getRepairDestination().equals("立即维修")){ - //立即维修 - //是否立即维修 1是 0 否 EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + //报修单号 + equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); + //维修单号 + equRepairWorkOrder.setWorkCode("WX"+workCode); + equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); + equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); + equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); + //不委外 + equRepairWorkOrder.setWorkOutsource("0"); + equRepairWorkOrder.setOutWorkCode("无"); + //是否立即维修 1是 0 否 equRepairWorkOrder.setWorkHandle("0"); + //计划维修时间 + equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); + //是否停机维修 停机维修时间 + if(equRepairOrder.getWorkPlanDownTime() != null){ + equRepairWorkOrder.setWorkDownMachine("1"); + equRepairWorkOrder.setWorkPlanDownTime(equRepairOrder.getWorkPlanDownTime()); + }else{ + equRepairWorkOrder.setWorkDownMachine("0"); + } + equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); + equRepairWorkOrder.setWorkStatus("0"); + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); + equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); + equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); + //工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); } equRepairOrder.setUpdateTime(DateUtils.getNowDate()); @@ -326,12 +375,12 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { /** * 查询报修人员列表 * - * @param equEquipment + * @param equTeamUser * @return */ @Override @DS("#header.poolName") - public List getRepairPersonList(EquEquipment equEquipment) { - return equRepairOrderMapper.getRepairPersonList(equEquipment); + public List getRepairPersonList(EquTeamUser equTeamUser) { + return equRepairOrderMapper.getRepairPersonList(equTeamUser); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index a5d1aa8f4..6ebf8ba36 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -305,4 +305,25 @@ + + + + + + + update equ_order + + update_by = #{updateBy}, + update_time = #{updateTime}, + work_code = #{workCode}, + + where order_id = #{orderId} + + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml index ec27f3ef0..07d13fe88 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml @@ -226,7 +226,7 @@ eos.id, eos.order_code, eos.standard_name, - eod.item_method, + eos.detail_up_limit, eos.detail_down_limit, eos.detail_unit, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index fb112684e..26c3564d7 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -46,6 +46,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -81,9 +84,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and order_code like concat('%', #{orderCode}, '%') and equipment_code like concat('%', #{equipmentCode}, '%') and order_desc like concat('%', #{orderDesc}, '%') - and order_breakdown_time = #{orderBreakdownTime} + + and CONVERT(date,order_breakdown_time) >= #{orderBreakdownTimeStart} + and #{orderBreakdownTimeEnd} >= CONVERT(date,order_breakdown_time) and order_source like concat('%', #{orderSource}, '%') - and order_time = #{orderTime} + + and CONVERT(date,order_time) >= #{orderTimeStart} + and #{orderTimeEnd} >= CONVERT(date,order_time) and order_handle = #{orderHandle} and order_repairman_code like concat('%', #{orderRepairmanCode}, '%') and order_repairman_name like concat('%', #{orderRepairmanName}, '%') @@ -268,7 +275,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" nick_name AS nickName, CONCAT(nick_name,user_name) AS teamUserName from sys_user - where del_flag = '0' + + and user_name like concat('%', #{userName}, '%') + and nick_name like concat('%', #{nickName}, '%') + and del_flag = '0' + + + + and defect_code like concat('%', #{defectCode}, '%') + and defect_type like concat('%', #{defectType}, '%') + and defect_subclass like concat('%', #{defectSubclass}, '%') + and defect_remark = #{defectRemark} + and factory_code = #{factoryCode} + and attr1 = #{attr1} + and attr2 = #{attr2} + and attr3 = #{attr3} + and del_flag = #{delFlag} + and CONVERT(date,create_time) >= #{createTimeStart} + and #{createTimeEnd} >= CONVERT(date,create_time) + and create_by like concat('%', #{createBy}, '%') + and CONVERT(date,update_time) >= #{updateTimeStart} + and #{updateTimeEnd} >= CONVERT(date,update_time) + and update_by like concat('%', #{updateBy}, '%') + and del_flag = '0' + + ORDER BY create_time DESC + + + + + + + + insert into qc_defect_type + + defect_id, + defect_code, + defect_type, + defect_subclass, + defect_remark, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{defectId}, + #{defectCode}, + #{defectType}, + #{defectSubclass}, + #{defectRemark}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update qc_defect_type + + defect_code = #{defectCode}, + defect_type = #{defectType}, + defect_subclass = #{defectSubclass}, + defect_remark = #{defectRemark}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where defect_id = #{defectId} and del_flag = '0' + + + + delete qc_defect_type set del_flag = '1' where defect_id = #{defectId} + + + + update qc_defect_type set del_flag = '1' where defect_id in + + #{defectId} + + + From 3607c4e4904f22a47e658d513f6dabc4aad674ed Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 21 Nov 2023 09:36:21 +0800 Subject: [PATCH 05/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87-=E7=BB=B4=E4=BF=AE-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/domain/EquRepairWorkOrder.java | 11 +++++++ .../device/mapper/EquOrderStandardMapper.java | 5 +++ .../com/op/device/mapper/EquTeamMapper.java | 2 +- .../impl/EquOutsourceWorkServiceImpl.java | 1 + .../impl/EquRepairOrderServiceImpl.java | 2 ++ .../impl/EquRepairWorkOrderServiceImpl.java | 33 +++++++++++++++++++ .../service/impl/EquTeamServiceImpl.java | 10 +++--- .../mapper/device/EquOrderStandardMapper.xml | 12 +++++++ .../mapper/device/EquOutsourceWorkMapper.xml | 2 +- .../resources/mapper/device/EquTeamMapper.xml | 11 +++++++ .../mapper/device/EquTeamUserMapper.xml | 13 ++------ 11 files changed, 84 insertions(+), 18 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 17e53d243..4d3f743cf 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -234,6 +234,9 @@ public class EquRepairWorkOrder extends BaseEntity { //申领单列表 private List applyList; + //检查项列表 + private List standardList; + //维修前 维修后 public String getAfterRepairFile() { return afterRepairFile; @@ -690,6 +693,14 @@ public class EquRepairWorkOrder extends BaseEntity { this.files = files; } + //标准列表 + public List getStandardList() { + return standardList; + } + public void setStandardList(List standardList) { + this.standardList = standardList; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java index 87cf3a264..e1f82f44e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java @@ -91,4 +91,9 @@ public interface EquOrderStandardMapper { public List selectPdaEquOrderList(EquOrder equOrder); int insertEquOrderStandards(@Param("list") List standards); + + /** + * 更新维修后标准 + */ + void updateStandardAfterRepair(EquOrderStandard equOrderStandard); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java index a70eb5ee6..23f9d2229 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java @@ -73,6 +73,6 @@ public interface EquTeamMapper { public List selectTeamMembers(EquTeamUser equTeamUser); //查询特定人员 - @DS("master") + @DS("#master") public EquTeamUser selectTeamMember(EquTeamUser equTeamUser); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java index 324cd1fab..0c2d537e9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java @@ -63,6 +63,7 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Override @DS("#header.poolName") public int insertEquOutsourceWork(EquOutsourceWork equOutsourceWork) { + //新增的委外工单,不用报修单号、维修单号拼接 equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); String equipmentCode = equOutsourceWork.getEquipmentCode(); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 48a1a3ce8..4cb8f1748 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -239,6 +239,8 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson()); equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason()); + //委外类型 维修委外 + equOutsourceWork.setWorkType("0"); equOutsourceWork.setCreateBy(SecurityUtils.getUsername()); equOutsourceWork.setCreateTime(DateUtils.getNowDate()); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 6cb2f0d8d..272525d5b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -1,11 +1,14 @@ package com.op.device.service.impl; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.domain.BaseFileData; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.*; @@ -153,6 +156,34 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getAfterRepairFile())) { + String[] ids = equRepairWorkOrder.getAfterRepairFile().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); + } + equRepairWorkOrderMapper.insertBaseFileBatch(files); + } + + //更新标准表 + for(EquOrderStandard equOrderStandard:equRepairWorkOrder.getStandardList()){ + equOrderStandard.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandard.setUpdateTime(DateUtils.getNowDate()); + equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard); + } return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); } @@ -204,6 +235,8 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equOutsourceWork.setWorkPerson(equRepairWorkOrder.getOutSourcePerson()); equOutsourceWork.setWorkOutsourcingUnit(equRepairWorkOrder.getWorkOutsourcingUnit()); equOutsourceWork.setWorkConnection(equRepairWorkOrder.getWorkConnection()); + //委外类型 维修委外 + equOutsourceWork.setWorkType("0"); equOutsourceWork.setCreateTime(DateUtils.getNowDate()); equOutsourceWork.setCreateBy(SecurityUtils.getUsername()); if(equRepairWorkOrder.getWorkId()!= null){ diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java index df8779159..f27fa2eb3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java @@ -52,7 +52,7 @@ public class EquTeamServiceImpl implements IEquTeamService { List equTeamUser1 = equTeamUserMapper.selectEquTeamUserList(equTeamUser); EquTeam equTeam = equTeamMapper.selectEquTeamById(id); equTeam.setSelectedData(equTeamUser1); - return equTeamMapper.selectEquTeamById(id); + return equTeam; } /** @@ -99,9 +99,9 @@ public class EquTeamServiceImpl implements IEquTeamService { list = equTeam.getRightData(); String userId = list.get(i); equTeamUser.setUserId(userId); - EquTeamUser memberList = equTeamMapper.selectTeamMember(equTeamUser); - equTeamUser.setUserName(memberList.getUserName()); - equTeamUser.setNickName(memberList.getNickName()); +// EquTeamUser memberList = equTeamMapper.selectTeamMember(equTeamUser); +// equTeamUser.setUserName(memberList.getUserName()); +// equTeamUser.setNickName(memberList.getNickName()); equTeamUserMapper.insertEquTeamUser(equTeamUser); } return success("新增设备班组成功!"); @@ -123,6 +123,7 @@ public class EquTeamServiceImpl implements IEquTeamService { try{ equTeam.setUpdateTime(DateUtils.getNowDate()); equTeam.setUpdateBy(SecurityUtils.getUsername()); + equTeamUserMapper.deleteEquTeamUserByTeamId(equTeam.getId()); equTeamMapper.updateEquTeam(equTeam); for(int i = 0;i + + update equ_order_standard + + update_by = #{updateBy}, + update_time = #{updateTime}, + repair_reach = #{repairReach}, + repair_value = #{repairValue}, + + where id = #{id} + and del_flag = '0' + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml index c127939ae..e23f21818 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml @@ -79,7 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and work_type = #{workType} and equipment_code like concat('%', #{equipmentCode}, '%') and work_cost like concat('%', #{workCost}, '%') - and work_cost_time = #{workCostTime} + and work_cost_time like concat('%', #{workCostTime}, '%') and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml index b21528abe..e88125bb2 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml @@ -129,4 +129,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where del_flag = '0' + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml index dae6a04cd..af5cc8bb4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml @@ -21,13 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index 26c3564d7..c79ff78ad 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -273,7 +273,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" user_id AS userId, user_name AS userName, nick_name AS nickName, - CONCAT(nick_name,user_name) AS teamUserName + CONCAT(nick_name,user_name) AS teamUserName, + phonenumber AS phonenumber from sys_user and user_name like concat('%', #{userName}, '%') @@ -282,6 +283,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + \ No newline at end of file From 3dfe3f2b6c74bcbc4376f0c889763d7e7d8a611c Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 21 Nov 2023 13:20:51 +0800 Subject: [PATCH 08/64] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=A4=87=E4=BB=B6=E9=80=BB=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/device/mapper/SparePartsLedgerMapper.java | 6 ++++++ .../main/resources/mapper/device/SparePartsLedgerMapper.xml | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java index 70d7de075..2714af72d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java @@ -3,6 +3,7 @@ package com.op.device.mapper; import java.math.BigDecimal; import java.util.List; +import com.op.device.domain.EquSpareApply; import com.op.device.domain.SparePartsLedger; /** @@ -67,4 +68,9 @@ public interface SparePartsLedgerMapper { */ BigDecimal selectRealAmountByMaterialCode(String materialCode); + /** + * 减少库存数量 + * @param apply + */ + void updateSpareNumReduce(EquSpareApply apply); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml index 336af1e00..0ceedf67a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml @@ -280,6 +280,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where storage_id = #{storageId} + + update wms_ods_mate_storage_news + set amount = ( amount - #{spareQuantity} ) where material_code = #{spareCode} + + delete from wms_ods_mate_storage_news where storage_id = #{storageId} From fe57d993622c02b361cd72b806f5a4acfd442639 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 21 Nov 2023 13:49:04 +0800 Subject: [PATCH 09/64] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=A4=87=E4=BB=B6=E9=80=BB=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/device/domain/EquOrder.java | 6 +++--- .../com/op/device/domain/vo/InspectionWorkVO.java | 11 ++++------- .../com/op/device/mapper/EquSpareApplyMapper.java | 7 +++++++ .../op/device/service/impl/DevicePDAServiceImpl.java | 4 +--- .../op/device/service/impl/EquOrderServiceImpl.java | 6 +++--- .../service/impl/InspectionWorkServiceImpl.java | 4 ++-- .../resources/mapper/device/EquSpareApplyMapper.xml | 5 +++++ 7 files changed, 25 insertions(+), 18 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 4dcfca2a4..820e0a089 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -300,13 +300,13 @@ public class EquOrder extends BaseEntity { private List detailList; - private List spareList; + private List spareList; - public List getSpareList() { + public List getSpareList() { return spareList; } - public void setSpareList(List spareList) { + public void setSpareList(List spareList) { this.spareList = spareList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java index 4189bab84..a2e126c74 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java @@ -1,9 +1,6 @@ package com.op.device.domain.vo; -import com.op.device.domain.EquOrder; -import com.op.device.domain.EquOrderDetail; -import com.op.device.domain.EquOrderEquSpare; -import com.op.device.domain.Equipment; +import com.op.device.domain.*; import java.util.List; @@ -12,13 +9,13 @@ public class InspectionWorkVO { private EquOrder order; private Equipment equ; private List detailList; - private List spareList; + private List spareList; - public List getSpareList() { + public List getSpareList() { return spareList; } - public void setSpareList(List spareList) { + public void setSpareList(List spareList) { this.spareList = spareList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index e11eaba40..6cb379bc4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -68,4 +68,11 @@ public interface EquSpareApplyMapper { * @return */ int selectSerialNumber(); + + /** + * 通过上级工单code查询申领表list + * @param orderCode + * @return + */ + List selectEquSpareApplyListByParentCode(String orderCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 0defe8c21..ef9da765c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -62,8 +62,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { private EquSpareApplyMapper equSpareApplyMapper; @Autowired private EquFileMapper equFileMapper; - @Autowired - private EquOrderEquSpareMapper equOrderEquSpareMapper; /** @@ -135,7 +133,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 备件 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); if (spareList != null) { order.setSpareList(spareList); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 59ddc2914..efd46e05f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -48,13 +48,13 @@ public class EquOrderServiceImpl implements IEquOrderService { @Autowired private PersonMapper personMapper; @Autowired - private EquOrderEquSpareMapper equOrderEquSpareMapper; - @Autowired private EquRepairOrderMapper equRepairOrderMapper; @Autowired private EquFileMapper equFileMapper; @Autowired private EquPlanMapper equPlanMapper; + @Autowired + private EquSpareApplyMapper equSpareApplyMapper; /** * 查询计划工单 @@ -91,7 +91,7 @@ public class EquOrderServiceImpl implements IEquOrderService { order.setDetailList(detailList); // 备件 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); if (spareList.size() > 0) { order.setSpareList(spareList); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java index c1430e2b5..5b5336e96 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java @@ -36,7 +36,7 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { @Autowired private EquOrderEquSpareMapper equOrderEquSpareMapper; @Autowired - private EquOrderEquMapper equOrderEquMapper; + private EquSpareApplyMapper equSpareApplyMapper; /** * 查询巡检记录 @@ -57,7 +57,7 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { } // 查询备件信息 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); // 替换循环周期 order.setPlanLoopType(equOrderMapper.changeLoopType(order.getPlanLoopType())); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml index b21b57d0c..1203e6e49 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml @@ -182,4 +182,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + + \ No newline at end of file From 4c02aa5b2e859f1b2f7a080fd7c17f73ecf5f7c1 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 21 Nov 2023 13:51:41 +0800 Subject: [PATCH 10/64] =?UTF-8?q?=E7=BB=B4=E4=BF=AE-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/domain/EquRepairWorkOrder.java | 2 +- .../service/impl/DevicePDAServiceImpl.java | 1 + .../device/EquRepairWorkOrderMapper.xml | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 4d3f743cf..d7f062b6c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -186,7 +186,7 @@ public class EquRepairWorkOrder extends BaseEntity { /** 报修人 */ private String orderRepairmanCode; - /** 联系方式 */ + /** 报修人联系方式 */ private String orderConnection; //班组 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index ef9da765c..3889ea54c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -628,6 +628,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + //需要更新设备状态 return success("提交成功,维修完成!"); } catch (Exception e) { return error(); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml index a2957e0b0..3a44cbfa8 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml @@ -21,8 +21,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -103,6 +109,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" erwo.work_fault_desc, erwo.work_start_time, erwo.work_end_time, + erwo.actual_down_start_time, + erwo.actual_down_end_time, + erwo.work_connection, erwo.work_cost_time, erwo.work_cost, erwo.work_status, @@ -178,6 +187,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" erwo.work_fault_desc, erwo.work_start_time, erwo.work_end_time, + erwo.actual_down_start_time, + erwo.actual_down_end_time, + erwo.work_connection, erwo.work_cost_time, erwo.work_cost, erwo.work_status, @@ -223,6 +235,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" erwo.work_fault_desc, erwo.work_start_time, erwo.work_end_time, + erwo.actual_down_start_time, + erwo.actual_down_end_time, + erwo.work_connection, erwo.work_cost_time, erwo.work_cost, erwo.work_status, @@ -282,6 +297,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" work_fault_desc, work_start_time, work_end_time, + actual_down_start_time, + actual_down_end_time, + work_connection, work_cost_time, work_cost, work_status, @@ -315,6 +333,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{workFaultDesc}, #{workStartTime}, #{workEndTime}, + #{actualDownStartTime}, + #{actualDownEndTime}, + #{workConnection}, #{workCostTime}, #{workCost}, #{workStatus}, @@ -351,6 +372,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" work_fault_desc = #{workFaultDesc}, work_start_time = #{workStartTime}, work_end_time = #{workEndTime}, + actual_down_start_time = #{actualDownStartTime}, + actual_down_end_time = #{actualDownEndTime}, + work_connection = #{workConnection}, work_cost_time = #{workCostTime}, work_cost = #{workCost}, work_status = #{workStatus}, From 60270136f7a16e0958ec70e76cb7235ba31a79a7 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 21 Nov 2023 14:33:25 +0800 Subject: [PATCH 11/64] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceTaskServiceImpl.java | 41 +++++++++++--- .../op/quality/domain/QcCheckTaskIncome.java | 11 ++++ .../op/quality/domain/QcCheckTaskProduce.java | 55 +++++++++++++++++++ .../quality/QcCheckTaskIncomeMapper.xml | 8 ++- .../quality/QcCheckTaskProduceMapper.xml | 24 +++++++- 5 files changed, 127 insertions(+), 12 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index cad366f07..9e6f8c957 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -2,6 +2,7 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -73,6 +74,10 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { @Autowired private EquOutsourceWorkMapper equOutsourceWorkMapper; + @Autowired + private EquSpareApplyMapper equSpareApplyMapper; + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; /** * 根据点检计划生成点检任务 * **/ @@ -245,6 +250,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { private int createOrderPlan(EquPlan plan){ Date nowtime = DateUtils.getNowDate(); String createBy = "job"; + String factory = plan.getFactoryCode(); int sce = 0; /**equ_plan->equ_order********************************************************************/ EquOrder order = new EquOrder(); @@ -264,20 +270,39 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { /**equ_order**/ sce = equOrderMapper.insertEquOrder(order); System.out.println(plan.getPlanCode()+"========equ_order:"+sce); - /**equ_plan_equ_spare->equ_order_equ_spare*************************************************************/ + /**equ_plan_equ_spare->equ_spare_apply*************************************************************/ EquPlanEquSpare equPlanEquSpare = new EquPlanEquSpare(); equPlanEquSpare.setParentCode(plan.getPlanEquId()); List spares = equPlanEquSpareMapper.selectEquPlanEquSpareList(equPlanEquSpare); - for(EquPlanEquSpare spare:spares){ - spare.setId(IdUtils.fastSimpleUUID()); - spare.setCreateTime(nowtime); - spare.setCreateBy(createBy); - spare.setDelFlag("0"); - spare.setCode(orderCode); + + // 获取流水单号 + int applySerialNum = equSpareApplyMapper.selectSerialNumber(); + for (EquPlanEquSpare spare : spares) { + EquSpareApply apply = new EquSpareApply(); + apply.setApplyId(IdUtils.fastSimpleUUID()); + apply.setApplyCode("A"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+String.format("%03d",applySerialNum)); + applySerialNum++; + apply.setSpareCode(spare.getMaterialCode()); + apply.setSpareName(spare.getMaterialDesc()); + apply.setSpareModel(spare.getSpareType()); + apply.setSpareQuantity(spare.getApplyNum()); + apply.setFactoryCode(factory); + apply.setApplyPeople("job"); + apply.setParentCode(orderCode); + apply.setCreateBy("job"); + apply.setCreateTime(nowtime); + apply.setSpareUseEquipment(plan.getEquipmentCode()); + apply.setApplyTime(nowtime); + // 插入备件信息 + equSpareApplyMapper.insertEquSpareApply(apply); + + // TODO 减少备件仓库中备件数量 + sparePartsLedgerMapper.updateSpareNumReduce(apply); } + if(!CollectionUtils.isEmpty(spares)){ sce = equOrderEquSpareMapper.insertEquOrderEquSpares(spares); - System.out.println(plan.getPlanCode()+"========equ_order_equ_spare:"+sce); + System.out.println(plan.getPlanCode()+"========equ_spare_apply:"+sce); } /**equ_plan_detail->equ_order_detail*******************************************************/ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 5ff7a6ffd..6aef89b54 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -44,6 +44,9 @@ public class QcCheckTaskIncome extends BaseEntity { @Excel(name = "收货数量") private BigDecimal quality; + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + /** 单位 */ @Excel(name = "单位") private String unit; @@ -120,6 +123,14 @@ public class QcCheckTaskIncome extends BaseEntity { private String typeCode; private String checkType; + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + public String getCheckType() { return checkType; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java index 21e447749..48cc8969b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java @@ -128,6 +128,61 @@ public class QcCheckTaskProduce extends BaseEntity { private String typeCode; private String checkType; + @Excel(name = "抽样数量") + private BigDecimal sampleQuality; + + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + + @Excel(name = "A类不合格数量") + private BigDecimal aNoOkquality; + + @Excel(name = "B类不合格数量") + private BigDecimal bNoOkquality; + + @Excel(name = "C类不合格数量") + private BigDecimal cNoOkquality; + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } + + public BigDecimal getSampleQuality() { + return sampleQuality; + } + + public void setSampleQuality(BigDecimal sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + public String getTypeCode() { return typeCode; } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index bb18a8d59..2ec646ded 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -40,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit, supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by, - create_time, update_by, update_time, factory_code, del_flag , check_type + create_time, update_by, update_time, factory_code, del_flag , check_type,noOk_quality from qc_check_task @@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, - qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type, + qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type,qct.noOk_quality, q.type_code from qc_check_task qct left join qc_check_type q on q.id = qct.check_type @@ -148,6 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code, material_name, quality, + noOk_quality, unit, supplier_code, supplier_name, @@ -179,6 +181,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{materialCode}, #{materialName}, #{quality}, + #{noOkQuality}, #{unit}, #{supplierCode}, #{supplierName}, @@ -213,6 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code = #{materialCode}, material_name = #{materialName}, quality = #{quality}, + noOk_quality = #{noOkQuality}, unit = #{unit}, supplier_code = #{supplierCode}, supplier_name = #{supplierName}, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 627e7d626..4add79d13 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -12,6 +12,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -41,7 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" quality, unit, supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, - factory_code, del_flag , check_type + factory_code, del_flag , check_type,sample_quality,noOk_quality, + aNoOkquality,bNoOkquality,cNoOkquality from qc_check_task @@ -50,7 +53,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, - qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type, + qct.create_by,qct.create_time, qct.update_by, qct.update_time, + qct.check_type,qct.sample_quality,qct.noOk_quality, + qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality q.type_code from qc_check_task qct left join qc_check_type q on q.id = qct.check_type @@ -113,6 +118,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code, material_name, quality, + sample_quality, + noOk_quality, + aNoOkquality, + bNoOkquality, + cNoOkquality, unit, supplier_code, supplier_name, @@ -144,6 +154,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{materialCode}, #{materialName}, #{quality}, + #{sampleQuality}, + #{noOkQuality}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, #{unit}, #{supplierCode}, #{supplierName}, @@ -178,6 +193,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code = #{materialCode}, material_name = #{materialName}, quality = #{quality}, + sample_quality = #{sampleQuality}, + noOk_quality = #{noOkQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, unit = #{unit}, supplier_code = #{supplierCode}, supplier_name = #{supplierName}, From 9c9da57bcf5002bc9f5915d4d349609aec0849ea Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 21 Nov 2023 17:46:18 +0800 Subject: [PATCH 12/64] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QcCheckTaskIncomeController.java | 11 ++-- .../controller/QcStaticTableController.java | 55 +++++++++------- .../op/quality/domain/QcCheckTaskDetail.java | 9 +++ .../com/op/quality/domain/QcStaticTable.java | 64 +++++++++++++++++++ .../mapper/QcCheckUnqualifiedMapper.java | 3 + .../quality/mapper/QcStaticTableMapper.java | 2 + .../service/IQcCheckTaskIncomeService.java | 7 +- .../service/IQcStaticTableService.java | 1 + .../impl/QcCheckTaskIncomeServiceImpl.java | 6 ++ .../impl/QcStaticTableServiceImpl.java | 18 ++++++ .../quality/QcCheckTaskDetailMapper.xml | 1 + .../quality/QcCheckTaskProduceMapper.xml | 2 +- .../quality/QcCheckUnqualifiedMapper.xml | 8 ++- .../mapper/quality/QcStaticTableMapper.xml | 10 +++ 14 files changed, 163 insertions(+), 34 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index f6e875209..361dcc581 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -7,9 +7,7 @@ import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; import com.op.common.security.utils.SecurityUtils; -import com.op.quality.domain.QcBomComponent; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcSupplier; +import com.op.quality.domain.*; import com.op.system.api.domain.SysRole; import com.op.system.api.domain.SysUser; import org.apache.commons.lang.StringUtils; @@ -25,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController; import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; -import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.service.IQcCheckTaskIncomeService; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; @@ -219,4 +216,10 @@ public class QcCheckTaskIncomeController extends BaseController { return toAjax(qcCheckTaskIncomeService.commitCheckResult(qcCheckTaskIncome)); } + /**不良类型**/ + @PutMapping("/getDefectList") + public List getDefectList(@RequestBody QcDefectType qcDefectType) { + return qcCheckTaskIncomeService.getDefectList(qcDefectType); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index d9d480d1e..521a89928 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -9,6 +9,7 @@ import java.util.*; import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; +import com.op.system.api.domain.quality.ChartDTO; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -75,7 +76,7 @@ public class QcStaticTableController extends BaseController { */ @RequiresPermissions("quality:gcTableProduce:list") @GetMapping("/getProduceChartData") - public QcStaticTable getProduceList(QcStaticTable qcStaticTable) { + public QcStaticTable getProduceChartData(QcStaticTable qcStaticTable) { QcStaticTable resultdto = new QcStaticTable(); //默认时间范围T 00:00:00~T+1 00:00:00 if(StringUtils.isEmpty(qcStaticTable.getYmArrayStart())){ @@ -88,18 +89,22 @@ public class QcStaticTableController extends BaseController { //xAxis; if(qcStaticTable.getYmArrayStart().equals(qcStaticTable.getYmArrayEnd())){ /**月内每日**/ - List days = this.getXNames(qcStaticTable.getYmArrayStart(),qcStaticTable.getYmArrayEnd(),"ymd"); + List days = this.getXNames(qcStaticTable.getYmArrayStart()+"-01", + qcStaticTable.getYmArrayEnd()+"-01","ymd"); resultdto.setxAxis(days); }else{ /**年内各月**/ List months = this.getXNames(qcStaticTable.getYmArrayStart(),qcStaticTable.getYmArrayEnd(),"ym"); resultdto.setxAxis(months); } + //series;//legend.data + List seriesdtos= qcStaticTableService.getProduceChartData(qcStaticTable); + ChartDTO chartDTO = new ChartDTO(); + for(QcStaticTable seriesdto:seriesdtos){ + chartDTO.setName(seriesdto.getMaterialName()); + chartDTO.setType("line"); + } - List seriesdto= qcStaticTableService.selectQcStaticTableList(qcStaticTable); - //legend.data - - //series; resultdto.setSeries(null); return resultdto; @@ -110,30 +115,32 @@ public class QcStaticTableController extends BaseController { List days = new ArrayList(); DateFormat dateFormat = null; try { + Calendar tempStart = null; + Calendar tempEnd = null; if("ymd".equals(type)){ dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date start = dateFormat.parse(startMonth);//开始 + Date end = dateFormat.parse(endMonth);//结束 + + tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + tempEnd.add(Calendar.MONTH, 1); }else{ dateFormat = new SimpleDateFormat("yyyy-MM"); + Date start = dateFormat.parse(startMonth);//开始 + Date end = dateFormat.parse(endMonth);//结束 + + tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + tempEnd.add(Calendar.MONTH, 1); } - Date start = dateFormat.parse(startMonth);//开始 - Date end = dateFormat.parse(endMonth);//结束 - - String endTimeStr1 = endMonth; - String[] endTime2 = endTimeStr1.split(" "); - String endTime3 = endTime2[1].split(":")[1]; - if(Integer.parseInt(endTime3)!=0){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(end); - calendar.add(Calendar.MONTH, 1); - end = calendar.getTime(); - } - - Calendar tempStart = Calendar.getInstance(); - tempStart.setTime(start); - - Calendar tempEnd = Calendar.getInstance(); - tempEnd.setTime(end); while (tempStart.before(tempEnd)) { days.add(dateFormat.format(tempStart.getTime())); if("ymd".equals(type)) { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java index 0eccb0208..72b8ac8d3 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java @@ -94,6 +94,15 @@ public class QcCheckTaskDetail extends BaseEntity { private Integer sampleNum; private List actualValues; private String typeProjectId; + private String defectCode; + + public String getDefectCode() { + return defectCode; + } + + public void setDefectCode(String defectCode) { + this.defectCode = defectCode; + } public String getTypeProjectId() { return typeProjectId; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index caabd47fc..c337a9e54 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -4,6 +4,7 @@ import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; import com.op.system.api.domain.quality.ChartDTO; +import java.math.BigDecimal; import java.util.List; /** @@ -42,6 +43,69 @@ public class QcStaticTable extends BaseEntity { private List legendData; private List xAxis; private List series; + private String materialCode; + private String materialName; + private String sampleQuality; + private BigDecimal aNoOkquality; + private BigDecimal bNoOkquality; + private BigDecimal cNoOkquality; + private BigDecimal defectRate;//不良率 + + public BigDecimal getDefectRate() { + return defectRate; + } + + public void setDefectRate(BigDecimal defectRate) { + this.defectRate = defectRate; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getSampleQuality() { + return sampleQuality; + } + + public void setSampleQuality(String sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } public String getYmArrayStart() { return ymArrayStart; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java index 21de6735d..09a483496 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java @@ -3,6 +3,7 @@ package com.op.quality.mapper; import java.util.List; import com.op.quality.domain.QcCheckUnqualified; +import com.op.quality.domain.QcDefectType; import org.apache.ibatis.annotations.Mapper; /** @@ -60,4 +61,6 @@ public interface QcCheckUnqualifiedMapper { * @return 结果 */ public int deleteQcCheckUnqualifiedByIds(String[] ids); + + public List getDefectList(QcDefectType qcDefectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index da364cc4b..070dee5f4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -30,4 +30,6 @@ public interface QcStaticTableMapper { @MapKey("supplierCode") public Map selectNumMap(@Param("qc")QcStaticTable qcStaticTable, @Param("codes")List tabledtos); + + List getProduceChartData(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 56d51a20b..72cb2094f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -2,10 +2,7 @@ package com.op.quality.service; import java.util.List; -import com.op.quality.domain.QcBomComponent; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcCheckTaskIncome; -import com.op.quality.domain.QcSupplier; +import com.op.quality.domain.*; import com.op.system.api.domain.SysUser; /** @@ -78,4 +75,6 @@ public interface IQcCheckTaskIncomeService { int commitActualValue(QcCheckTaskDetail qcCheckTaskDetail); int commitCheckResult(QcCheckTaskIncome qcCheckTaskIncome); + + List getDefectList(QcDefectType qcDefectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index 964656039..54c247c47 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -19,4 +19,5 @@ public interface IQcStaticTableService { */ public List selectQcStaticTableList(QcStaticTable qcStaticTable); + public List getProduceChartData(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 4bff73859..e0cd35b58 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -279,4 +279,10 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return n ; } + @Override + @DS("#header.poolName") + public List getDefectList(QcDefectType qcDefectType) { + return qcCheckUnqualifiedMapper.getDefectList(qcDefectType); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index cd5db0569..3a43465ad 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -104,4 +104,22 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return tabledtos; } + /** + * 不良率 = (A类*1+B类*0.65+C类*0.35)/抽样总数 + * @param qcStaticTable + * @return + */ + @Override + @DS("#header.poolName") + public List getProduceChartData(QcStaticTable qcStaticTable) { + List dtos = qcStaticTableMapper.getProduceChartData(qcStaticTable); + for(QcStaticTable dto:dtos){ + BigDecimal defectRate = (dto.getaNoOkquality().add(dto.getbNoOkquality()).multiply(new BigDecimal("0.65")) + .add(dto.getcNoOkquality()).multiply(new BigDecimal(0.35))) + .divide(new BigDecimal(dto.getSampleQuality())); + dto.setDefectRate(defectRate); + } + return dtos; + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml index d218245c9..9b3b47838 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml @@ -166,6 +166,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = #{updateTime}, factory_code = #{factoryCode}, del_flag = #{delFlag}, + defect_code = #{defectCode}, where record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 4add79d13..7ff9ec49a 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, qct.create_by,qct.create_time, qct.update_by, qct.update_time, qct.check_type,qct.sample_quality,qct.noOk_quality, - qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality + qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality, q.type_code from qc_check_task qct left join qc_check_type q on q.id = qct.check_type diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index ff946001e..193c42aaa 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -67,8 +67,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join qc_check_type qtn on qtn.id = qct.check_type where qcu.id = #{id} + - + insert into qc_check_unqualified id, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index d1622890d..f51290ebd 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -56,5 +56,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by qct.supplier_code,qct.supplier_name + From 58bb60bb3e4b2d4283904834ba1bab308d9763b1 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Wed, 22 Nov 2023 07:30:32 +0800 Subject: [PATCH 13/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DevicePDAController.java | 6 ++ .../com/op/device/domain/EquFaultType.java | 24 ++++++++ .../java/com/op/device/domain/EquOrder.java | 9 +++ .../op/device/domain/EquOutsourceWork.java | 11 ++++ .../op/device/domain/EquRepairWorkOrder.java | 24 ++++---- .../op/device/mapper/EquFaultTypeMapper.java | 4 ++ .../com/op/device/mapper/EquOrderMapper.java | 21 ++++--- .../op/device/service/IDevicePDAService.java | 3 + .../service/impl/DevicePDAServiceImpl.java | 59 +++++++++++++++---- .../service/impl/EquOrderServiceImpl.java | 1 + .../impl/EquRepairOrderServiceImpl.java | 3 +- .../impl/EquRepairWorkOrderServiceImpl.java | 3 +- .../mapper/device/EquFaultTypeMapper.xml | 15 +++++ .../mapper/device/EquOrderMapper.xml | 29 +++++++-- .../mapper/device/EquOrderStandardMapper.xml | 28 ++++----- .../mapper/device/EquOutsourceWorkMapper.xml | 7 ++- 16 files changed, 193 insertions(+), 54 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 2caac166e..cfdba65d7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -137,6 +137,12 @@ public class DevicePDAController { return devicePDAService.updateMaintenanceRecords(equRepairWorkOrder); } + //传故障类型 +// @GetMapping(value = "/queryEquFaultTypeTree") +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder) { +// return devicePDAService.queryEquFaultTypeTree(equRepairWorkOrder); +// } + /** * 开始保养任务 * @param pdadto diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java index 1aff0c837..0afa56733 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java @@ -74,6 +74,14 @@ public class EquFaultType extends BaseEntity { // 创建日期结束 private String createTimeEnd; + //故障大类 + // 字典名 + private String dictLabel; + + // 字典值 + private String dictValue; + + public List getCreateTimeArray() { return createTimeArray; } @@ -193,6 +201,22 @@ public class EquFaultType extends BaseEntity { return delFlag; } + public void setDictValue(String dictValue) { + this.dictValue = dictValue; + } + + public String getDictValue() { + return dictValue; + } + + public void setDictLabel(String dictLabel) { + this.dictLabel = dictLabel; + } + + public String getDictLabel() { + return dictLabel; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 820e0a089..a12354a0f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -165,6 +165,15 @@ public class EquOrder extends BaseEntity { /** 维护类型名称 */ private String itemTypeName; + /** 主键 */ + private String id; + public void setId(String id) { + this.id = id; + } + public String getId() { + return id; + } + //标准列表 public List getStandardList() { return standardList; diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java index a4903fcb6..6db1d97ad 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java @@ -61,6 +61,10 @@ public class EquOutsourceWork extends BaseEntity { @Excel(name = "委外用时") private String workCostTime; + /** 委外状态 */ + @Excel(name = "委外状态") + private String workStatus; + /** 备用字段1 */ @Excel(name = "备用字段1") private String attr1; @@ -185,6 +189,13 @@ public class EquOutsourceWork extends BaseEntity { return workCostTime; } + public void setWorkStatus(String workStatus) { + this.workStatus = workStatus; + } + public String getWorkStatus() { + return workStatus; + } + public void setAttr1(String attr1) { this.attr1 = attr1; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index d7f062b6c..0ad69d534 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -122,18 +122,18 @@ public class EquRepairWorkOrder extends BaseEntity { /** 维修开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private String workStartTime; + private Date workStartTime; /** 维修结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private String workEndTime; + private Date workEndTime; //维修停机真正开始时间 - private String actualDownStartTime; + private Date actualDownStartTime; //维修停机真正结束时间 - private String actualDownEndTime; + private Date actualDownEndTime; // 设备 /** 设备名称 */ @@ -545,17 +545,17 @@ public class EquRepairWorkOrder extends BaseEntity { } //维修工单 新增字段 维修开始结束时间 - public void setWorkStartTime(String workStartTime) { + public void setWorkStartTime(Date workStartTime) { this.workStartTime = workStartTime; } - public String getWorkStartTime() { + public Date getWorkStartTime() { return workStartTime; } - public void setWorkEndTime(String workEndTime) { + public void setWorkEndTime(Date workEndTime) { this.workEndTime = workEndTime; } - public String getWorkEndTime() { + public Date getWorkEndTime() { return workEndTime; } @@ -604,16 +604,16 @@ public class EquRepairWorkOrder extends BaseEntity { } //计划停机开始时间、结束时间 - public String getActualDownStartTime() { + public Date getActualDownStartTime() { return actualDownStartTime; } - public void setActualDownStartTime(String actualDownStartTime) { + public void setActualDownStartTime(Date actualDownStartTime) { this.actualDownStartTime = actualDownStartTime; } - public String getActualDownEndTime() { + public Date getActualDownEndTime() { return actualDownEndTime; } - public void setActualDownEndTime(String actualDownEndTime) { + public void setActualDownEndTime(Date actualDownEndTime) { this.actualDownEndTime = actualDownEndTime; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java index 8f33ec256..914b2e935 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java @@ -3,6 +3,7 @@ package com.op.device.mapper; import java.util.List; import com.op.device.domain.EquFaultType; +import com.op.device.domain.EquRepairWorkOrder; /** * 故障类型维护Mapper接口 @@ -64,4 +65,7 @@ public interface EquFaultTypeMapper { * @return */ int selectSerialNumber(); + + //故障报修第一级 + List selectFirstLevelList(EquRepairWorkOrder equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 9ab79a036..7e42afbfd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -121,13 +121,6 @@ public interface EquOrderMapper { */ List selectTodayTask(PDADTO pdadto); - /** - * PC获取点检、巡检检查项 - * @param - * @return - */ - List selectEquOrderDetailsList(EquOrder equOrder); - /** * 通过设备编码查询设备名称 * @param equipmentCode @@ -148,4 +141,18 @@ public interface EquOrderMapper { * @return */ void updateEquOrderRepairCode(EquOrder equOrder); + + /** + * 手持、PC获取维修点检、巡检检查项 + * @param + * @return + */ + List selectCheckListByWorkCode(EquOrder equOrder); + + /** + * 手持、PC获取报修点检、巡检检查项 + * @param + * @return + */ + List selectCheckListByRepairCode(EquOrder equOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index e4548a253..f559fe145 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -91,6 +91,9 @@ public interface IDevicePDAService { */ public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder); + //获取设备故障类型 +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder); + //待处理 AjaxResult getMaintenancePendRecords(EquRepairWorkOrder equRepairWorkOrder); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 3889ea54c..c6655dcdc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -23,10 +23,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; @@ -63,6 +60,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquFileMapper equFileMapper; + @Autowired + private EquFaultTypeMapper equFaultTypeMapper; + /** * 获取今日巡检任务工单list-状态不为已完成 @@ -266,7 +266,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equTeamUser.setUserName(SecurityUtils.getUsername()); EquTeamUser equTeamUserList = equRepairOrderMapper.getRepairPhoneNumber(equTeamUser); equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); - + equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); // 报修来源 if (equOrder.getPlanType().equals("inspection")){ equRepairOrder.setOrderSource("巡检"); @@ -414,7 +414,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * 获取待维修记录(除了待维修) + * 获取维修记录(除了待维修) * * @param equRepairWorkOrder * @return @@ -474,7 +474,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { public AjaxResult updateDowntime(EquRepairWorkOrder equRepairWorkOrder) { try { //不停机 那么实际停机开始时间和实际停机结束时间都没有 - //如果停机 那么实际停机时间就是传入的时间 停机时间必须选择校验 + //如果停机 那么实际停机时间就是传入的时间 + equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); + if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); + } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); //维修中 @@ -518,11 +522,12 @@ public class DevicePDAServiceImpl implements IDevicePDAService { EquOrder equOrder = new EquOrder(); equOrder.setWorkCode(list.getWorkCode()); //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); //每个检查项对应的检测标准 for(EquOrder equOrder1 :checkLists){ EquOrderStandard equOrderStandard = new EquOrderStandard(); equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 @@ -562,6 +567,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { try { + //判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if(list.getWorkDownMachine().equals("1")){ + //维修结束时间、维修真正停机时间 + equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); + //维修完成 + equRepairWorkOrder.setWorkStatus("1"); + } + //更新每一项点检/巡检检查项信息 List checkLists = equRepairWorkOrder.getDetailList(); for(EquOrder checkList:checkLists){ @@ -594,6 +609,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } equOrderMapper.updateEquOrder(checkList); } + //新建申领单 缺少code List equSpareApplies = equRepairWorkOrder.getApplyList(); for(EquSpareApply equSpareApply:equSpareApplies){ @@ -603,7 +619,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equSpareApply.setApplyTime(DateUtils.getNowDate()); equSpareApplyMapper.insertEquSpareApply(equSpareApply); } - //维修人员名字????前端能够提供吗??? + //图片 //先删除每个维修工单对应图片 equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); @@ -628,10 +644,33 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - //需要更新设备状态 + //需要更新设备状态????这里没做 return success("提交成功,维修完成!"); } catch (Exception e) { return error(); } } + + /** + * 查询故障树 + * + * @param equRepairWorkOrder + * @return + */ +// @Override +// @DS("#header.poolName") +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder) { +// // 查询一级数据 +// List firstLevel = equFaultTypeMapper.selectFirstLevelList(equRepairWorkOrder); +// // 一级list +// List firstTree = new ArrayList<>(); +// // 判空 +// if (!CollectionUtils.isEmpty(firstLevel)) { +// for(EquFaultType equFaultType : firstLevel){ +// +// } +// } +// +// return treeAll; +// } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index efd46e05f..4291e868f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -288,6 +288,7 @@ public class EquOrderServiceImpl implements IEquOrderService { equTeamUser.setUserName(SecurityUtils.getUsername()); EquTeamUser equTeamUserList = equRepairOrderMapper.getRepairPhoneNumber(equTeamUser); equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); + equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); // 报修来源 if (equOrder.getPlanType().equals("inspection")) { diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 4cb8f1748..de1ffbacf 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -72,11 +72,12 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { //报修单号 equOrder.setRepairCode(list.getOrderCode()); //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); + List checkLists = equOrderMapper.selectCheckListByRepairCode(equOrder); //每个检查项对应的检测标准 for(EquOrder equOrder1 :checkLists){ EquOrderStandard equOrderStandard = new EquOrderStandard(); equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 272525d5b..4e9302b7b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -68,11 +68,12 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService EquOrder equOrder = new EquOrder(); equOrder.setWorkCode(list.getWorkCode()); //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); //每个检查项对应的检测标准 for(EquOrder equOrder1 :checkLists){ EquOrderStandard equOrderStandard = new EquOrderStandard(); equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquFaultTypeMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquFaultTypeMapper.xml index 4945af13d..413383c41 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquFaultTypeMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquFaultTypeMapper.xml @@ -19,6 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + @@ -125,4 +130,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{faultId} + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 6ebf8ba36..65da43697 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -40,6 +40,7 @@ + @@ -286,23 +287,39 @@ - select eo.order_id, eo.order_code, eo.repair_code, eo.work_code, + eod.id, eod.item_name, eod.item_method, eod.item_type, eod.item_type_name from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code - - and eo.work_code = #{workCode} - and eo.repair_code = #{repairCode} - and eo.del_flag = '0' - + where eo.work_code = #{workCode} + and eo.del_flag = '0' + + + + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml index 5eff47db0..466095ba5 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml @@ -223,23 +223,19 @@ diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml index e23f21818..19c22bd14 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml @@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -35,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select work_id, work_code,order_code, repair_code, work_person, work_outsourcing_unit, work_connection, work_reason, work_type, equipment_code, work_cost, work_cost_time, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_outsource_work + select work_id, work_code,order_code, repair_code, work_person, work_outsourcing_unit, work_connection, work_reason, work_type, equipment_code, work_cost, work_cost_time,work_status, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_outsource_work - + + + insert into base_file file_id, @@ -105,7 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time) + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) VALUES ( @@ -115,7 +119,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{baseFile.sourceId}, #{baseFile.remark}, #{baseFile.createBy}, - #{baseFile.createTime} + #{baseFile.createTime}, + #{baseFile.imageType} ) diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 6ebf8ba36..c4c5d7c11 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -136,7 +136,7 @@ From 0fe22545683f1277014177540f210605979b8f17 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 22 Nov 2023 11:00:10 +0800 Subject: [PATCH 15/64] =?UTF-8?q?mes=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceTaskServiceImpl.java | 3 +- .../mapper/device/DeviceTaskMapper.xml | 1 + .../com/op/sap/controller/SapController.java | 93 ++++++++++--------- 3 files changed, 52 insertions(+), 45 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 9e6f8c957..dd2b695f4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -280,7 +280,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { for (EquPlanEquSpare spare : spares) { EquSpareApply apply = new EquSpareApply(); apply.setApplyId(IdUtils.fastSimpleUUID()); - apply.setApplyCode("A"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+String.format("%03d",applySerialNum)); + apply.setApplyCode("A"+orderCode+String.format("%03d",applySerialNum)); applySerialNum++; apply.setSpareCode(spare.getMaterialCode()); apply.setSpareName(spare.getMaterialDesc()); @@ -305,6 +305,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { System.out.println(plan.getPlanCode()+"========equ_spare_apply:"+sce); } + /**equ_plan_detail->equ_order_detail*******************************************************/ EquPlanDetail itqo = new EquPlanDetail(); itqo.setParentCode(plan.getPlanEquId()); diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml index 2531142c9..a190ac188 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml @@ -22,6 +22,7 @@ ep.work_outsourcing_unit workOutsourcingUnit, ep.work_connection workConnection, ep.work_reason workReason, + ep.plan_code planCode, epe.equipment_code equipmentCode, epe.equipment_name equipmentName, epe.id planEquId diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 802bb59ae..ce0391b72 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -79,23 +79,25 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))){ + logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getProductMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setLaeda(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } + Date maxTime0 = sapBomMapper.getProductMaxTime(); + if(maxTime0 != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setLaeda(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } - R r = sapItemSyncService.itemSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步product失败,错误信息:"+ r.getMsg()); + R r = sapItemSyncService.itemSync(qo); + if(r.getCode()!=200){ + logger.error("++++++++++++" + dateSource.get("poolName")+"同步product失败,错误信息:"+ r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++product同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++product同步结束++++++++++"); }); return R.ok(); } @@ -115,23 +117,25 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))) { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getProductMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } + Date maxTime0 = sapBomMapper.getProductMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } - R r = sapBomService.bomSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步bom失败,错误信息:"+ r.getMsg()); + R r = sapBomService.bomSync(qo); + if (r.getCode() != 200) { + logger.error("++++++++++++" + dateSource.get("poolName") + "同步bom失败,错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); }); return R.ok(); @@ -152,27 +156,28 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++工艺同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))) { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++工艺同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getRouteMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - qo.setWerks(dateSource.get("poolName").replace("ds_",""));//工厂 + Date maxTime0 = sapBomMapper.getRouteMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } + qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 - R r = sapRouterService.sapRouterSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步工艺失败,错误信息:"+ r.getMsg()); + R r = sapRouterService.sapRouterSync(qo); + if (r.getCode() != 200) { + logger.error("++++++++++++" + dateSource.get("poolName") + "同步工艺失败,错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++工艺同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++工艺同步结束++++++++++"); }); return R.ok(); - } /** From 4ea11df041589a0aeda95585241694d76a72c425 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 22 Nov 2023 11:18:15 +0800 Subject: [PATCH 16/64] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0BUG=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/device/domain/EquOrder.java | 20 ++++++++++++++ .../service/impl/DevicePDAServiceImpl.java | 26 +++++++++++++++++++ .../service/impl/EquOrderServiceImpl.java | 19 +++++++++++++- .../impl/InspectionWorkServiceImpl.java | 9 ++++++- .../resources/mapper/device/EquFileMapper.xml | 6 ++++- 5 files changed, 77 insertions(+), 3 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index a12354a0f..3a9e700db 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -203,6 +203,26 @@ public class EquOrder extends BaseEntity { private Date orderEndArrayStart; private Date orderEndArrayEnd; + private List upkeepPictures; + + private String picturePath; + + public String getPicturePath() { + return picturePath; + } + + public void setPicturePath(String picturePath) { + this.picturePath = picturePath; + } + + public List getUpkeepPictures() { + return upkeepPictures; + } + + public void setUpkeepPictures(List upkeepPictures) { + this.upkeepPictures = upkeepPictures; + } + public List getOrderStartArray() { return orderStartArray; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 98e3c8874..39f9bdfc8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -150,6 +150,13 @@ public class DevicePDAServiceImpl implements IDevicePDAService { order.setPersonList(personList); + // 保养图片 + BaseFileData selectTemp = new BaseFileData(); + selectTemp.setSourceId(equOrder.getId()); + List upkeepPictures = equFileMapper.selectUrlList(selectTemp); + if (upkeepPictures != null) { + order.setUpkeepPictures(upkeepPictures); + } return success(order); } @@ -304,6 +311,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (equOrder.getPlanType().equals("maintenance")) { // 设置结束时间 equOrder.setOrderEnd(DateUtils.getNowDate()); + //上传附件 + if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { + String[] ids = equOrder.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equOrder.getOrderId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + files.add(file); + } + equFileMapper.insertEquFileBatch(files); + } } // 更新工单信息 @@ -413,6 +437,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { order.setShutDown(pdadto.getShutDown()); // 设置开始时间 order.setOrderStart(DateUtils.getNowDate()); + // 设置保养人 + order.setPlanPerson(SecurityContextHolder.getUserName()); // 更新数据表 order.setUpdateBy(SecurityContextHolder.getUserName()); order.setUpdateTime(DateUtils.getNowDate()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 4291e868f..ec503844e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -308,7 +308,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } if (!hasError) { - // TODO 删除报修单 + // 删除报修单 if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { equRepairOrderMapper.deleteEquRepairOrderByRepairCode(equOrder.getRepairCode()); @@ -324,6 +324,23 @@ public class EquOrderServiceImpl implements IEquOrderService { long diffSeconds = (equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime()) / 60000; equOrder.setOrderCostTime(String.valueOf(diffSeconds)); } + // 保养图片 + if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { + String[] ids = equOrder.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equOrder.getOrderId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + files.add(file); + } + equFileMapper.insertEquFileBatch(files); + } } // 更新工单信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java index aa85dd7d1..3e04ee709 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java @@ -59,6 +59,14 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { order.setPlanName(equPlan.getPlanName()); } + // 保养图片 + BaseFileData selectTemp = new BaseFileData(); + selectTemp.setSourceId(orderId); + List upkeepPictures = equFileMapper.selectUrlList(selectTemp); + if (upkeepPictures != null) { + order.setUpkeepPictures(upkeepPictures); + } + // 查询备件信息 List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); @@ -86,7 +94,6 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { } } // 未达标图片 - BaseFileData selectTemp = new BaseFileData(); selectTemp.setSourceId(standard.getId()); selectTemp.setImageType("3"); List checkPictrueList = equFileMapper.selectUrlList(selectTemp); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml index fffe32f3e..00829f881 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml @@ -69,7 +69,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" From 0fa435b51ce67f017de99665292c378050c24113 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 22 Nov 2023 12:52:53 +0800 Subject: [PATCH 17/64] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E4=B8=8D=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=88=B0=E6=8A=A5=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/service/impl/DevicePDAServiceImpl.java | 9 +++++++-- .../com/op/device/service/impl/EquOrderServiceImpl.java | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 39f9bdfc8..89c939617 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -186,6 +186,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } boolean hasError = false; + boolean maintenanceFlag = false; + + if (equOrder.getPlanType().equals("maintenance")) { + maintenanceFlag = true; + } List detailList = equOrder.getDetailList(); for (EquOrderDetail detail : detailList) { @@ -256,7 +261,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 报修信息 - if (checkRepair && hasError ) { + if (checkRepair && hasError && !maintenanceFlag) { // 获取故障报修流水号 EquRepairOrder equRepairOrder = new EquRepairOrder(); String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); @@ -308,7 +313,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 保养逻辑 - if (equOrder.getPlanType().equals("maintenance")) { + if (maintenanceFlag) { // 设置结束时间 equOrder.setOrderEnd(DateUtils.getNowDate()); //上传附件 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index ec503844e..70837bb8a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -196,6 +196,11 @@ public class EquOrderServiceImpl implements IEquOrderService { } boolean hasError = false; + boolean maintenanceFlag = false; + + if (equOrder.getPlanType().equals("maintenance")) { + maintenanceFlag = true; + } List detailList = equOrder.getDetailList(); for (EquOrderDetail detail : detailList) { @@ -264,7 +269,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 报修信息 - if (checkRepair && hasError) { + if (checkRepair && hasError && !maintenanceFlag) { // 获取故障报修流水号 EquRepairOrder equRepairOrder = new EquRepairOrder(); String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); @@ -318,7 +323,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 保养逻辑 - if (equOrder.getPlanType().equals("maintenance")) { + if (maintenanceFlag) { // 用时 if (equOrder.getOrderStart() != null) { long diffSeconds = (equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime()) / 60000; From 4bb2020255a4ecbc2522f1df2a693fb4d76fec35 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 22 Nov 2023 14:06:59 +0800 Subject: [PATCH 18/64] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/device/domain/EquOrderStandard.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java index a974f580e..4118bfdcc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java @@ -100,6 +100,16 @@ public class EquOrderStandard extends BaseEntity { private String repairPicture; + private String itemName; + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + private List checkPictrueList; public List getCheckPictrueList() { From 33c31ae5648ca03e70ba04f4b8fb33b110a10b55 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 22 Nov 2023 18:03:15 +0800 Subject: [PATCH 19/64] =?UTF-8?q?=E7=82=B9=E6=A3=80=E3=80=81=E5=B7=A1?= =?UTF-8?q?=E6=A3=80=E3=80=81=E4=BF=9D=E5=85=BB=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E3=80=81=E7=94=9F=E6=88=90=E7=BC=96=E7=A0=81=E9=87=8D?= =?UTF-8?q?=E5=A4=8DBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/controller/EquOrderController.java | 2 +- .../device/mapper/EquOrderDetailMapper.java | 6 ++++ .../com/op/device/mapper/EquOrderMapper.java | 6 ++++ .../device/mapper/EquOrderPersonMapper.java | 6 ++++ .../device/mapper/EquOrderStandardMapper.java | 6 ++++ .../op/device/mapper/EquSpareApplyMapper.java | 8 ++++- .../device/mapper/SparePartsLedgerMapper.java | 6 ++++ .../op/device/service/IEquOrderService.java | 2 +- .../service/impl/DevicePDAServiceImpl.java | 2 +- .../service/impl/DeviceTaskServiceImpl.java | 4 +-- .../service/impl/EquOrderServiceImpl.java | 32 +++++++++++++++++-- .../impl/EquUpkeepOrderServiceImpl.java | 2 +- .../impl/InspectionWorkServiceImpl.java | 2 +- .../device/EquCheckItemDetailMapper.xml | 2 +- .../mapper/device/EquCheckItemMapper.xml | 2 +- .../mapper/device/EquFaultTypeMapper.xml | 2 +- .../mapper/device/EquItemEquipmentMapper.xml | 2 +- .../mapper/device/EquOrderDetailMapper.xml | 9 ++++++ .../mapper/device/EquOrderMapper.xml | 11 +++++-- .../mapper/device/EquOrderPersonMapper.xml | 11 +++++++ .../mapper/device/EquOrderStandardMapper.xml | 10 ++++++ .../resources/mapper/device/EquPlanMapper.xml | 2 +- .../mapper/device/EquSpareApplyMapper.xml | 15 +++++++-- .../mapper/device/SparePartsLedgerMapper.xml | 5 +++ 24 files changed, 134 insertions(+), 21 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java index 424ec8573..6ad25fff4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java @@ -93,6 +93,6 @@ public class EquOrderController extends BaseController { @Log(title = "计划工单", businessType = BusinessType.DELETE) @DeleteMapping("/{orderIds}") public AjaxResult remove(@PathVariable String[] orderIds) { - return toAjax(equOrderService.deleteEquOrderByOrderIds(orderIds)); + return equOrderService.deleteEquOrderByOrderIds(orderIds); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java index 37e627431..6b289b43a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java @@ -78,4 +78,10 @@ public interface EquOrderDetailMapper { List selectEquOrderDetailByOrderCode(String orderCode); int insertEquOrderDetails(@Param("list") List details); + + /** + * 通过orderIds逻辑删除检查项信息 + * @param orderIds + */ + void delEquOrderDetailByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 7e42afbfd..23a437fed 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -155,4 +155,10 @@ public interface EquOrderMapper { * @return */ List selectCheckListByRepairCode(EquOrder equOrder); + + /** + * 逻辑删除工单信息 + * @param orderIds + */ + void delEquOrderByOrderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java index 7bb544a89..fd36f55f3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java @@ -69,4 +69,10 @@ public interface EquOrderPersonMapper { List selectEquOrderPersonByOrderCode(String orderCode); int insertEquOrderPersons(@Param("list") List persons); + + /** + * 通过工单ids逻辑删除人员信息 + * @param orderIds + */ + void delEquOrderPersonByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java index e1f82f44e..a05d2f8a8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java @@ -96,4 +96,10 @@ public interface EquOrderStandardMapper { * 更新维修后标准 */ void updateStandardAfterRepair(EquOrderStandard equOrderStandard); + + /** + * 通过orderIds逻辑删除标准信息 + * @param orderIds + */ + void delEquOrderStandardByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index 6cb379bc4..e6924a080 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -74,5 +74,11 @@ public interface EquSpareApplyMapper { * @param orderCode * @return */ - List selectEquSpareApplyListByParentCode(String orderCode); + List selectEquSpareApplyListByWorkCode(String orderCode); + + /** + * 通过保养工单ids逻辑删除备件申领表信息 + * @param orderIds + */ + void delEquSpareApplyByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java index 2714af72d..e46cdd5b3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java @@ -73,4 +73,10 @@ public interface SparePartsLedgerMapper { * @param apply */ void updateSpareNumReduce(EquSpareApply apply); + + /** + * 删除工单然后返还备件数量 + * @param apply + */ + void updateSpareNumAdd(EquSpareApply apply); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java index da19e7c74..f6d051742 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java @@ -50,7 +50,7 @@ public interface IEquOrderService { * @param orderIds 需要删除的计划工单主键集合 * @return 结果 */ - public int deleteEquOrderByOrderIds(String[] orderIds); + public AjaxResult deleteEquOrderByOrderIds(String[] orderIds); /** * 删除计划工单信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 89c939617..93bc62b72 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -143,7 +143,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 备件 - List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); if (spareList != null) { order.setSpareList(spareList); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index dd2b695f4..933ed86ba 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -288,7 +288,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { apply.setSpareQuantity(spare.getApplyNum()); apply.setFactoryCode(factory); apply.setApplyPeople("job"); - apply.setParentCode(orderCode); + apply.setWorkCode(orderCode); apply.setCreateBy("job"); apply.setCreateTime(nowtime); apply.setSpareUseEquipment(plan.getEquipmentCode()); @@ -296,7 +296,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 插入备件信息 equSpareApplyMapper.insertEquSpareApply(apply); - // TODO 减少备件仓库中备件数量 + // 减少备件仓库中备件数量 sparePartsLedgerMapper.updateSpareNumReduce(apply); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 70837bb8a..b56c698fe 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -55,6 +55,8 @@ public class EquOrderServiceImpl implements IEquOrderService { private EquPlanMapper equPlanMapper; @Autowired private EquSpareApplyMapper equSpareApplyMapper; + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; /** * 查询计划工单 @@ -91,7 +93,7 @@ public class EquOrderServiceImpl implements IEquOrderService { order.setDetailList(detailList); // 备件 - List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); if (spareList.size() > 0) { order.setSpareList(spareList); } @@ -361,8 +363,32 @@ public class EquOrderServiceImpl implements IEquOrderService { */ @Override @DS("#header.poolName") - public int deleteEquOrderByOrderIds(String[] orderIds) { - return equOrderMapper.deleteEquOrderByOrderIds(orderIds); + public AjaxResult deleteEquOrderByOrderIds(String[] orderIds) { + // 保养-备件逻辑 + for (String orderId : orderIds) { + EquOrder order = equOrderMapper.selectEquOrderByOrderId(orderId); + if (!order.getOrderStatus().equals("0")) { + return error(500,"工单已进行修改!不可删除!"); + } + if (order.getPlanType().equals("maintenance")) { + List applyList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getWorkCode()); + for (EquSpareApply apply : applyList) { + // 返回备件数量 + sparePartsLedgerMapper.updateSpareNumAdd(apply); + } + } + } + // 逻辑删除工单 + equOrderMapper.delEquOrderByOrderIds(orderIds); + // 逻辑删除获取人员 + equOrderPersonMapper.delEquOrderPersonByorderIds(orderIds); + // 逻辑删除标准信息 + equOrderStandardMapper.delEquOrderStandardByorderIds(orderIds); + // 逻辑删除检查项信息 + equOrderDetailMapper.delEquOrderDetailByorderIds(orderIds); + // 逻辑删除备件信息 + equSpareApplyMapper.delEquSpareApplyByorderIds(orderIds); + return success(); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java index 23a3a7f57..10e375552 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java @@ -130,7 +130,7 @@ public class EquUpkeepOrderServiceImpl implements IEquUpkeepOrderService { apply.setSpareQuantity(spare.getApplyNum()); apply.setFactoryCode(factory); apply.setApplyPeople(SecurityContextHolder.getUserName()); - apply.setParentCode(equOrder.getOrderCode()); + apply.setWorkCode(equOrder.getOrderCode()); apply.setCreateBy(SecurityContextHolder.getUserName()); apply.setCreateTime(DateUtils.getNowDate()); apply.setSpareUseEquipment(equOrder.getEquipmentCode()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java index 3e04ee709..7203edc3b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java @@ -68,7 +68,7 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { } // 查询备件信息 - List spareList = equSpareApplyMapper.selectEquSpareApplyListByParentCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); // 替换循环周期 order.setPlanLoopType(equOrderMapper.changeLoopType(order.getPlanLoopType())); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml index 03432131d..437a399ad 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml @@ -60,7 +60,7 @@ SELECT COUNT(item_id)+1 AS serialNum FROM equ_check_item - WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) SELECT COUNT(fault_id)+1 AS serialNum FROM equ_fault_type - WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml index e58ca3995..fb8bc2847 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml @@ -50,7 +50,7 @@ SELECT COUNT(order_id)+1 AS serialNum FROM equ_order - WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) select eo.order_id, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml index 870e0dc05..51a5b7013 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml @@ -127,4 +127,15 @@ #{id} + + + update equ_order_person + set del_flag = '1' + where del_flag = '0' and order_code in ( + select order_code from equ_order where del_flag = '0' and order_id in + + #{id} + + ) + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml index 466095ba5..cb2aa019e 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml @@ -259,6 +259,16 @@ delete from base_file where source_id = #{sourceId} + + update equ_order_standard set del_flag = '1' + where del_flag = '0' and order_code in ( + select order_code from equ_order where del_flag = '0' and order_id in + + #{id} + + ) + + SELECT COUNT(plan_id)+1 AS serialNum FROM equ_plan - WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) @@ -179,12 +188,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where parent_code = #{orderCode} and del_flag = '0' + where work_code = #{orderCode} and del_flag = '0' \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml index 0ceedf67a..f1eb13d42 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml @@ -285,6 +285,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" set amount = ( amount - #{spareQuantity} ) where material_code = #{spareCode} + + update wms_ods_mate_storage_news + set amount = ( amount + #{spareQuantity} ) where material_code = #{spareCode} + + delete from wms_ods_mate_storage_news where storage_id = #{storageId} From a72bdf80687b24f117705fbfa36c1de7c4e03e7b Mon Sep 17 00:00:00 2001 From: A0010407 Date: Thu, 23 Nov 2023 07:42:20 +0800 Subject: [PATCH 20/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/domain/EquRepairWorkOrder.java | 21 ++++++--- .../com/op/device/domain/EquSpareApply.java | 22 +++++++++ .../device/mapper/EquOrderStandardMapper.java | 6 ++- .../device/mapper/EquOutsourceWorkMapper.java | 3 ++ .../device/mapper/EquRepairOrderMapper.java | 2 +- .../mapper/EquRepairWorkOrderMapper.java | 3 ++ .../service/impl/DevicePDAServiceImpl.java | 45 ++++++++++++++----- .../impl/EquOutsourceWorkServiceImpl.java | 8 ++++ .../impl/EquRepairWorkOrderServiceImpl.java | 17 ++++--- .../mapper/device/EquOrderStandardMapper.xml | 15 ++++++- .../mapper/device/EquOutsourceWorkMapper.xml | 5 +++ .../device/EquRepairWorkOrderMapper.xml | 13 ++++-- 12 files changed, 132 insertions(+), 28 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 0ad69d534..e55546bf5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -1,5 +1,6 @@ package com.op.device.domain; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -135,6 +136,9 @@ public class EquRepairWorkOrder extends BaseEntity { //维修停机真正结束时间 private Date actualDownEndTime; + /** 联系方式 */ + private String workConnection; + // 设备 /** 设备名称 */ @Excel(name = "设备名称") @@ -214,7 +218,7 @@ public class EquRepairWorkOrder extends BaseEntity { /** 委外单位 */ private String workOutsourcingUnit; /** 联系方式 */ - private String workConnection; + private String outSourceConnection; //手持 //用户id @@ -559,6 +563,13 @@ public class EquRepairWorkOrder extends BaseEntity { return workEndTime; } + public void setWorkConnection(String workConnection) { + this.workConnection = workConnection; + } + public String getWorkConnection() { + return workConnection; + } + //班组 public void setTeamName(String teamName) { this.teamName = teamName; @@ -639,11 +650,11 @@ public class EquRepairWorkOrder extends BaseEntity { return workOutsourcingUnit; } - public void setWorkConnection(String workConnection) { - this.workConnection = workConnection; + public void setOutSourceConnection(String outSourceConnection) { + this.outSourceConnection = outSourceConnection; } - public String getWorkConnection() { - return workConnection; + public String getOutSourceConnection() { + return outSourceConnection; } //手持 用户userId diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java index a18de76a5..76bba57db 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java @@ -106,6 +106,28 @@ public class EquSpareApply extends BaseEntity { /** 总数量 */ private BigDecimal amount; + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String materialDesc; + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialDesc(String materialDesc) { + this.materialDesc = materialDesc; + } + public String getMaterialDesc() { + return materialDesc; + } + public List getApplyTimeArray() { return applyTimeArray; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java index a05d2f8a8..41308b975 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java @@ -74,7 +74,7 @@ public interface EquOrderStandardMapper { * 图片数据绑定 * @param files */ - void insertBaseFileBatch(List files); + void insertBaseFileBatch(@Param("baseFiles")List files); /** * 删除图片 @@ -102,4 +102,8 @@ public interface EquOrderStandardMapper { * @param orderIds */ void delEquOrderStandardByorderIds(String[] orderIds); + + + //更新标准 + void updateActualValues(EquOrderStandard standardList); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java index 532c5febd..9a7581e22 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java @@ -62,4 +62,7 @@ public interface EquOutsourceWorkMapper { //流水号 public int selectWorkCodeSerialNumber(); + + //通过repairCode删除存在的委外记录 + public void deleteEquOutsourceWorkByRepairCode(String workCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java index 6e5f38d54..0a2b6fc4f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java @@ -91,7 +91,7 @@ public interface EquRepairOrderMapper { /** * 批量新增报修图片 */ - Boolean insertBaseFileBatch(@Param("baseFiles") List baseFiles); + Boolean insertBaseFileBatch(List baseFiles); /** * 删除报修图片 diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index b38575b01..c8eb3aedd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -94,4 +94,7 @@ public interface EquRepairWorkOrderMapper { * 批量新增报修图片 */ Boolean insertBaseFileBatch(@Param("baseFiles") List baseFiles); + + //更新维修工单状态 + void updateWorkStatus(String repairCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 93bc62b72..b475a3626 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -351,9 +351,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder) { try { +// equRepairOrder + //自动填入联系人 联系方式!!!!! String id = IdUtils.fastSimpleUUID(); equRepairOrder.setOrderId(id); - // 获取故障报修流水号 + // 新增 是需要获取故障报修流水号 String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equRepairOrder.getEquipmentCode(); //报修单号 @@ -368,6 +370,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); + //删除照片 不需要清照片 因为是新增 //新增文件 if (StringUtils.isNotEmpty(equRepairOrder.getFileList())) { String[] ids1 = equRepairOrder.getFileList().split(","); @@ -485,7 +488,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } } /** - * 获取维修记录 + * 获取维修人员 * * @param equTeamUser * @return @@ -573,6 +576,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (!CollectionUtils.isEmpty(files)) { standardList.setPicturePaths(files); } + standardList.setDetailReach(standardList.getRepairReach()); + standardList.setActualValue(standardList.getRepairValue()); } equOrder1.setStandardList(standardLists); } @@ -604,17 +609,13 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - try { //判断是否停机 EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); if(list.getWorkDownMachine().equals("1")){ //维修结束时间、维修真正停机时间 equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); - equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //维修完成 - equRepairWorkOrder.setWorkStatus("1"); } - + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); //更新每一项点检/巡检检查项信息 List checkLists = equRepairWorkOrder.getDetailList(); for(EquOrder checkList:checkLists){ @@ -643,7 +644,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } equOrderStandardMapper.insertBaseFileBatch(files); } - equOrderStandardMapper.updateEquOrderStandard(standardList); + standardList.setRepairReach(standardList.getDetailReach()); + standardList.setRepairValue(standardList.getActualValue()); + standardList.setUpdateTime(DateUtils.getNowDate()); + standardList.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandardMapper.updateActualValues(standardList); } equOrderMapper.updateEquOrder(checkList); } @@ -651,11 +656,27 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //新建申领单 缺少code List equSpareApplies = equRepairWorkOrder.getApplyList(); for(EquSpareApply equSpareApply:equSpareApplies){ + //生成领料单code + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + equSpareApply.setApplyCode("A" + code ); equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + //备品备件规格型号!!!!! + //equSpareApply.setSpareModel(equSpareApply.getS); + equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); + equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); equSpareApply.setCreateBy(SecurityUtils.getUsername()); equSpareApply.setCreateTime(DateUtils.getNowDate()); equSpareApply.setApplyTime(DateUtils.getNowDate()); + equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); + equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equSpareApplyMapper.insertEquSpareApply(equSpareApply); + +// SparePartsLedger sparePartsLedger = new SparePartsLedger(); +// sparePartsLedger. } //图片 @@ -679,14 +700,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } equRepairWorkOrderMapper.insertBaseFileBatch(files); } + //维修人:当前登录人 + //维修状态 + equRepairWorkOrder.setWorkStatus("1"); + //维修结束时间 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); //需要更新设备状态????这里没做 return success("提交成功,维修完成!"); - } catch (Exception e) { - return error(); - } } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java index 0c2d537e9..e07558949 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java @@ -29,6 +29,9 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Autowired private EquOutsourceWorkMapper equOutsourceWorkMapper; + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + /** * 查询委外工单 @@ -88,6 +91,11 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Override @DS("#header.poolName") public int updateEquOutsourceWork(EquOutsourceWork equOutsourceWork) { + //1完成委外 + if(equOutsourceWork.getWorkStatus().equals("1")){ + //更新维修工单状态 + equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode()); + } equOutsourceWork.setUpdateTime(DateUtils.getNowDate()); equOutsourceWork.setUpdateBy(SecurityUtils.getUsername()); return equOutsourceWorkMapper.updateEquOutsourceWork(equOutsourceWork); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 4e9302b7b..587462685 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -56,7 +56,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); List beforeFiles = equRepairWorkOrderMapper.getBaseFileBatch(list.getOrderId()); if (!CollectionUtils.isEmpty(beforeFiles)) { - list.setBeforeRepairFiles(beforeFiles); + list.setBeforeRepairFiles(beforeFiles); } //查询维修后图片 List afterFiles = equRepairWorkOrderMapper.getBaseFileBatch(workId); @@ -222,15 +222,18 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Override @DS("#header.poolName") public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder) { + //如果存在之前的删掉重新增加,物理删除 + equOutsourceWorkMapper.deleteEquOutsourceWorkByRepairCode(equRepairWorkOrder.getWorkCode()); //转委外 EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); //委外工单号 - String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairWorkOrder.getEquipmentCode(); + //String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); + //改了,不生成流水号,从第十位开始切割 + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + equOutsourceWork.setWorkCode("WW"+ code); equOutsourceWork.setOrderCode("无"); - equOutsourceWork.setWorkCode("WW"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); - equOutsourceWork.setEquipmentCode(equipmentCode); + equOutsourceWork.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); equOutsourceWork.setRepairCode(equRepairWorkOrder.getWorkCode()); equOutsourceWork.setWorkReason(equRepairWorkOrder.getOutSourceReason()); equOutsourceWork.setWorkPerson(equRepairWorkOrder.getOutSourcePerson()); @@ -245,6 +248,10 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equRepairWorkOrder.setOutWorkCode(equOutsourceWork.getWorkCode()); equRepairWorkOrderMapper.updateWorkOutsource(equRepairWorkOrder); } + //工厂号 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); return equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml index cb2aa019e..6ce4fe557 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml @@ -209,6 +209,17 @@ where id = #{id} and del_flag = '0' + + update equ_order_standard + + repair_reach = #{repairReach}, + repair_value = #{repairValue}, + repair_picture = #{repairPicture}, + + where id = #{id} + and del_flag = '0' + + delete from equ_order_standard where id = #{id} @@ -231,7 +242,9 @@ eos.detail_unit, eos.detail_reach, eos.actual_value, - eos.standard_type + eos.standard_type, + eos.repair_reach, + eos.repair_value from equ_order_standard eos where parent_code = #{parentCode} and order_code = #{orderCode} diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml index 19c22bd14..405463bdd 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml @@ -185,6 +185,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where work_id = #{workId} + + delete from equ_outsource_work + where repair_code = #{workCode} + + update equ_outsource_work set del_flag = '1' diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml index 3a44cbfa8..828867245 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml @@ -21,14 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - @@ -266,7 +263,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ero.order_connection, eow.work_person AS outSourcePerson, eow.work_outsourcing_unit AS workOutsourcingUnit, - eow.work_connection AS workConnection, + eow.work_connection AS outSourceConnection, eow.work_reason AS outSourceReason from equ_repair_work_order erwo left join base_equipment be on erwo.equipment_code = be.equipment_code @@ -467,4 +464,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + update equ_repair_work_order + set + work_status = '1' + where work_code = #{repairCode} + and del_flag = '0' + + \ No newline at end of file From f221f0ec05783be7a3302e08677503f03d6e6edd Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 23 Nov 2023 08:44:32 +0800 Subject: [PATCH 21/64] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E5=88=86=E6=9E=90?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/domain/quality/ChartDTO.java | 6 +- .../system/api/domain/quality/FactoryDto.java | 126 ++++++++++++++++++ .../op/open/service/impl/OpenServiceImpl.java | 12 +- .../impl/ProOrderWorkorderServiceImpl.java | 20 +-- .../controller/QcStaticTableController.java | 65 +++++++-- .../op/quality/controller/QuaController.java | 44 +++++- .../com/op/quality/domain/QcCheckType.java | 22 ++- .../com/op/quality/domain/QcStaticTable.java | 27 ++++ .../op/quality/mapper/QcCheckTypeMapper.java | 16 ++- .../quality/mapper/QcStaticTableMapper.java | 9 +- .../quality/service/IQcCheckTypeService.java | 18 ++- .../service/IQcStaticTableService.java | 11 +- .../impl/QcStaticTableServiceImpl.java | 35 +++-- .../serviceImpl/QcCheckTypeServiceImpl.java | 28 +++- .../mapper/quality/QcCheckTypeMapper.xml | 34 ++++- .../mapper/quality/QcStaticTableMapper.xml | 61 +++++++-- 16 files changed, 449 insertions(+), 85 deletions(-) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java index 0f795e1b6..c070aa2ee 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java @@ -17,7 +17,7 @@ import java.util.List; public class ChartDTO { private String name; private String type; - private List data; + private List data; public String getType() { return type; @@ -27,11 +27,11 @@ public class ChartDTO { this.type = type; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java new file mode 100644 index 000000000..1964ae425 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java @@ -0,0 +1,126 @@ +package com.op.system.api.domain.quality; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.TreeEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 工厂模型对象 sys_factory + * + * @author Open Platform + * @date 2023-07-03 + */ +public class FactoryDto extends TreeEntity { + private static final long serialVersionUID = 1L; + + /** 工厂id */ + private Long factoryId; + + /** 部门名称 */ + @Excel(name = "工厂名称") + private String factoryName; + + /** 负责人 */ + @Excel(name = "负责人") + private String leader; + + /** 联系电话 */ + @Excel(name = "联系电话") + private String phone; + + /** 邮箱 */ + @Excel(name = "邮箱") + private String email; + + /** 部门状态(0正常 */ + @Excel(name = "工厂状态") + private String status; + + /** 删除标志(0代表存在 */ + private String delFlag; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + public void setFactoryId(Long factoryId) { + this.factoryId = factoryId; + } + + public Long getFactoryId() { + return factoryId; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getFactoryName() { + return factoryName; + } + + public void setLeader(String leader) { + this.leader = leader; + } + + public String getLeader() { + return leader; + } + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPhone() { + return phone; + } + public void setEmail(String email) { + this.email = email; + } + + public String getEmail() { + return email; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("factoryId", getFactoryId()) + .append("parentId", getParentId()) + .append("ancestors", getAncestors()) + .append("factoryName", getFactoryName()) + .append("orderNum", getOrderNum()) + .append("leader", getLeader()) + .append("phone", getPhone()) + .append("email", getEmail()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index c5bc8c0cf..6cc06aee5 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -186,14 +186,14 @@ public class OpenServiceImpl implements OpenService { sysSapLog.setCreateTime(DateUtils.getNowDate()); openMapper.addSapLog(sysSapLog); - //R r = remoteSapService.sapRFWOrder(sapRFW); + R r = remoteSapService.sapRFWOrder(sapRFW); //上传成功,更改mes_report_work状态 - //if (r.getCode() == 200) { + if (r.getCode() == 200) { work.setUploadStatus("1"); - //} else { - // work.setUploadStatus("2"); - // work.setUploadMsg(r.getMsg()); - //} + } else { + work.setUploadStatus("2"); + work.setUploadMsg(r.getMsg()); + } work.setUploadTime(DateUtils.getNowDate()); openMapper.updateSyncSapStatus(work); //工单完成数量>工单数量:关闭订单 diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index aac5d70a1..3509a1c85 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -279,20 +279,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sysSapLog.setReqcode("请求"); sysSapLog.setCreateTime(DateUtils.getNowDate()); proOrderMapper.addSapLog(sysSapLog); -//未来生产要打开 -// R> r = remoteSapService.SapCreateOrder(sapList); -// logger.info("sap工单回传:" + r.getMsg()); -// if (500 == r.getCode()) { -// logger.error("sap工单回传:" + r.getMsg()); -// return 0; -// } -// List returnCodes = r.getData(); - //未来生产要删掉 - List returnCodes = new ArrayList<>(); - for(SapCreateOrder xnsap:sapList){ - returnCodes.add("test"); - } + R> r = remoteSapService.SapCreateOrder(sapList); + logger.info("sap工单回传:" + r.getMsg()); + if (500 == r.getCode()) { + logger.error("sap工单回传:" + r.getMsg()); + return 0; + } + List returnCodes = r.getData(); if (!CollectionUtils.isEmpty(returnCodes)) { for (String sapCode : returnCodes) { ProOrderWorkorder oworkSap = new ProOrderWorkorder(); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index 521a89928..c863f96fa 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -1,15 +1,18 @@ package com.op.quality.controller; +import java.math.BigDecimal; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; import com.op.system.api.domain.quality.ChartDTO; +import com.op.system.api.domain.quality.FactoryDto; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -86,26 +89,68 @@ public class QcStaticTableController extends BaseController { qcStaticTable.setYmArrayStart(ymStr); qcStaticTable.setYmArrayEnd(ymStr); } + if(StringUtils.isNotBlank(qcStaticTable.getMaterialCode())){ + qcStaticTable.setMaterialCode("'"+qcStaticTable.getMaterialCode().replace(",","','")+"'"); + } //xAxis; if(qcStaticTable.getYmArrayStart().equals(qcStaticTable.getYmArrayEnd())){ /**月内每日**/ List days = this.getXNames(qcStaticTable.getYmArrayStart()+"-01", qcStaticTable.getYmArrayEnd()+"-01","ymd"); resultdto.setxAxis(days); + + qcStaticTable.setDataType("ymd"); + qcStaticTable.setYmArrayStart(days.get(0)); + qcStaticTable.setYmArrayEnd(days.get(days.size()-1)); }else{ /**年内各月**/ List months = this.getXNames(qcStaticTable.getYmArrayStart(),qcStaticTable.getYmArrayEnd(),"ym"); resultdto.setxAxis(months); - } - //series;//legend.data - List seriesdtos= qcStaticTableService.getProduceChartData(qcStaticTable); - ChartDTO chartDTO = new ChartDTO(); - for(QcStaticTable seriesdto:seriesdtos){ - chartDTO.setName(seriesdto.getMaterialName()); - chartDTO.setType("line"); + + qcStaticTable.setDataType("ym"); + qcStaticTable.setYmArrayStart(months.get(0)); + qcStaticTable.setYmArrayEnd(months.get(months.size()-1)); } - resultdto.setSeries(null); + + List serieDTOs = qcStaticTableService.getProduceNames(qcStaticTable); + //legendData + List pnames = serieDTOs.stream().map(u -> u.getMaterialName()).collect(Collectors.toList()); + resultdto.setLegendData(pnames); + + Map seriesdtos= null; + if("ymd".equals(qcStaticTable.getDataType())){//ymd + //code->materialCode+yyyy-mm-dd + seriesdtos= qcStaticTableService.getProduceChartData(qcStaticTable); + }else{//ym + //code->materialCode+yyyy-mm-dd + seriesdtos= qcStaticTableService.getProduceChartDataYM(qcStaticTable); + } + + List seriesChart = new ArrayList<>(); + for(QcStaticTable serieDTO:serieDTOs){ + ChartDTO chartDTO = new ChartDTO(); + chartDTO.setName(serieDTO.getMaterialName()); + chartDTO.setType("line"); + String keyPre = serieDTO.getMaterialCode(); + List datas = new ArrayList<>(); + for(String ymd:resultdto.getxAxis()){ + String key = keyPre+ymd; + QcStaticTable mdata = seriesdtos.get(key); + if(mdata != null){ + BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65")) + .add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35))) + .divide(new BigDecimal(mdata.getSampleQuality())) + .setScale(2, BigDecimal.ROUND_HALF_UP); + datas.add(defectRate.doubleValue()); + }else{ + datas.add(0.00); + } + } + chartDTO.setData(datas); + seriesChart.add(chartDTO); + } + resultdto.setSeries(seriesChart); return resultdto; } @@ -163,4 +208,8 @@ public class QcStaticTableController extends BaseController { util.exportExcel(response, list, "质量系统报数据"); } + @GetMapping("/getWorkcenterList") + public List getWorkcenterList(FactoryDto factoryDto) { + return qcStaticTableService.getWorkcenterList(factoryDto); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index b1a4176c8..d242a381b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -6,11 +6,10 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; -import com.op.quality.domain.QcCheckTaskProduce; -import com.op.quality.domain.QcCheckTaskWarehousing; -import com.op.quality.domain.QcProCheck; +import com.op.quality.domain.*; import com.op.quality.service.IQcCheckTaskProduceService; import com.op.quality.service.IQcCheckTaskWarehousingService; +import com.op.quality.service.IQcCheckTypeService; import com.op.quality.service.QcProCheckService; import com.op.system.api.RemoteMesService; import com.op.system.api.domain.dto.WCSDTO; @@ -34,12 +33,12 @@ public class QuaController extends BaseController { @Autowired private RemoteMesService remoteMesService; - @Autowired private IQcCheckTaskProduceService qcCheckTaskProduceService; - @Autowired private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService; + @Autowired + private IQcCheckTypeService qcCheckTypeService; @PostMapping("/saveQcProCheck") public R saveQcProCheck(@RequestBody QcProCheck qcProCheck) { @@ -149,4 +148,39 @@ public class QuaController extends BaseController { //添加检测任务 return success(qcCheckTaskWarehousingService.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing)); } + + /** + * 任务数量管理 + */ + @GetMapping(value = "getTopTaskInfo") + public AjaxResult getTopTaskInfo(QcCheckType qcCheckType) { + if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + return success(qcCheckTypeService.getTopTaskInfo(qcCheckType)); + } + + + /** + * 获取检验节点下拉列表 + */ + @GetMapping(value = "getCheckType") + public AjaxResult getCheckType(QcCheckType qcCheckType) { + if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + return success(qcCheckTypeService.getCheckType(qcCheckType)); + } + + /** + * 获取待检验信息列表 + */ + @GetMapping(value = "getCheckTaskList") + public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { +// if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ +// return error("[factoryCode]不能为空"); +// } +// return success(qcCheckTypeService.getCheckType(qcCheckType)); + return null; + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java index e6f76a14f..79249d12e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java @@ -7,7 +7,7 @@ import com.op.common.core.web.domain.BaseEntity; /** * 检验节点维护对象 qc_check_type - * + * * @author Open Platform * @date 2023-10-12 */ @@ -24,7 +24,7 @@ public class QcCheckType extends BaseEntity { /** 名称 */ @Excel(name = "名称") private String checkName; - + private String checkType; /** 类型编码 */ @Excel(name = "类型编码") private String typeCode; @@ -44,6 +44,24 @@ public class QcCheckType extends BaseEntity { /** 删除标识1删除0正常 */ private String delFlag; + private int taskNum; + + public int getTaskNum() { + return taskNum; + } + + public String getCheckType() { + return checkType; + } + + public void setCheckType(String checkType) { + this.checkType = checkType; + } + + public void setTaskNum(int taskNum) { + this.taskNum = taskNum; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index c337a9e54..5a0fe17cd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -50,6 +50,33 @@ public class QcStaticTable extends BaseEntity { private BigDecimal bNoOkquality; private BigDecimal cNoOkquality; private BigDecimal defectRate;//不良率 + private String materailDate; + private String dataType; + private String workCenter; + + public String getWorkCenter() { + return workCenter; + } + + public void setWorkCenter(String workCenter) { + this.workCenter = workCenter; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getMaterailDate() { + return materailDate; + } + + public void setMaterailDate(String materailDate) { + this.materailDate = materailDate; + } public BigDecimal getDefectRate() { return defectRate; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java index a5a45573b..3069165d8 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java @@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper; /** * 检验节点维护Mapper接口 - * + * * @author Open Platform * @date 2023-10-12 */ @@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Mapper; public interface QcCheckTypeMapper { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -23,7 +23,7 @@ public interface QcCheckTypeMapper { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护集合 */ @@ -31,7 +31,7 @@ public interface QcCheckTypeMapper { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -39,7 +39,7 @@ public interface QcCheckTypeMapper { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -47,7 +47,7 @@ public interface QcCheckTypeMapper { /** * 删除检验节点维护 - * + * * @param id 检验节点维护主键 * @return 结果 */ @@ -55,9 +55,11 @@ public interface QcCheckTypeMapper { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteQcCheckTypeByIds(String[] ids); + + List getTopTaskInfo(QcCheckType qcCheckType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index 070dee5f4..052af7fc6 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.op.quality.domain.QcStaticTable; +import com.op.system.api.domain.quality.FactoryDto; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,12 @@ public interface QcStaticTableMapper { @MapKey("supplierCode") public Map selectNumMap(@Param("qc")QcStaticTable qcStaticTable, @Param("codes")List tabledtos); + @MapKey("materailDate") + Map getProduceChartData(QcStaticTable qcStaticTable); - List getProduceChartData(QcStaticTable qcStaticTable); + List getProduceNames(QcStaticTable qcStaticTable); + @MapKey("materailDate") + Map getProduceChartDataYM(QcStaticTable qcStaticTable); + + List getWorkcenterList(FactoryDto factoryDto); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java index 7067bb367..a2588c9e3 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java @@ -5,14 +5,14 @@ import com.op.quality.domain.QcCheckType; /** * 检验节点维护Service接口 - * + * * @author Open Platform * @date 2023-10-12 */ public interface IQcCheckTypeService { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -20,7 +20,7 @@ public interface IQcCheckTypeService { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护集合 */ @@ -28,7 +28,7 @@ public interface IQcCheckTypeService { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -36,7 +36,7 @@ public interface IQcCheckTypeService { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -44,7 +44,7 @@ public interface IQcCheckTypeService { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的检验节点维护主键集合 * @return 结果 */ @@ -52,9 +52,13 @@ public interface IQcCheckTypeService { /** * 删除检验节点维护信息 - * + * * @param id 检验节点维护主键 * @return 结果 */ public int deleteQcCheckTypeById(String id); + + List getCheckType(QcCheckType qcCheckType); + + List getTopTaskInfo(QcCheckType qcCheckType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index 54c247c47..e722ca1e5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -1,7 +1,10 @@ package com.op.quality.service; import java.util.List; +import java.util.Map; + import com.op.quality.domain.QcStaticTable; +import com.op.system.api.domain.quality.FactoryDto; /** * 质量系统报Service接口 @@ -19,5 +22,11 @@ public interface IQcStaticTableService { */ public List selectQcStaticTableList(QcStaticTable qcStaticTable); - public List getProduceChartData(QcStaticTable qcStaticTable); + public Map getProduceChartData(QcStaticTable qcStaticTable); + + public List getProduceNames(QcStaticTable qcStaticTable); + + public Map getProduceChartDataYM(QcStaticTable qcStaticTable); + + List getWorkcenterList(FactoryDto factoryDto); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 3a43465ad..a1f9e4d86 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -6,6 +6,7 @@ import java.util.Map; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; +import com.op.system.api.domain.quality.FactoryDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcStaticTableMapper; @@ -76,7 +77,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { //批次合格率 if(tabledto.getBatchs() != 0){ BigDecimal noOkBatchRate = new BigDecimal(tabledto.getNoOkBatchs()).multiply(new BigDecimal("100.00")) - .divide(new BigDecimal(tabledto.getBatchs())) + .divide(new BigDecimal(tabledto.getBatchs()),BigDecimal.ROUND_CEILING) .setScale(2,BigDecimal.ROUND_HALF_UP); tabledto.setNoOkBatchRate(noOkBatchRate.toString()+"%"); }else{ @@ -93,7 +94,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { //数量不良率 if(tabledto.getNums() != 0){ BigDecimal noOkNumRate = new BigDecimal(tabledto.getNoOkNums()).multiply(new BigDecimal("100.00")) - .divide(new BigDecimal(tabledto.getNums())) + .divide(new BigDecimal(tabledto.getNums()),BigDecimal.ROUND_CEILING) .setScale(2,BigDecimal.ROUND_HALF_UP); tabledto.setNoOkNumRate(noOkNumRate.toString()+"%"); }else{ @@ -111,15 +112,29 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { */ @Override @DS("#header.poolName") - public List getProduceChartData(QcStaticTable qcStaticTable) { - List dtos = qcStaticTableMapper.getProduceChartData(qcStaticTable); - for(QcStaticTable dto:dtos){ - BigDecimal defectRate = (dto.getaNoOkquality().add(dto.getbNoOkquality()).multiply(new BigDecimal("0.65")) - .add(dto.getcNoOkquality()).multiply(new BigDecimal(0.35))) - .divide(new BigDecimal(dto.getSampleQuality())); - dto.setDefectRate(defectRate); - } + public Map getProduceChartData(QcStaticTable qcStaticTable) { + Map dtos = qcStaticTableMapper.getProduceChartData(qcStaticTable); return dtos; } + @Override + @DS("#header.poolName") + public List getProduceNames(QcStaticTable qcStaticTable) { + return qcStaticTableMapper.getProduceNames(qcStaticTable); + } + + @Override + @DS("#header.poolName") + public Map getProduceChartDataYM(QcStaticTable qcStaticTable) { + Map dtos = qcStaticTableMapper.getProduceChartDataYM(qcStaticTable); + return dtos; + } + + @Override + @DS("#header.poolName") + public List getWorkcenterList(FactoryDto factoryDto) { + return qcStaticTableMapper.getWorkcenterList(factoryDto); + } + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java index e75c29b20..0c7ff187d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java @@ -3,6 +3,7 @@ package com.op.quality.service.serviceImpl; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -19,7 +20,7 @@ import javax.servlet.http.HttpServletRequest; /** * 检验节点维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-12 */ @@ -30,7 +31,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -42,7 +43,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护 */ @@ -54,7 +55,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -77,7 +78,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -91,7 +92,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的检验节点维护主键 * @return 结果 */ @@ -103,7 +104,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 删除检验节点维护信息 - * + * * @param id 检验节点维护主键 * @return 结果 */ @@ -112,4 +113,17 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { public int deleteQcCheckTypeById(String id) { return qcCheckTypeMapper.deleteQcCheckTypeById(id); } + + @Override + public List getCheckType(QcCheckType qcCheckType) { + DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key + return qcCheckTypeMapper.selectQcCheckTypeList(qcCheckType); + } + + @Override + public List getTopTaskInfo(QcCheckType qcCheckType) { + DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key + return qcCheckTypeMapper.getTopTaskInfo(qcCheckType); + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index fd1a4aa94..ef7216b69 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,27 +20,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, order_code, check_name, type_code, type_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_check_type + select id, order_code, check_name, type_code, type_name, attr1, create_by, + create_time, update_by, update_time, factory_code, del_flag from qc_check_type - + - + + + insert into qc_check_type @@ -101,4 +123,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - \ No newline at end of file + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index f51290ebd..861aa428b 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -57,14 +57,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by qct.supplier_code,qct.supplier_name + + + - From 93f60c6f6cb711c2ac3a805f23deea260f2a2419 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 23 Nov 2023 15:28:38 +0800 Subject: [PATCH 22/64] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProOrderWorkorderController.java | 12 +++++++ .../plan/mapper/ProOrderWorkorderMapper.java | 4 +++ .../service/IProOrderWorkorderService.java | 2 ++ .../impl/ProOrderWorkorderServiceImpl.java | 32 +++++++++++++++++++ .../mapper/plan/ProOrderWorkorderMapper.xml | 16 ++++++++++ 5 files changed, 66 insertions(+) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java index ef9b4bb96..7955afdb3 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java @@ -77,6 +77,18 @@ public class ProOrderWorkorderController extends BaseController { return proOrderWorkorderService.subChangeWorkOrder(splitOrderDTO); } + /** + * 提交修改工单-设备变更接口 + * + * @param splitOrderDTO + * @return + */ + @PostMapping("/subChangeWorkOrderM") + @RequiresPermissions("mes:pro:workorder:edit") + public AjaxResult subChangeWorkOrderM(@RequestBody SplitOrderDTO splitOrderDTO) { + return proOrderWorkorderService.subChangeWorkOrderM(splitOrderDTO); + } + /** * 通过子工单获取批次信息list(父工单批次信息) * diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 2fe38f039..d575119c9 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -154,5 +154,9 @@ public interface ProOrderWorkorderMapper { void deleteProOrderWorkorderByOrderIds(String[] orderIds); List getBatchInfo(String workorderCode); + + ProOrderWorkorder getWorkOrderByCode(String workorderCode); + + void updateProOrderWorkorderM(ProOrderWorkorder proWorkOrder); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java index 8c7de2c9c..968ef5420 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java @@ -120,4 +120,6 @@ public interface IProOrderWorkorderService { * @param whiteWorkOrder */ void deleteWhiteWorkorderByWorkOrder(List whiteWorkOrder); + + AjaxResult subChangeWorkOrderM(SplitOrderDTO splitOrderDTO); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 3509a1c85..fb0a89814 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -1035,4 +1035,36 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { return workBatch; } + /** + * 提交修改工单设备接口 + * + * @param splitOrderDTO + * @return + */ + @Override + @DS("#header.poolName") + @Transactional + public AjaxResult subChangeWorkOrderM(SplitOrderDTO splitOrderDTO) { + ProOrderWorkorder proWorkOrder = splitOrderDTO.getProOrderWorkorder(); + proWorkOrder.setProdLineCode(JSONArray.toJSONString(splitOrderDTO.getProdLineCodeArray())); + proWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + proWorkOrder.setUpdateTime(DateUtils.getNowDate()); + // 白坯订单变更逻辑 + if (splitOrderDTO.getProOrderWorkorder().getProdType().equals("white")) { + + proOrderWorkorderMapper.updateProOrderWorkorderM(proWorkOrder); + }else{ + proOrderWorkorderMapper.updateProOrderWorkorder(proWorkOrder); + //pro_order_workorder + ProOrderWorkorder topWorkOrder = proOrderWorkorderMapper.getWorkOrderByCode(proWorkOrder.getWorkorderCode()); + while (!"0".equals(topWorkOrder.getParentOrder()) && StringUtils.isNotEmpty(topWorkOrder.getParentOrder())) { + //pro_order_workorder + topWorkOrder = proOrderWorkorderMapper.getWorkOrderByCode(topWorkOrder.getParentOrder()); + proWorkOrder.setWorkorderId(topWorkOrder.getWorkorderId()); + proOrderWorkorderMapper.updateProOrderWorkorderM(proWorkOrder); + } + } + return success("变更成功"); + } + } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 57a1c89b2..15976353f 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -353,6 +353,13 @@ from pro_order_workorder_batch where workorder_id = #{workorderId} and del_flag = '0' + insert into mes_prepare_detail @@ -424,6 +431,15 @@ where workorder_code = #{workorderId} and del_flag = '0' + + update pro_order_workorder + + prod_line_code = #{prodLineCode}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where workorder_id = #{workorderId} + update pro_order_workorder From c0fd87d2d109933239e3c1808d4f9dcd3f5e3b05 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Thu, 23 Nov 2023 15:47:22 +0800 Subject: [PATCH 23/64] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8D=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=80=BB=E8=BE=91=E3=80=81=E4=BF=9D=E5=85=BB=E5=8D=95?= =?UTF-8?q?=E5=A4=87=E4=BB=B6=E5=88=A0=E9=99=A4BUG=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquSpareApplyController.java | 2 +- .../mapper/EquRepairWorkOrderMapper.java | 7 ++ .../op/device/mapper/EquSpareApplyMapper.java | 12 ++++ .../device/service/IEquSpareApplyService.java | 2 +- .../service/impl/EquOrderServiceImpl.java | 6 +- .../impl/EquSpareApplyServiceImpl.java | 65 +++++++++++++++---- .../device/EquRepairWorkOrderMapper.xml | 7 +- .../mapper/device/EquSpareApplyMapper.xml | 12 ++++ 8 files changed, 96 insertions(+), 17 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java index 995dbf72b..8aa3ab8e1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java @@ -94,7 +94,7 @@ public class EquSpareApplyController extends BaseController { @Log(title = "申领记录", businessType = BusinessType.DELETE) @DeleteMapping("/{applyIds}") public AjaxResult remove(@PathVariable String[] applyIds) { - return toAjax(equSpareApplyService.deleteEquSpareApplyByApplyIds(applyIds)); + return equSpareApplyService.deleteEquSpareApplyByApplyIds(applyIds); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index c8eb3aedd..3393c5aa8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -97,4 +97,11 @@ public interface EquRepairWorkOrderMapper { //更新维修工单状态 void updateWorkStatus(String repairCode); + + /** + * 通过维修工单号查询维修单 + * @param workCode + * @return + */ + EquRepairWorkOrder selectEquRepairWorkOrderByWorkCode(String workCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index e6924a080..c4e8580b1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -81,4 +81,16 @@ public interface EquSpareApplyMapper { * @param orderIds */ void delEquSpareApplyByorderIds(String[] orderIds); + + /** + * 逻辑删除申领记录 + * @param applyIds + */ + void delEquSpareApplyByIds(String[] applyIds); + + /** + * 逻辑删除领用单 + * @param id + */ + void delEquSpareApplyByApplyId(String id); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java index 129331686..024cdd41f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java @@ -51,7 +51,7 @@ public interface IEquSpareApplyService { * @param applyIds 需要删除的申领记录主键集合 * @return 结果 */ - public int deleteEquSpareApplyByApplyIds(String[] applyIds); + public AjaxResult deleteEquSpareApplyByApplyIds(String[] applyIds); /** * 删除申领记录信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index b56c698fe..c982cff2c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -371,15 +371,13 @@ public class EquOrderServiceImpl implements IEquOrderService { return error(500,"工单已进行修改!不可删除!"); } if (order.getPlanType().equals("maintenance")) { - List applyList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getWorkCode()); + List applyList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); for (EquSpareApply apply : applyList) { // 返回备件数量 sparePartsLedgerMapper.updateSpareNumAdd(apply); } } } - // 逻辑删除工单 - equOrderMapper.delEquOrderByOrderIds(orderIds); // 逻辑删除获取人员 equOrderPersonMapper.delEquOrderPersonByorderIds(orderIds); // 逻辑删除标准信息 @@ -388,6 +386,8 @@ public class EquOrderServiceImpl implements IEquOrderService { equOrderDetailMapper.delEquOrderDetailByorderIds(orderIds); // 逻辑删除备件信息 equSpareApplyMapper.delEquSpareApplyByorderIds(orderIds); + // 逻辑删除工单 + equOrderMapper.delEquOrderByOrderIds(orderIds); return success(); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java index aa29e13d6..68faf2ebc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java @@ -9,8 +9,11 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.device.domain.EquOrder; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.SparePartsLedger; +import com.op.device.mapper.EquOrderMapper; +import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.mapper.SparePartsLedgerMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +26,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; /** * 申领记录Service业务层处理 @@ -36,10 +40,14 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { private EquSpareApplyMapper equSpareApplyMapper; @Autowired private SparePartsLedgerMapper sparePartsLedgerMapper; + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private EquOrderMapper equOrderMapper; /** * 查询申领记录 - * + * * @param applyId 申领记录主键 * @return 申领记录 */ @@ -51,7 +59,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 查询申领记录列表 - * + * * @param equSpareApply 申领记录 * @return 申领记录 */ @@ -71,7 +79,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 新增申领记录 - * + * * @param equSpareApply 申领记录 * @return 结果 */ @@ -80,7 +88,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { public AjaxResult insertEquSpareApply(EquSpareApply equSpareApply) { try { //equSpareApply.getSpareApplyLists().size() 是在申领备件的时候进行的操作 - if(equSpareApply.getSpareApplyLists().size() >= 1){ + if(equSpareApply.getSpareApplyLists().size() >= 1){ List list = equSpareApply.getSpareApplyLists(); for(EquSpareApply applyList:list){ applyList.setApplyId(IdUtils.fastSimpleUUID()); @@ -113,7 +121,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { equSpareApply.setCreateBy(SecurityUtils.getUsername()); equSpareApplyMapper.insertEquSpareApply(equSpareApply); } - return AjaxResult.success("新增申领记录成功!"); + return success("新增申领记录成功!"); } catch (Exception e) { return error(); } @@ -121,7 +129,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 修改申领记录 - * + * * @param equSpareApply 申领记录 * @return 结果 */ @@ -134,20 +142,55 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { } /** - * 批量删除申领记录 - * + * TODO 批量删除申领记录 + * * @param applyIds 需要删除的申领记录主键 * @return 结果 */ @Override @DS("#header.poolName") - public int deleteEquSpareApplyByApplyIds(String[] applyIds) { - return equSpareApplyMapper.deleteEquSpareApplyByApplyIds(applyIds); + public AjaxResult deleteEquSpareApplyByApplyIds(String[] applyIds) { + boolean check = true; + // 校验 + for (String id : applyIds) { + EquSpareApply apply = equSpareApplyMapper.selectEquSpareApplyByApplyId(id); + if (apply.getWorkCode() != null) { + if (!apply.getWorkCode().isEmpty()) { + EquRepairWorkOrder workOrder = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkCode(apply.getWorkCode()); + if (workOrder != null) { + if (workOrder.getWorkStatus().equals("1")) { + check = false; + } + }else { + return error(500,"未查询到对应维修工单信息!删除失败!"); + } + EquOrder order = equOrderMapper.selectEquOrderByOrderCode(apply.getWorkCode()); + if (order != null) { + if (order.getOrderStatus().equals("1")){ + check = false; + } + }else { + return error(500,"未查询到对应保养工单信息!删除失败!"); + } + } + } + + if (check) { + // 回填数据 + sparePartsLedgerMapper.updateSpareNumAdd(apply); + // 逻辑删除领用单 + equSpareApplyMapper.delEquSpareApplyByApplyId(id); + }else { + return error(500,"关联工单状态已完成,不可删除!"); + } + + } + return success(); } /** * 删除申领记录信息 - * + * * @param applyId 申领记录主键 * @return 结果 */ diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml index 828867245..6ca06eb60 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml @@ -447,7 +447,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where source_id = #{sourceId} - + + + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) VALUES diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml index b7b6f4dd2..12dcaf844 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml @@ -176,6 +176,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + update equ_spare_apply set del_flag = '1' + where apply_id in + + #{id} + + + + + update equ_spare_apply set del_flag = '1' where apply_id = #{id} + + + insert into mes_prepare_detail @@ -376,6 +384,90 @@ ) + + insert into mes_prepare + + prepare_id, + workorder_code, + workorder_name, + parent_order, + order_id, + order_code, + product_id, + product_code, + prod_type, + product_name, + product_spc, + wet_detail_plan_id, + product_date, + shift_id, + ancestors, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + material_code, + material_name, + material_spc, + unit, + quantity, + + + #{prepareId}, + #{workorderCode}, + #{workorderName}, + #{parentOrder}, + #{orderId}, + #{orderCode}, + #{productId}, + #{productCode}, + #{prodType}, + #{productName}, + #{productSpc}, + #{wetDetailPlanId}, + #{productDate}, + #{shiftId}, + #{ancestors}, + #{status}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{materialCode}, + #{materialName}, + #{materialSpc}, + #{unit}, + #{quantity}, + + + + INSERT INTO mes_prepare_detail ( + record_id,prepare_id,material_code,material_name,unit, + quantity,create_by,create_time,factory_code,status, + locator,need_date,recoil,fund_quanlity,buy_flag + )VALUES + + ( + #{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit}, + #{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status}, + #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag} + ) + + + update pro_order_workorder @@ -415,12 +507,12 @@ where workorder_id = #{workorderId} - + update pro_order_workorder set status = 'w1' - where workorder_code in - - #{workorderCode} + where workorder_id in + + #{workorderId} and del_flag = '0' @@ -440,6 +532,11 @@ where workorder_id = #{workorderId} + + update pro_order_workorder + set status = 'w1' + where workorder_id = #{workorderId} + update pro_order_workorder From 3d1e9452b67e2cf3dad44d4d7fb43cd16820fbca Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Fri, 24 Nov 2023 14:48:45 +0800 Subject: [PATCH 28/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=9B=E5=BB=BASAP?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E5=90=8E=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=90=E8=AE=A2=E5=8D=95=E4=BF=A1=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/controller/SapController.java | 3 +-- .../com/op/sap/service/SapOrderService.java | 4 ++-- .../op/sap/service/impl/SapItemSyncImpl.java | 2 ++ .../sap/service/impl/SapOrderServiceImpl.java | 23 +++++++++++++------ 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 802bb59ae..336a15d77 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -2,7 +2,6 @@ package com.op.sap.controller; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; -import com.op.common.core.utils.DateUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; @@ -202,7 +201,7 @@ public class SapController extends BaseController { @PostMapping("/sapCreateOrder") @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) - public R> SapCreateOrder(@RequestBody List sapCreateOrderList){ + public R>> SapCreateOrder(@RequestBody List sapCreateOrderList){ return sapOrderService.SapCreateOrder(sapCreateOrderList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index 8ace5efb4..adf895b18 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -1,7 +1,6 @@ package com.op.sap.service; import com.op.common.core.domain.R; -import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapRFW; @@ -9,6 +8,7 @@ import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import java.util.List; +import java.util.Map; /** * 杨万里 2023年8月 @@ -27,7 +27,7 @@ public interface SapOrderService { * @param sapCreateOrderList * @return */ - R> SapCreateOrder(List sapCreateOrderList); + R>> SapCreateOrder(List sapCreateOrderList); /** * 订单关闭 diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index a501a668e..cad097c4b 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -50,6 +50,7 @@ public class SapItemSyncImpl implements SapItemSyncService { JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMMR_MES_MAT_GET"); + if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } @@ -186,6 +187,7 @@ public class SapItemSyncImpl implements SapItemSyncService { baseProduct.setUpdateBy(SecurityUtils.getUsername()); sapBaseProductList.add(baseProduct); } + //this.importProducts(sapBaseProductList) return R.ok(this.importProducts(sapBaseProductList)); }catch (Exception e){ return R.fail(e.getMessage()); diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index d466164a5..3c9803ba5 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -18,7 +18,9 @@ import com.sap.conn.jco.*; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @@ -141,7 +143,7 @@ public class SapOrderServiceImpl implements SapOrderService { } @Override - public R> SapCreateOrder(List sapCreateOrderList) { + public R>> SapCreateOrder(List sapCreateOrderList) { String L_MSG=null; try { //获取连接 @@ -154,9 +156,9 @@ public class SapOrderServiceImpl implements SapOrderService { // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); - List LV_ORDER_NUM_List=new ArrayList<>(); if (sapCreateOrderList!=null && sapCreateOrderList.size()>0){ + List> LV_ORDER_NUM_List=new ArrayList<>(); for (SapCreateOrder sapCreateOrder:sapCreateOrderList){ jCoParameterList.setValue("P_WERKS",sapCreateOrder.getWerks()); jCoParameterList.setValue("P_AUFPAR",sapCreateOrder.getAufpar()); @@ -169,17 +171,24 @@ public class SapOrderServiceImpl implements SapOrderService { System.out.println(J); L_MSG= func.getExportParameterList().getString("L_MSG"); String LV_ORDER_NUMBER= func.getExportParameterList().getString("LV_ORDER_NUMBER"); - if (!StringUtils.isEmpty(LV_ORDER_NUMBER)){ - LV_ORDER_NUM_List.add(LV_ORDER_NUMBER); - }else { - return R.fail(L_MSG); + + JCoTable LT_ZGD=func.getTableParameterList().getTable("LT_ZGD"); + System.out.println(LT_ZGD); + //DynamicDataSourceContextHolder.push("ds_1000");//controller已经完成切换 + for (int i = 0; i Date: Fri, 24 Nov 2023 15:19:04 +0800 Subject: [PATCH 29/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=92=8CSAP=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E7=9A=84=E6=96=B9=E5=BC=8F=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=B7=A5=E5=8E=82=E7=B1=BB=EF=BC=8C=E9=81=BF=E5=85=8D=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E8=BF=9E=E6=8E=A5SAP=E7=B3=BB=E7=BB=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/config/DestinationManager.java | 1 - .../sap/service/impl/SapBomServiceImpl.java | 7 ++++++- .../op/sap/service/impl/SapItemSyncImpl.java | 9 +++++++-- .../SapMaterialPreparationServiceImpl.java | 7 ++++++- .../sap/service/impl/SapOrderServiceImpl.java | 13 +++++++++---- .../service/impl/SapRouterServiceImpl.java | 7 ++++++- .../impl/SapWorkCenterServiceImpl.java | 10 +++++++--- .../java/com/op/sap/util/SAPConnUtils.java | 19 ++++++++++++++----- 8 files changed, 55 insertions(+), 18 deletions(-) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java b/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java index 64c2614cb..a3b98f669 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java @@ -67,7 +67,6 @@ public class DestinationManager { properties.store(fos, "for test only!"); } catch (Exception e) { // TODO: handle exception -// System.out.println("Create Data file fault,error msg:" + e.toString()); throw new RuntimeException("无法创建目标文件" + cfg.getName()); } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java index 79bff835a..08a1e329a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java @@ -23,12 +23,14 @@ import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +@Component @Service public class SapBomServiceImpl implements SapBomService { private static final String END_DATE="99991231"; @@ -41,13 +43,16 @@ public class SapBomServiceImpl implements SapBomService { @Autowired private SqlSessionFactory sqlSessionFactory; + @Autowired + private JCoDestination dest; + @Override public R bomSync(SapBomQuery sapBomQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + //JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_BOM"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index cad097c4b..a0c067332 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -20,6 +20,7 @@ import com.sap.conn.jco.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import javax.validation.Validator; @@ -28,6 +29,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +@Component @Service public class SapItemSyncImpl implements SapItemSyncService { @@ -41,13 +43,16 @@ public class SapItemSyncImpl implements SapItemSyncService { @Autowired protected Validator validator; + @Autowired + private JCoDestination dest; + private static final Logger log = LoggerFactory.getLogger(SapItemSyncImpl.class); @Override public R itemSync(SapItemQuery sapItemQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMMR_MES_MAT_GET"); @@ -200,7 +205,7 @@ public class SapItemSyncImpl implements SapItemSyncService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE"); // 配置传入参数 diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java index b0b1d752e..4c4a80dba 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java @@ -9,17 +9,22 @@ import com.op.sap.util.SAPConnUtils; import com.op.system.api.domain.sap.SapMaterialPreparation; import com.sap.conn.jco.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +@Component @Service public class SapMaterialPreparationServiceImpl implements SapMaterialPreparationService { @Autowired SapMaterialPreparationMapper sapMaterialPreparationMapper; + @Autowired + private JCoDestination dest; + @Override public R> MaterialPreparation(String shopOrder) { // 连接 @@ -27,7 +32,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_MATERIAL_PREPARATION"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 3c9803ba5..561d8c53f 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -15,6 +15,8 @@ import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import com.sap.conn.jco.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,10 +25,13 @@ import java.util.List; import java.util.Map; +@Component @Service public class SapOrderServiceImpl implements SapOrderService { private static final String END_DATE="99991231"; + @Autowired + private JCoDestination dest; @Override public R> shopOrderSync(SapShopOrderQuery sapShopOrderQuery) { @@ -34,7 +39,7 @@ public class SapOrderServiceImpl implements SapOrderService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + //JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRO_TO"); if (func == null) { @@ -147,7 +152,7 @@ public class SapOrderServiceImpl implements SapOrderService { String L_MSG=null; try { //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CREATE"); if (func == null) { @@ -200,7 +205,7 @@ public class SapOrderServiceImpl implements SapOrderService { String L_MSG=null; try { //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CLOSE"); if (func == null) { @@ -232,7 +237,7 @@ public class SapOrderServiceImpl implements SapOrderService { String MESSAGE=null; try { //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORDCONF_CREATE_TT"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java index f25595113..494e865fc 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java @@ -14,6 +14,7 @@ import com.op.sap.util.SAPConnUtils; import com.op.system.api.domain.sap.*; import com.sap.conn.jco.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import javax.validation.Validator; import java.rmi.ServerException; @@ -23,6 +24,7 @@ import java.util.List; import java.util.TreeSet; import java.util.stream.Collectors; +@Component @Service public class SapRouterServiceImpl implements SapRouterService { private static final String END_DATE="99991231"; @@ -41,6 +43,9 @@ public class SapRouterServiceImpl implements SapRouterService { @Autowired protected Validator validator; + @Autowired + private JCoDestination dest; + @Override public R sapRouterSync(SapRouterQuery sapRouterQuery) { int successNum = 0; @@ -50,7 +55,7 @@ public class SapRouterServiceImpl implements SapRouterService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_ROUTING"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java index 69784f2a1..c4e07dcd6 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java @@ -14,6 +14,7 @@ import com.op.system.api.domain.sap.SapSupplier; import com.op.system.api.domain.sap.SapWorkCenter; import com.sap.conn.jco.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -22,19 +23,22 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +@Component @Service public class SapWorkCenterServiceImpl implements SapWorkCenterService { private static final String END_DATE="99991231"; @Autowired private SapBomMapper sapBomMapper; + @Autowired + private JCoDestination dest; @Override public R sapWorkCenterSync(SapWorkCenterQuery sapWorkCenterQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_ARBPL"); if (func == null) { @@ -111,7 +115,7 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_LFB1"); if (func == null) { @@ -188,7 +192,7 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_KNA1"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java index 2d704d44e..d187ff823 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java @@ -4,20 +4,29 @@ package com.op.sap.util; import com.sap.conn.jco.JCoDestination; import com.sap.conn.jco.JCoDestinationManager; import com.sap.conn.jco.JCoException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; +@Component public class SAPConnUtils { + + protected Logger logger = LoggerFactory.getLogger(getClass()); private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL"; - public static JCoDestination connect() { + + @Bean + public JCoDestination connect() { JCoDestination destination = null; try { destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); -// System.out.println(destination.getAttributes()); + if (destination!=null){ + logger.info("连接SAP成功"); + } } catch (JCoException e) { - // TODO: handle exception + logger.info("连接SAP失败,错误: " + e.toString()); throw new RuntimeException("连接SAP失败,错误: " + e.toString()); -// System.out.println("连接SAP失败,错误: " + e.toString()); } return destination; } - } From 8659dd8f11c1a6e9500896ac59f93c312d3cde97 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 24 Nov 2023 17:10:19 +0800 Subject: [PATCH 30/64] =?UTF-8?q?=E5=A7=94=E5=A4=96=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceInterfaceController.java | 17 ++++++++++++ .../op/device/domain/dto/InterfaceDTO.java | 5 ++++ .../device/domain/vo/IRepairWorkOrderVO.java | 6 +++++ .../com/op/device/mapper/EquOrderMapper.java | 6 +++++ .../service/IDeviceInterfaceService.java | 8 ++++++ .../impl/DeviceInterfaceServiceImpl.java | 27 +++++++++++++++++++ .../service/impl/DeviceTaskServiceImpl.java | 18 ++++++------- .../impl/EquOutsourceWorkServiceImpl.java | 6 +++++ .../impl/EquSpareApplyServiceImpl.java | 2 +- .../mapper/device/EquOrderEquSpareMapper.xml | 1 + .../mapper/device/EquOrderMapper.xml | 8 ++++++ 11 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index 2301d4b44..ae5352175 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -1,5 +1,9 @@ package com.op.device.controller; +import com.op.common.core.web.domain.AjaxResult; +import com.op.device.service.IDeviceInterfaceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,4 +17,17 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/deviceInterface") public class DeviceInterfaceController { + @Autowired + private IDeviceInterfaceService deviceInterfaceService; + + + /** + * 获取维修工单 + * @return + */ + @GetMapping("/getRepairWorkOrder") + public AjaxResult getRepairWorkOrder() { + return deviceInterfaceService.getRepairWorkOrder(); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java new file mode 100644 index 000000000..c04ad3ffa --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java @@ -0,0 +1,5 @@ +package com.op.device.domain.dto; + +// 看板传参实体 +public class InterfaceDTO { +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java new file mode 100644 index 000000000..1151ebc66 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java @@ -0,0 +1,6 @@ +package com.op.device.domain.vo; + +// 看板维修工单返回VO +public class IRepairWorkOrderVO { + +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 23a437fed..516042063 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -161,4 +161,10 @@ public interface EquOrderMapper { * @param orderIds */ void delEquOrderByOrderIds(String[] orderIds); + + /** + * 通过保养单Code修改保养单状态为已完成 + * @param repairCode + */ + void updateEquOrderStatusComplete(String repairCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index 5bf97ee92..e8d229182 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -1,7 +1,15 @@ package com.op.device.service; +import com.op.common.core.web.domain.AjaxResult; + /** * 设备看板接口 */ public interface IDeviceInterfaceService { + + /** + * 获取维修工单 + * @return + */ + AjaxResult getRepairWorkOrder(); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 4806da53c..1fe6f3c88 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -1,11 +1,38 @@ package com.op.device.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + +import static com.op.common.core.web.domain.AjaxResult.success; + /** * 看板接口实现类 */ @Service public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { + + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + + /** + * 获取维修工单 + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getRepairWorkOrder() { + // 获取待维修的工单 + EquRepairWorkOrder workTemp = new EquRepairWorkOrder(); + workTemp.setWorkStatus("0"); + List workOrderList = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(workTemp); +// EquRepairWorkOrder workOrder = equRepairWorkOrderMapper.selectWaitingWorkOrder(); + return success(workOrderList); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index c8777fcbf..d224d32fb 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -160,11 +160,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 - logger.info("++++++++++++" + dateSource.get("poolName") + "++++保养开始++++++++++"); - Runnable run = () -> createMaintenancePlanFunc(dateSource.get("poolName")); - executorService.execute(run); - } + logger.info("++++++++++++" + dateSource.get("poolName") + "++++保养开始++++++++++"); + Runnable run = () -> createMaintenancePlanFunc(dateSource.get("poolName")); + executorService.execute(run); }); } catch (Exception e) { logger.error("service == dataClearTask == exception", e); @@ -298,10 +296,10 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { sparePartsLedgerMapper.updateSpareNumReduce(apply); } - if(!CollectionUtils.isEmpty(spares)){ - sce = equOrderEquSpareMapper.insertEquOrderEquSpares(spares); - System.out.println(plan.getPlanCode()+"========equ_spare_apply:"+sce); - } +// if(!CollectionUtils.isEmpty(spares)){ +// sce = equOrderEquSpareMapper.insertEquOrderEquSpares(spares); +// System.out.println(plan.getPlanCode()+"========equ_spare_apply:"+sce); +// } /**equ_plan_detail->equ_order_detail*******************************************************/ @@ -348,12 +346,12 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); BeanUtils.copyProperties(plan,equOutsourceWork); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); - equOutsourceWork.setOrderCode(orderCode); equOutsourceWork.setWorkCode(order.getOutsourceCode()); equOutsourceWork.setWorkType("1");//1委外保养0委外维修 equOutsourceWork.setCreateBy(createBy); equOutsourceWork.setCreateTime(nowtime); equOutsourceWork.setDelFlag("0"); + equOutsourceWork.setRepairCode(orderCode); sce = equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); System.out.println(plan.getPlanCode() + "========equ_outsource_work:" + sce); }else { diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java index e07558949..1bd1fcec6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java @@ -7,6 +7,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.mapper.EquOrderMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,6 +33,9 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Autowired private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private EquOrderMapper equOrderMapper; + /** * 查询委外工单 @@ -95,6 +99,8 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { if(equOutsourceWork.getWorkStatus().equals("1")){ //更新维修工单状态 equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode()); + //更新保养工单状态 + equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode()); } equOutsourceWork.setUpdateTime(DateUtils.getNowDate()); equOutsourceWork.setUpdateBy(SecurityUtils.getUsername()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java index c695898a7..c698a0c02 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java @@ -142,7 +142,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { } /** - * TODO 批量删除申领记录 + * 批量删除申领记录 * * @param applyIds 需要删除的申领记录主键 * @return 结果 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml index 25c42457d..b07e84e40 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml @@ -105,6 +105,7 @@ #{updateTime}, + insert into equ_order_equ_spare( id, order_code, material_code, material_desc, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 770cf7a85..bede34e5a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -350,4 +350,12 @@ where order_id = #{orderId} + + update equ_order + set + order_status = '1' + where order_code = #{repairCode} + and del_flag = '0' + + From 685bdc34bf445c3ac0e233a493769702f859a212 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 24 Nov 2023 17:25:12 +0800 Subject: [PATCH 31/64] =?UTF-8?q?=E5=A7=94=E5=A4=96=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1-=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8D=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/device/service/impl/DeviceTaskServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index d224d32fb..34040a1af 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -276,7 +276,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { for (EquPlanEquSpare spare : spares) { EquSpareApply apply = new EquSpareApply(); apply.setApplyId(IdUtils.fastSimpleUUID()); - apply.setApplyCode("A"+orderCode+String.format("%03d",applySerialNum)); + apply.setApplyCode("A"+orderCode+String.format("%02d",applySerialNum)); applySerialNum++; apply.setSpareCode(spare.getMaterialCode()); apply.setSpareName(spare.getMaterialDesc()); From 71c9cb591d74fcab01163965e288158585f1d361 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 27 Nov 2023 08:56:02 +0800 Subject: [PATCH 32/64] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=AE=BE=E5=A4=87+=E8=AE=BE=E5=A4=87=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DevicePDAController.java | 16 +- .../com/op/device/domain/EquSpareApply.java | 5 +- .../com/op/device/mapper/EquOrderMapper.java | 3 - .../com/op/device/mapper/EquipmentMapper.java | 2 +- .../op/device/service/IDevicePDAService.java | 5 + .../service/impl/DevicePDAServiceImpl.java | 33 +- .../impl/EquSpareApplyServiceImpl.java | 31 +- .../mapper/device/EquOutsourceWorkMapper.xml | 3 +- .../mapper/device/EquRepairOrderMapper.xml | 2 +- .../device/EquRepairWorkOrderMapper.xml | 2 +- .../mapper/device/EquSpareApplyMapper.xml | 1 - op-modules/op-wms/pom.xml | 6 + .../controller/BaseEquipmentController.java | 109 +++- .../java/com/op/wms/domain/BaseEquipment.java | 249 +++++++- .../com/op/wms/domain/EquSpareEquipment.java | 169 ++++++ .../op/wms/domain/WmsSparePartsLedger.java | 569 ++++++++++++++++++ .../op/wms/mapper/BaseEquipmentMapper.java | 34 ++ .../op/wms/service/IBaseEquipmentService.java | 13 + .../impl/BaseEquipmentServiceImpl.java | 328 +++++++++- .../mapper/wms/BaseEquipmentMapper.xml | 295 ++++++++- .../mapper/wms/EquSpareEquipmentMapper.xml | 118 ++++ 21 files changed, 1957 insertions(+), 36 deletions(-) create mode 100644 op-modules/op-wms/src/main/java/com/op/wms/domain/EquSpareEquipment.java create mode 100644 op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSparePartsLedger.java create mode 100644 op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index cfdba65d7..8a2cb991e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -1,6 +1,8 @@ package com.op.device.controller; +import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; import com.op.common.security.annotation.RequiresPermissions; import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; @@ -9,6 +11,8 @@ import com.op.device.service.IEquRepairOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * PDAController * @@ -17,7 +21,7 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/devicePDA") -public class DevicePDAController { +public class DevicePDAController extends BaseController { @Autowired private IDevicePDAService devicePDAService; @@ -119,6 +123,16 @@ public class DevicePDAController { return devicePDAService.selectEquEquipmentByEquEquipmentId(equipmentId); } + /** + * 查询设备列表 + */ + @GetMapping("/getEquipmentList") + public TableDataInfo getEquipmentList(EquEquipment equEquipment) { + startPage(); + List list = devicePDAService.selectEquEquipmentList(equEquipment); + return getDataTable(list); + } + /** * 获取维修详情 */ diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java index 76bba57db..30e6caed4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java @@ -23,7 +23,7 @@ public class EquSpareApply extends BaseEntity { private String applyId; /** 出库单号 */ - @Excel(name = "出库单号") + @Excel(name = "单号") private String applyCode; /** 备品备件编码 */ @@ -159,13 +159,14 @@ public class EquSpareApply extends BaseEntity { public String getApplyId() { return applyId; } + public void setApplyCode(String applyCode) { this.applyCode = applyCode; } - public String getApplyCode() { return applyCode; } + public void setSpareCode(String spareCode) { this.spareCode = spareCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 516042063..123d0396b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -4,11 +4,8 @@ import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.device.domain.EquOrder; -import com.op.device.domain.EquOrderStandard; -import com.op.device.domain.EquPlan; import com.op.device.domain.dto.PDADTO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; /** * 计划工单Mapper接口 diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java index 1447f0994..be07d6743 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java @@ -6,7 +6,7 @@ public interface EquipmentMapper { /** * 查询设备管理 * - * @param equipmentId 设备管理主键 + * @param equipmentCode 设备管理主键 * @return 设备管理 */ public Equipment selectEquipmentByEquipmentCode(String equipmentCode); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index f559fe145..79af434c2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -4,6 +4,8 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; +import java.util.List; + /** * PDAService * @@ -103,4 +105,7 @@ public interface IDevicePDAService { * @return */ AjaxResult startMaintenanceTask(PDADTO pdadto); + + //查询设备列表 + List selectEquEquipmentList(EquEquipment equEquipment); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index b475a3626..0f385a171 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -63,6 +63,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquFaultTypeMapper equFaultTypeMapper; + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; + /** * 获取今日巡检任务工单list-状态不为已完成 @@ -653,15 +656,17 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equOrderMapper.updateEquOrder(checkList); } - //新建申领单 缺少code + //新建申领单 List equSpareApplies = equRepairWorkOrder.getApplyList(); for(EquSpareApply equSpareApply:equSpareApplies){ //生成领料单code + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); - equSpareApply.setApplyCode("A" + code ); + //十五位单号 + equSpareApply.setApplyCode("AW" + code + serialNum); equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); //备品备件规格型号!!!!! - //equSpareApply.setSpareModel(equSpareApply.getS); +// equSpareApply.setSpareModel(equSpareApply.getS); equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); equSpareApply.setApplyPeople(SecurityUtils.getUsername()); @@ -675,8 +680,13 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equSpareApplyMapper.insertEquSpareApply(equSpareApply); -// SparePartsLedger sparePartsLedger = new SparePartsLedger(); -// sparePartsLedger. + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); } //图片 @@ -734,4 +744,17 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // // return treeAll; // } + + /** + * 查询设备管理列表 + * + * @param equEquipment 设备管理 + * @return 设备管理 + */ + @Override + @DS("#header.poolName") + public List selectEquEquipmentList(EquEquipment equEquipment) { + return equEquipmentMapper.selectEquEquipmentList(equEquipment); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java index c698a0c02..f9a85cd96 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java @@ -87,11 +87,16 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { @DS("#header.poolName") public AjaxResult insertEquSpareApply(EquSpareApply equSpareApply) { try { - //equSpareApply.getSpareApplyLists().size() 是在申领备件的时候进行的操作 + //equSpareApply.getSpareApplyLists().size() 是在维修申领备件的时候进行的操作 批量新增 if(equSpareApply.getSpareApplyLists().size() >= 1){ List list = equSpareApply.getSpareApplyLists(); for(EquSpareApply applyList:list){ applyList.setApplyId(IdUtils.fastSimpleUUID()); + //生成领料单code //申领单号 + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + applyList.getWorkCode().substring(2); + //申领单号 + equSpareApply.setApplyCode("AW" + code + serialNum); //领用时间 applyList.setApplyTime(DateUtils.getNowDate()); //申领人 @@ -100,6 +105,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; applyList.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + //创建人、创建时间 applyList.setCreateTime(DateUtils.getNowDate()); applyList.setCreateBy(SecurityUtils.getUsername()); equSpareApplyMapper.insertEquSpareApply(applyList); @@ -113,13 +119,36 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { } }else{ equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + if(equSpareApply.getWorkCode().length() == 12){ + //生成领料单code 十五位单号 + equSpareApply.setApplyCode("A" + equSpareApply.getWorkCode() + serialNum); + }else if(equSpareApply.getWorkCode().length() > 12){ + equSpareApply.setApplyCode("AW" + equSpareApply.getWorkCode().substring(2) + serialNum); + }else{ + //普通申领单 + equSpareApply.setApplyCode("AN" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equSpareApply.getSpareUseEquipment() + serialNum); + } + //领用时间 + equSpareApply.setApplyTime(DateUtils.getNowDate()); + //申领人 + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); //工厂号 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + //创建人、创建时间 equSpareApply.setCreateTime(DateUtils.getNowDate()); equSpareApply.setCreateBy(SecurityUtils.getUsername()); equSpareApplyMapper.insertEquSpareApply(equSpareApply); + + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); } return success("新增申领记录成功!"); } catch (Exception e) { diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml index 405463bdd..839ab7f0a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml @@ -199,10 +199,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index c79ff78ad..e389e934a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -261,11 +261,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from equ_repair_order where order_code = #{repairCode} and del_flag = '0' + SELECT COUNT(work_id)+1 AS serialNum FROM equ_repair_work_order - where del_flag = '0' @@ -63,6 +187,20 @@ and hourly_unit_price = #{hourlyUnitPrice} and plc_ip = #{plcIp} and plc_port = #{plcPort} + and equipment_head = #{equipmentHead} + and equipment_barcode = #{equipmentBarcode} + and equipment_barcode_image = #{equipmentBarcodeImage} + and manufacturer = #{manufacturer} + and supplier = #{supplier} + and use_life = #{useLife} + and buy_time = #{buyTime} + and asset_original_value = #{assetOriginalValue} + and net_asset_value = #{netAssetValue} + and asset_head = #{assetHead} + and fixed_asset_code = #{fixedAssetCode} + and department = #{department} + and sap_asset = #{sapAsset} + and factory_code = #{factoryCode} and del_flag ='0' @@ -102,6 +240,20 @@ hourly_unit_price, plc_ip, plc_port, + equipment_barcode, + equipment_barcode_image, + manufacturer, + supplier, + use_life, + buy_time, + asset_original_value, + net_asset_value, + asset_head, + fixed_asset_code, + department, + sap_asset, + equipment_head, + factory_code, #{equipmentCode}, @@ -130,6 +282,20 @@ #{hourlyUnitPrice}, #{plcIp}, #{plcPort}, + #{equipmentBarcode}, + #{equipmentBarcodeImage}, + #{manufacturer}, + #{supplier}, + #{useLife}, + #{buyTime}, + #{assetOriginalValue}, + #{netAssetValue}, + #{assetHead}, + #{fixedAssetCode}, + #{department}, + #{sapAsset}, + #{equipmentHead}, + #{factoryCode}, @@ -162,6 +328,20 @@ hourly_unit_price = #{hourlyUnitPrice}, plc_ip = #{plcIp}, plc_port = #{plcPort}, + equipment_barcode = #{equipmentBarcode}, + equipment_barcode_image = #{equipmentBarcodeImage}, + manufacturer = #{manufacturer}, + supplier = #{supplier}, + use_life = #{useLife}, + buy_time = #{buyTime}, + asset_original_value = #{assetOriginalValue}, + net_asset_value = #{netAssetValue}, + asset_head = #{assetHead}, + fixed_asset_code = #{fixedAssetCode}, + department = #{department}, + sap_asset = #{sapAsset}, + equipment_head = #{equipmentHead}, + factory_code = #{factoryCode}, where equipment_id = #{equipmentId} @@ -223,4 +403,115 @@ group by equipment_type_code,equipment_type_name + + + + + + + + insert into equ_spare_equipment + + id, + spare_code, + spare_type, + spare_name, + equipment_name, + equipment_code, + del_flag, + create_by, + create_time, + update_by, + update_time, + factory_code, + + + #{id}, + #{spareCode}, + #{spareType}, + #{spareName}, + #{equipmentName}, + #{equipmentCode}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + + + + + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) + VALUES + + ( + #{baseFile.fileId}, + #{baseFile.fileName}, + #{baseFile.fileAddress}, + #{baseFile.sourceId}, + #{baseFile.remark}, + #{baseFile.createBy}, + #{baseFile.createTime}, + #{baseFile.imageType} + ) + + + + + + + + + + + delete from base_file where source_id = #{sourceId} + + + + delete from equ_spare_equipment where equipment_code = #{equipmentCode} + + + + + + \ No newline at end of file diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml new file mode 100644 index 000000000..af34ca4c4 --- /dev/null +++ b/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, spare_code, spare_type, spare_name, equipment_name, equipment_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_spare_equipment + + + + + + + + insert into equ_spare_equipment + + id, + spare_code, + spare_type, + spare_name, + equipment_name, + equipment_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + factory_code, + + + #{id}, + #{spareCode}, + #{spareType}, + #{spareName}, + #{equipmentName}, + #{equipmentCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + + + + + update equ_spare_equipment + + spare_code = #{spareCode}, + spare_type = #{spareType}, + spare_name = #{spareName}, + equipment_name = #{equipmentName}, + equipment_code = #{equipmentCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + + where id = #{id} + + + + delete from equ_spare_equipment where id = #{id} + + + + delete from equ_spare_equipment where id in + + #{id} + + + \ No newline at end of file From 412b6445e490265813e8efd191e2b282363b8b6f Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 27 Nov 2023 09:33:34 +0800 Subject: [PATCH 33/64] =?UTF-8?q?update=20-=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=83=BD=E6=BA=90=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../energy/base/config/DynamicDatasource.java | 51 + .../controller/BaseBuildInfoController.java | 101 ++ .../BaseBusinessTypeController.java | 100 ++ .../BaseCollectCommunicateController.java | 91 ++ .../BaseCollectDeviceInfoController.java | 91 ++ .../BaseDnbThresholdController.java | 100 ++ .../controller/BaseEnergyTypeController.java | 97 ++ .../controller/BaseLineLossController.java | 91 ++ .../controller/BaseLineMonitorController.java | 96 ++ .../controller/BaseMeterInfoController.java | 111 ++ .../BaseMonitorInfo1Controller.java | 154 ++ .../controller/BaseMonitorInfoController.java | 220 +++ .../BasePublicManageController.java | 155 ++ .../controller/BasePublicUserController.java | 154 ++ .../BasePublicUserRecordController.java | 98 ++ .../BaseSubentryTypeController.java | 107 ++ .../BaseTypeRelationController.java | 111 ++ .../BaseWaterThresholdController.java | 91 ++ .../CbsMonitorReportController.java | 98 ++ .../base/controller/SysConfigController.java | 128 ++ .../op/energy/base/domain/BaseBuildInfo.java | 160 ++ .../energy/base/domain/BaseBusinessType.java | 148 ++ .../base/domain/BaseCollectCommunicate.java | 242 +++ .../base/domain/BaseCollectDeviceInfo.java | 213 +++ .../energy/base/domain/BaseDnbThreshold.java | 316 ++++ .../op/energy/base/domain/BaseEnergyType.java | 127 ++ .../op/energy/base/domain/BaseLineLoss.java | 167 ++ .../energy/base/domain/BaseLineMonitor.java | 295 ++++ .../op/energy/base/domain/BaseMeterInfo.java | 267 ++++ .../energy/base/domain/BaseMonitorInfo.java | 461 ++++++ .../energy/base/domain/BaseMonitorPublic.java | 61 + .../energy/base/domain/BasePublicManage.java | 166 ++ .../op/energy/base/domain/BasePublicUser.java | 176 +++ .../base/domain/BasePublicUserRecord.java | 252 +++ .../energy/base/domain/BaseSubentryType.java | 146 ++ .../com/op/energy/base/domain/BaseTree.java | 117 ++ .../energy/base/domain/BaseTypeRelation.java | 176 +++ .../base/domain/BaseWaterThreshold.java | 188 +++ .../energy/base/domain/CbsMonitorReport.java | 280 ++++ .../com/op/energy/base/domain/SysConfig.java | 95 ++ .../op/energy/base/domain/SysDatasource.java | 168 ++ .../java/com/op/energy/base/domain/Ztree.java | 104 ++ .../base/domain/vo/CbsMonitorReportVo.java | 151 ++ .../com/op/energy/base/domain/vo/MetaVo.java | 91 ++ .../op/energy/base/domain/vo/MonitorVo.java | 78 + .../energy/base/domain/vo/PublicManageVo.java | 56 + .../op/energy/base/domain/vo/RouterVo.java | 130 ++ .../op/energy/base/domain/vo/TreeSelect.java | 82 + .../base/mapper/BaseBuildInfoMapper.java | 65 + .../base/mapper/BaseBusinessTypeMapper.java | 65 + .../mapper/BaseCollectCommunicateMapper.java | 62 + .../mapper/BaseCollectDeviceInfoMapper.java | 62 + .../base/mapper/BaseDnbThresholdMapper.java | 64 + .../base/mapper/BaseEnergyTypeMapper.java | 62 + .../base/mapper/BaseLineLossMapper.java | 72 + .../base/mapper/BaseLineMonitorMapper.java | 68 + .../base/mapper/BaseMeterInfoMapper.java | 62 + .../base/mapper/BaseMonitorInfo1Mapper.java | 79 + .../base/mapper/BaseMonitorInfoMapper.java | 84 + .../base/mapper/BaseMonitorPublicMapper.java | 67 + .../base/mapper/BasePublicManageMapper.java | 64 + .../base/mapper/BasePublicUserMapper.java | 76 + .../mapper/BasePublicUserRecordMapper.java | 62 + .../base/mapper/BaseSubentryTypeMapper.java | 68 + .../base/mapper/BaseTypeRelationMapper.java | 74 + .../base/mapper/BaseWaterThresholdMapper.java | 62 + .../base/mapper/CbsMonitorReportMapper.java | 81 + .../energy/base/mapper/SysConfigMapper.java | 80 + .../base/mapper/SysDatasourceMapper.java | 67 + .../base/service/IBaseBuildInfoService.java | 72 + .../service/IBaseBusinessTypeService.java | 71 + .../IBaseCollectCommunicateService.java | 61 + .../IBaseCollectDeviceInfoService.java | 61 + .../service/IBaseDnbThresholdService.java | 65 + .../base/service/IBaseEnergyTypeService.java | 61 + .../base/service/IBaseLineLossService.java | 61 + .../base/service/IBaseLineMonitorService.java | 78 + .../base/service/IBaseMeterInfoService.java | 61 + .../service/IBaseMonitorInfo1Service.java | 68 + .../base/service/IBaseMonitorInfoService.java | 106 ++ .../service/IBasePublicManageService.java | 71 + .../service/IBasePublicUserRecordService.java | 62 + .../base/service/IBasePublicUserService.java | 71 + .../service/IBaseSubentryTypeService.java | 72 + .../service/IBaseTypeRelationService.java | 61 + .../service/IBaseWaterThresholdService.java | 61 + .../service/ICbsMonitorReportService.java | 80 + .../base/service/ISysConfigService.java | 84 + .../base/service/ISysDatasourceService.java | 67 + .../impl/BaseBuildInfoServiceImpl.java | 195 +++ .../impl/BaseBusinessTypeServiceImpl.java | 194 +++ .../BaseCollectCommunicateServiceImpl.java | 97 ++ .../BaseCollectDeviceInfoServiceImpl.java | 98 ++ .../impl/BaseDnbThresholdServiceImpl.java | 178 +++ .../impl/BaseEnergyTypeServiceImpl.java | 98 ++ .../service/impl/BaseLineLossServiceImpl.java | 97 ++ .../impl/BaseLineMonitorServiceImpl.java | 327 ++++ .../impl/BaseMeterInfoServiceImpl.java | 97 ++ .../impl/BaseMonitorInfo1ServiceImpl.java | 304 ++++ .../impl/BaseMonitorInfoServiceImpl.java | 519 +++++++ .../impl/BasePublicManageServiceImpl.java | 164 ++ .../impl/BasePublicUserRecordServiceImpl.java | 104 ++ .../impl/BasePublicUserServiceImpl.java | 334 ++++ .../impl/BaseSubentryTypeServiceImpl.java | 192 +++ .../impl/BaseTypeRelationServiceImpl.java | 100 ++ .../impl/BaseWaterThresholdServiceImpl.java | 97 ++ .../impl/CbsMonitorReportServiceImpl.java | 132 ++ .../service/impl/SysConfigServiceImpl.java | 194 +++ .../impl/SysDatasourceServiceImpl.java | 104 ++ .../com/op/energy/base/utils/DateUtils.java | 382 +++++ .../op/energy/base/utils/ExportExcelUtil.java | 1347 +++++++++++++++++ .../com/op/energy/base/utils/SpringUtils.java | 139 ++ .../op/energy/base/utils/sortReportUitls.java | 58 + .../controller/RecordAlarmDataController.java | 187 +++ .../controller/RecordAlarmRuleController.java | 91 ++ .../RecordDnbInstantController.java | 199 +++ .../RecordWaterInstantController.java | 191 +++ .../energy/record/domain/RecordAlarmData.java | 233 +++ .../energy/record/domain/RecordAlarmRule.java | 227 +++ .../record/domain/RecordDnbInstant.java | 349 +++++ .../record/domain/RecordWaterInstant.java | 230 +++ .../record/mapper/RecordAlarmDataMapper.java | 62 + .../record/mapper/RecordAlarmRuleMapper.java | 62 + .../record/mapper/RecordDnbInstantMapper.java | 78 + .../mapper/RecordWaterInstantMapper.java | 86 ++ .../service/IRecordAlarmDataService.java | 71 + .../service/IRecordAlarmRuleService.java | 61 + .../service/IRecordDnbInstantService.java | 88 ++ .../service/IRecordWaterInstantService.java | 84 + .../impl/RecordAlarmDataServiceImpl.java | 570 +++++++ .../impl/RecordAlarmRuleServiceImpl.java | 97 ++ .../impl/RecordDnbInstantServiceImpl.java | 240 +++ .../impl/RecordWaterInstantServiceImpl.java | 192 +++ .../report/controller/BoardController.java | 260 ++++ .../report/controller/EmsApiController.java | 85 ++ .../controller/ReportPointDnbController.java | 146 ++ .../ReportPointWaterController.java | 147 ++ .../controller/dataAnalysisController.java | 242 +++ .../controller/energyPreviewController.java | 67 + .../com/op/energy/report/domain/EmsApiVo.java | 138 ++ .../op/energy/report/domain/ExportReport.java | 247 +++ .../energy/report/domain/ReportPointDnb.java | 306 ++++ .../report/domain/ReportPointDnbDTO.java | 296 ++++ .../report/domain/ReportPointWater.java | 338 +++++ .../report/domain/ReportPointWaterDTO.java | 326 ++++ .../report/mapper/ReportPointDnbMapper.java | 80 + .../report/mapper/ReportPointWaterMapper.java | 84 + .../energy/report/service/IBoardService.java | 54 + .../report/service/IDataAnalysisService.java | 107 ++ .../energy/report/service/IEmsApiService.java | 47 + .../report/service/IEnergyPreviewService.java | 80 + .../service/IReportPointDnbService.java | 70 + .../service/IReportPointWaterService.java | 71 + .../report/service/impl/BoardServiceImpl.java | 349 +++++ .../service/impl/DataAnalysisServiceImpl.java | 1008 ++++++++++++ .../service/impl/EmsAPIServiceImpl.java | 295 ++++ .../impl/EnergyPreviewServiceImpl.java | 617 ++++++++ .../impl/ReportPointDnbServiceImpl.java | 139 ++ .../impl/ReportPointWaterServiceImpl.java | 134 ++ .../mapper/base/BaseBuildInfoMapper.xml | 111 ++ .../mapper/base/BaseBusinessTypeMapper.xml | 97 ++ .../base/BaseCollectCommunicateMapper.xml | 141 ++ .../base/BaseCollectDeviceInfoMapper.xml | 130 ++ .../mapper/base/BaseDnbThresholdMapper.xml | 170 +++ .../mapper/base/BaseEnergyTypeMapper.xml | 101 ++ .../mapper/base/BaseLineLossMapper.xml | 120 ++ .../mapper/base/BaseLineMonitorMapper.xml | 186 +++ .../mapper/base/BaseMeterInfoMapper.xml | 137 ++ .../mapper/base/BaseMonitorInfo1Mapper.xml | 227 +++ .../mapper/base/BaseMonitorInfoMapper.xml | 260 ++++ .../mapper/base/BaseMonitorPublicMapper.xml | 74 + .../mapper/base/BasePublicManageMapper.xml | 110 ++ .../mapper/base/BasePublicUserMapper.xml | 211 +++ .../base/BasePublicUserRecordMapper.xml | 118 ++ .../mapper/base/BaseSubentryTypeMapper.xml | 130 ++ .../mapper/base/BaseTypeRelationMapper.xml | 154 ++ .../mapper/base/BaseWaterThresholdMapper.xml | 120 ++ .../mapper/base/CbsMonitorReportMapper.xml | 212 +++ .../resources/mapper/base/SysConfigMapper.xml | 117 ++ .../mapper/base/SysDatasourceMapper.xml | 151 ++ .../mapper/record/RecordAlarmDataMapper.xml | 136 ++ .../mapper/record/RecordAlarmRuleMapper.xml | 132 ++ .../mapper/record/RecordDnbInstantMapper.xml | 201 +++ .../record/RecordWaterInstantMapper.xml | 159 ++ .../mapper/report/ReportPointDnbMapper.xml | 322 ++++ .../mapper/report/ReportPointWaterMapper.xml | 336 ++++ 186 files changed, 29043 insertions(+) create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/config/DynamicDatasource.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBuildInfoController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBusinessTypeController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectCommunicateController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectDeviceInfoController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseDnbThresholdController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseEnergyTypeController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineLossController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineMonitorController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMeterInfoController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfo1Controller.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfoController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicManageController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserRecordController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseSubentryTypeController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseTypeRelationController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseWaterThresholdController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/CbsMonitorReportController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/controller/SysConfigController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBuildInfo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBusinessType.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectCommunicate.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectDeviceInfo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseDnbThreshold.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseEnergyType.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineLoss.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineMonitor.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMeterInfo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorInfo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorPublic.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicManage.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUser.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUserRecord.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseSubentryType.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTree.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTypeRelation.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseWaterThreshold.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/CbsMonitorReport.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysConfig.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysDatasource.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/Ztree.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/CbsMonitorReportVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MetaVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MonitorVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/PublicManageVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/RouterVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/TreeSelect.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBuildInfoMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBusinessTypeMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectCommunicateMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectDeviceInfoMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseDnbThresholdMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseEnergyTypeMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineLossMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineMonitorMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMeterInfoMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfo1Mapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfoMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorPublicMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicManageMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserRecordMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseSubentryTypeMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseTypeRelationMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseWaterThresholdMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/CbsMonitorReportMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysConfigMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysDatasourceMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBuildInfoService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBusinessTypeService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectCommunicateService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectDeviceInfoService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseDnbThresholdService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseEnergyTypeService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineLossService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineMonitorService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMeterInfoService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfo1Service.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfoService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicManageService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserRecordService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseSubentryTypeService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseTypeRelationService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseWaterThresholdService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/ICbsMonitorReportService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysConfigService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysDatasourceService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBuildInfoServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBusinessTypeServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectCommunicateServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectDeviceInfoServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseDnbThresholdServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseEnergyTypeServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineLossServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineMonitorServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMeterInfoServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfo1ServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfoServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicManageServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserRecordServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseSubentryTypeServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseTypeRelationServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseWaterThresholdServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/CbsMonitorReportServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysDatasourceServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/utils/DateUtils.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/utils/ExportExcelUtil.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/utils/SpringUtils.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/base/utils/sortReportUitls.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmDataController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmRuleController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordDnbInstantController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordWaterInstantController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmData.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmRule.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordDnbInstant.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordWaterInstant.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmDataMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmRuleMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordDnbInstantMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordWaterInstantMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmDataService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmRuleService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordDnbInstantService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordWaterInstantService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmRuleServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordDnbInstantServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordWaterInstantServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/BoardController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/EmsApiController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointDnbController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointWaterController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/dataAnalysisController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/controller/energyPreviewController.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/EmsApiVo.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/ExportReport.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnb.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnbDTO.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWater.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWaterDTO.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointDnbMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointWaterMapper.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IBoardService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IDataAnalysisService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IEmsApiService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IEnergyPreviewService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointDnbService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointWaterService.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/BoardServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EmsAPIServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EnergyPreviewServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointDnbServiceImpl.java create mode 100644 op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointWaterServiceImpl.java create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseBuildInfoMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml create mode 100644 op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/config/DynamicDatasource.java b/op-modules/op-energy/src/main/java/com/op/energy/base/config/DynamicDatasource.java new file mode 100644 index 000000000..f41ad4fa6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/config/DynamicDatasource.java @@ -0,0 +1,51 @@ +package com.op.energy.base.config; + +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +import com.op.common.core.domain.R; +import com.op.common.datasource.creator.DynamicDatasourceCreator; +import com.op.system.api.RemoteUserService; +import com.op.system.api.domain.SysUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 初始化动态数据源 + * + * @ClassName: DynamicDatasource + * @Description: TODO + * @author shichangzhou + * @date 2023年4月19日 下午1:01:30 + */ +@Component +public class DynamicDatasource { + + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Autowired + private RemoteUserService remoteUserService; + + @PostConstruct + public void init() { + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + for (Map dateSource : dateSources) { + DataSourceProperty sdp = new DataSourceProperty(); + sdp.setUrl(dateSource.get("url")); + sdp.setUsername(dateSource.get("userName")); + sdp.setPassword(dateSource.get("password")); + sdp.setDriverClassName(dateSource.get("driveClassName")); + sdp.setPoolName(dateSource.get("poolName"));// 这是数据源的key + sdp.setLazy(false); + dynamicDatasourceCreator.createDynamicDataSource(sdp); + } + + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBuildInfoController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBuildInfoController.java new file mode 100644 index 000000000..e9684c536 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBuildInfoController.java @@ -0,0 +1,101 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.service.IBaseBuildInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 建筑信息管理Controller + * + * @author YinQ + * @date 2023-05-05 + */ +@RestController +@RequestMapping("/buildInfo") +public class BaseBuildInfoController extends BaseController { + @Autowired + private IBaseBuildInfoService baseBuildInfoService; + + /** + * 查询建筑信息管理列表 + */ + @RequiresPermissions("base:buildInfo:list") + @GetMapping("/list") + public AjaxResult list(BaseBuildInfo baseBuildInfo) { + List list = baseBuildInfoService.selectBaseBuildInfoList(baseBuildInfo); + return success(list); + } + + /** + * 导出建筑信息管理列表 + */ + @RequiresPermissions("base:buildInfo:export") + @Log(title = "建筑信息管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseBuildInfo baseBuildInfo) { + List list = baseBuildInfoService.selectBaseBuildInfoList(baseBuildInfo); + ExcelUtil util = new ExcelUtil(BaseBuildInfo.class); + util.exportExcel(response, list, "建筑信息管理数据"); + } + + /** + * 获取建筑信息管理详细信息 + */ + @RequiresPermissions("base:buildInfo:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseBuildInfoService.selectBaseBuildInfoByObjid(objid)); + } + + /** + * 新增建筑信息管理 + */ + @RequiresPermissions("base:buildInfo:add") + @Log(title = "建筑信息管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseBuildInfo baseBuildInfo) { + return toAjax(baseBuildInfoService.insertBaseBuildInfo(baseBuildInfo)); + } + + /** + * 修改建筑信息管理 + */ + @RequiresPermissions("base:buildInfo:edit") + @Log(title = "建筑信息管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseBuildInfo baseBuildInfo) { + return toAjax(baseBuildInfoService.updateBaseBuildInfo(baseBuildInfo)); + } + + /** + * 删除建筑信息管理 + */ + @RequiresPermissions("base:buildInfo:remove") + @Log(title = "建筑信息管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseBuildInfoService.deleteBaseBuildInfoByObjids(objids)); + } + + /** + * 加载建筑信息管理树列表 + */ + @GetMapping("/treeData") + @ResponseBody + public List treeData() { + List ztrees = baseBuildInfoService.selectBaseBuildInfoTree(); + return ztrees; + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBusinessTypeController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBusinessTypeController.java new file mode 100644 index 000000000..d1c937e12 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseBusinessTypeController.java @@ -0,0 +1,100 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseBusinessType; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.service.IBaseBusinessTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 业态类型管理Controller + * + * @author YinQ + * @date 2023-05-05 + */ +@RestController +@RequestMapping("/businessType") +public class BaseBusinessTypeController extends BaseController { + @Autowired + private IBaseBusinessTypeService baseBusinessTypeService; + + /** + * 查询业态类型管理列表 + */ + @RequiresPermissions("base:businessType:list") + @GetMapping("/list") + public AjaxResult list(BaseBusinessType baseBusinessType) { + List list = baseBusinessTypeService.selectBaseBusinessTypeList(baseBusinessType); + return success(list); + } + + /** + * 导出业态类型管理列表 + */ + @RequiresPermissions("base:businessType:export") + @Log(title = "业态类型管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseBusinessType baseBusinessType) { + List list = baseBusinessTypeService.selectBaseBusinessTypeList(baseBusinessType); + ExcelUtil util = new ExcelUtil(BaseBusinessType.class); + util.exportExcel(response, list, "业态类型管理数据"); + } + + /** + * 获取业态类型管理详细信息 + */ + @RequiresPermissions("base:businessType:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseBusinessTypeService.selectBaseBusinessTypeByObjid(objid)); + } + + /** + * 新增业态类型管理 + */ + @RequiresPermissions("base:businessType:add") + @Log(title = "业态类型管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseBusinessType baseBusinessType) { + return toAjax(baseBusinessTypeService.insertBaseBusinessType(baseBusinessType)); + } + + /** + * 修改业态类型管理 + */ + @RequiresPermissions("base:businessType:edit") + @Log(title = "业态类型管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseBusinessType baseBusinessType) { + return toAjax(baseBusinessTypeService.updateBaseBusinessType(baseBusinessType)); + } + + /** + * 删除业态类型管理 + */ + @RequiresPermissions("base:businessType:remove") + @Log(title = "业态类型管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseBusinessTypeService.deleteBaseBusinessTypeByObjids(objids)); + } + + /** + * 加载业态类型管理树列表 + */ + @GetMapping("/treeData") + @ResponseBody + public List treeData() { + List ztrees = baseBusinessTypeService.selectBaseBusinessTypeTree(); + return ztrees; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectCommunicateController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectCommunicateController.java new file mode 100644 index 000000000..20b430ec5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectCommunicateController.java @@ -0,0 +1,91 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseCollectCommunicate; +import com.op.energy.base.service.IBaseCollectCommunicateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 集中器通讯信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/communicate") +public class BaseCollectCommunicateController extends BaseController { + @Autowired + private IBaseCollectCommunicateService baseCollectCommunicateService; + + /** + * 查询集中器通讯信息列表 + */ + @RequiresPermissions("energy:communicate:list") + @GetMapping("/list") + public TableDataInfo list(BaseCollectCommunicate baseCollectCommunicate) { + startPage(); + List list = baseCollectCommunicateService.selectBaseCollectCommunicateList(baseCollectCommunicate); + return getDataTable(list); + } + + /** + * 导出集中器通讯信息列表 + */ + @RequiresPermissions("energy:communicate:export") + @Log(title = "集中器通讯信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseCollectCommunicate baseCollectCommunicate) { + List list = baseCollectCommunicateService.selectBaseCollectCommunicateList(baseCollectCommunicate); + ExcelUtil util = new ExcelUtil(BaseCollectCommunicate.class); + util.exportExcel(response, list, "集中器通讯信息数据"); + } + + /** + * 获取集中器通讯信息详细信息 + */ + @RequiresPermissions("energy:communicate:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseCollectCommunicateService.selectBaseCollectCommunicateByObjid(objid)); + } + + /** + * 新增集中器通讯信息 + */ + @RequiresPermissions("energy:communicate:add") + @Log(title = "集中器通讯信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseCollectCommunicate baseCollectCommunicate) { + return toAjax(baseCollectCommunicateService.insertBaseCollectCommunicate(baseCollectCommunicate)); + } + + /** + * 修改集中器通讯信息 + */ + @RequiresPermissions("energy:communicate:edit") + @Log(title = "集中器通讯信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseCollectCommunicate baseCollectCommunicate) { + return toAjax(baseCollectCommunicateService.updateBaseCollectCommunicate(baseCollectCommunicate)); + } + + /** + * 删除集中器通讯信息 + */ + @RequiresPermissions("energy:communicate:remove") + @Log(title = "集中器通讯信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseCollectCommunicateService.deleteBaseCollectCommunicateByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectDeviceInfoController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectDeviceInfoController.java new file mode 100644 index 000000000..27d012819 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseCollectDeviceInfoController.java @@ -0,0 +1,91 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseCollectDeviceInfo; +import com.op.energy.base.service.IBaseCollectDeviceInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 采集设备信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/info") +public class BaseCollectDeviceInfoController extends BaseController { + @Autowired + private IBaseCollectDeviceInfoService baseCollectDeviceInfoService; + + /** + * 查询采集设备信息列表 + */ + @RequiresPermissions("energy:info:list") + @GetMapping("/list") + public TableDataInfo list(BaseCollectDeviceInfo baseCollectDeviceInfo) { + startPage(); + List list = baseCollectDeviceInfoService.selectBaseCollectDeviceInfoList(baseCollectDeviceInfo); + return getDataTable(list); + } + + /** + * 导出采集设备信息列表 + */ + @RequiresPermissions("energy:info:export") + @Log(title = "采集设备信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseCollectDeviceInfo baseCollectDeviceInfo) { + List list = baseCollectDeviceInfoService.selectBaseCollectDeviceInfoList(baseCollectDeviceInfo); + ExcelUtil util = new ExcelUtil(BaseCollectDeviceInfo.class); + util.exportExcel(response, list, "采集设备信息数据"); + } + + /** + * 获取采集设备信息详细信息 + */ + @RequiresPermissions("energy:info:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseCollectDeviceInfoService.selectBaseCollectDeviceInfoByObjid(objid)); + } + + /** + * 新增采集设备信息 + */ + @RequiresPermissions("energy:info:add") + @Log(title = "采集设备信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseCollectDeviceInfo baseCollectDeviceInfo) { + return toAjax(baseCollectDeviceInfoService.insertBaseCollectDeviceInfo(baseCollectDeviceInfo)); + } + + /** + * 修改采集设备信息 + */ + @RequiresPermissions("energy:info:edit") + @Log(title = "采集设备信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseCollectDeviceInfo baseCollectDeviceInfo) { + return toAjax(baseCollectDeviceInfoService.updateBaseCollectDeviceInfo(baseCollectDeviceInfo)); + } + + /** + * 删除采集设备信息 + */ + @RequiresPermissions("energy:info:remove") + @Log(title = "采集设备信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseCollectDeviceInfoService.deleteBaseCollectDeviceInfoByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseDnbThresholdController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseDnbThresholdController.java new file mode 100644 index 000000000..ba8d0a80f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseDnbThresholdController.java @@ -0,0 +1,100 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseDnbThreshold; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.service.IBaseDnbThresholdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 电阈值信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/dnbThreshold") +public class BaseDnbThresholdController extends BaseController { + @Autowired + private IBaseDnbThresholdService baseDnbThresholdService; + + /** + * 查询电阈值信息列表 + */ + @RequiresPermissions("energy:dnbThreshold:list") + @GetMapping("/list") + public TableDataInfo list(BaseDnbThreshold baseDnbThreshold) { + startPage(); + List list = baseDnbThresholdService.selectBaseDnbThresholdList(baseDnbThreshold); + return getDataTable(list); + } + + /** + * 导出电阈值信息列表 + */ + @RequiresPermissions("energy:dnbThreshold:export") + @Log(title = "电阈值信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseDnbThreshold baseDnbThreshold) { + List list = baseDnbThresholdService.selectBaseDnbThresholdList(baseDnbThreshold); + ExcelUtil util = new ExcelUtil(BaseDnbThreshold.class); + util.exportExcel(response, list, "电阈值信息数据"); + } + + /** + * 获取电阈值信息详细信息 + */ + @RequiresPermissions("energy:dnbThreshold:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseDnbThresholdService.selectBaseDnbThresholdByObjid(objid)); + } + + /** + * 新增电阈值信息 + */ + @RequiresPermissions("energy:dnbThreshold:add") + @Log(title = "电阈值信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseDnbThreshold baseDnbThreshold) { + return toAjax(baseDnbThresholdService.insertBaseDnbThreshold(baseDnbThreshold)); + } + + /** + * 修改电阈值信息 + */ + @RequiresPermissions("energy:dnbThreshold:edit") + @Log(title = "电阈值信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseDnbThreshold baseDnbThreshold) { + return toAjax(baseDnbThresholdService.updateBaseDnbThreshold(baseDnbThreshold)); + } + + /** + * 删除电阈值信息 + */ + @RequiresPermissions("energy:dnbThreshold:remove") + @Log(title = "电阈值信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseDnbThresholdService.deleteBaseDnbThresholdByObjids(objids)); + } + + /** + * 获取计量设备树列表 + */ + @GetMapping("/monitorTree") + public AjaxResult monitorTree(BaseMonitorInfo baseMonitorInfo) { + return success(baseDnbThresholdService.selectMonitorTreeList(baseMonitorInfo)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseEnergyTypeController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseEnergyTypeController.java new file mode 100644 index 000000000..9443e206b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseEnergyTypeController.java @@ -0,0 +1,97 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.datascope.annotation.PoolDeptAuto; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.redis.service.RedisService; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseEnergyType; +import com.op.energy.base.service.IBaseEnergyTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 能源类型信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/type") +public class BaseEnergyTypeController extends BaseController { + @Autowired + private IBaseEnergyTypeService baseEnergyTypeService; + @Autowired + private RedisService redisService; + /** + * 查询能源类型信息列表 + */ + @RequiresPermissions("energy:type:list") + @GetMapping("/list") + @PoolDeptAuto + public TableDataInfo list(BaseEnergyType baseEnergyType) { + startPage(); + List list = baseEnergyTypeService.selectBaseEnergyTypeList(baseEnergyType); + return getDataTable(list); + } + + /** + * 导出能源类型信息列表 + */ + @RequiresPermissions("energy:type:export") + @Log(title = "能源类型信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @PoolDeptAuto + public void export(HttpServletResponse response, BaseEnergyType baseEnergyType) { + List list = baseEnergyTypeService.selectBaseEnergyTypeList(baseEnergyType); + ExcelUtil util = new ExcelUtil(BaseEnergyType.class); + util.exportExcel(response, list, "能源类型信息数据"); + } + + /** + * 获取能源类型信息详细信息 + */ + @RequiresPermissions("energy:type:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + //String poolName = redisService.getCacheObject(CacheConstants.USER_POOL_NAME_CURRENT + SecurityUtils.getUsername()); + return success(baseEnergyTypeService.selectBaseEnergyTypeByObjid(objid)); + } + + /** + * 新增能源类型信息 + */ + @RequiresPermissions("energy:type:add") + @Log(title = "能源类型信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseEnergyType baseEnergyType) { + return toAjax(baseEnergyTypeService.insertBaseEnergyType(baseEnergyType)); + } + + /** + * 修改能源类型信息 + */ + @RequiresPermissions("energy:type:edit") + @Log(title = "能源类型信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseEnergyType baseEnergyType) { + return toAjax(baseEnergyTypeService.updateBaseEnergyType(baseEnergyType)); + } + + /** + * 删除能源类型信息 + */ + @RequiresPermissions("energy:type:remove") + @Log(title = "能源类型信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseEnergyTypeService.deleteBaseEnergyTypeByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineLossController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineLossController.java new file mode 100644 index 000000000..0acfc23ab --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineLossController.java @@ -0,0 +1,91 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.service.IBaseLineLossService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 线损对象信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/loss") +public class BaseLineLossController extends BaseController { + @Autowired + private IBaseLineLossService baseLineLossService; + + /** + * 查询线损对象信息列表 + */ + @RequiresPermissions("energy:loss:list") + @GetMapping("/list") + public TableDataInfo list(BaseLineLoss baseLineLoss) { + startPage(); + List list = baseLineLossService.selectBaseLineLossList(baseLineLoss); + return getDataTable(list); + } + + /** + * 导出线损对象信息列表 + */ + @RequiresPermissions("energy:loss:export") + @Log(title = "线损对象信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseLineLoss baseLineLoss) { + List list = baseLineLossService.selectBaseLineLossList(baseLineLoss); + ExcelUtil util = new ExcelUtil(BaseLineLoss.class); + util.exportExcel(response, list, "线损对象信息数据"); + } + + /** + * 获取线损对象信息详细信息 + */ + @RequiresPermissions("energy:loss:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseLineLossService.selectBaseLineLossByObjid(objid)); + } + + /** + * 新增线损对象信息 + */ + @RequiresPermissions("energy:loss:add") + @Log(title = "线损对象信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseLineLoss baseLineLoss) { + return toAjax(baseLineLossService.insertBaseLineLoss(baseLineLoss)); + } + + /** + * 修改线损对象信息 + */ + @RequiresPermissions("energy:loss:edit") + @Log(title = "线损对象信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseLineLoss baseLineLoss) { + return toAjax(baseLineLossService.updateBaseLineLoss(baseLineLoss)); + } + + /** + * 删除线损对象信息 + */ + @RequiresPermissions("energy:loss:remove") + @Log(title = "线损对象信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseLineLossService.deleteBaseLineLossByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineMonitorController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineMonitorController.java new file mode 100644 index 000000000..461902601 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseLineMonitorController.java @@ -0,0 +1,96 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.base.service.IBaseLineMonitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 线路计量信息Controller + * + * @author YinQ + * @date 2023-05-06 + */ +@RestController +@RequestMapping("/lineMonitor") +public class BaseLineMonitorController extends BaseController +{ + @Autowired + private IBaseLineMonitorService baseLineMonitorService; + + /** + * 查询线路计量信息列表 + */ + @RequiresPermissions("base:lineMonitor:list") + @GetMapping("/list") + public AjaxResult list(BaseLineMonitor baseLineMonitor) + { + List list = baseLineMonitorService.selectBaseLineMonitorList(baseLineMonitor); + return success(list); + } + + /** + * 导出线路计量信息列表 + */ + @RequiresPermissions("base:lineMonitor:export") + @Log(title = "线路计量信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseLineMonitor baseLineMonitor) + { + List list = baseLineMonitorService.selectBaseLineMonitorList(baseLineMonitor); + ExcelUtil util = new ExcelUtil(BaseLineMonitor.class); + util.exportExcel(response, list, "线路计量信息数据"); + } + + /** + * 获取线路计量信息详细信息 + */ + @RequiresPermissions("base:lineMonitor:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) + { + return success(baseLineMonitorService.selectBaseLineMonitorByObjid(objid)); + } + + /** + * 新增线路计量信息 + */ + @RequiresPermissions("base:lineMonitor:add") + @Log(title = "线路计量信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseLineMonitor baseLineMonitor) + { + return toAjax(baseLineMonitorService.insertBaseLineMonitor(baseLineMonitor)); + } + + /** + * 修改线路计量信息 + */ + @RequiresPermissions("base:lineMonitor:edit") + @Log(title = "线路计量信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseLineMonitor baseLineMonitor) + { + return toAjax(baseLineMonitorService.updateBaseLineMonitor(baseLineMonitor)); + } + + /** + * 删除线路计量信息 + */ + @RequiresPermissions("base:lineMonitor:remove") + @Log(title = "线路计量信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) + { + return toAjax(baseLineMonitorService.deleteBaseLineMonitorByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMeterInfoController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMeterInfoController.java new file mode 100644 index 000000000..598faf8da --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMeterInfoController.java @@ -0,0 +1,111 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseMeterInfo; +import com.op.energy.base.service.IBaseMeterInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 计量仪表信息Controller + * + * @author YinQ + * @date 2023-03-31 + */ +@RestController +@RequestMapping("/base/meterInfo") +public class BaseMeterInfoController extends BaseController { + private String prefix = "base/meterInfo"; + + @Autowired + private IBaseMeterInfoService baseMeterInfoService; + + @RequiresPermissions("base:meterInfo:view") + @GetMapping() + public String meterInfo() { + return prefix + "/meterInfo"; + } + + /** + * 查询计量仪表信息列表 + */ + @RequiresPermissions("base:meterInfo:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BaseMeterInfo baseMeterInfo) { + startPage(); + List list = baseMeterInfoService.selectBaseMeterInfoList(baseMeterInfo); + return getDataTable(list); + } + + /** + * 导出计量仪表信息列表 + */ + @RequiresPermissions("base:meterInfo:export") + @Log(title = "计量仪表信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseMeterInfo baseMeterInfo) { + List list = baseMeterInfoService.selectBaseMeterInfoList(baseMeterInfo); + ExcelUtil util = new ExcelUtil(BaseMeterInfo.class); + util.exportExcel(response, list, "计量仪表信息数据"); + } + + /** + * 新增计量仪表信息 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存计量仪表信息 + */ + @RequiresPermissions("base:meterInfo:add") + @Log(title = "计量仪表信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult addSave(BaseMeterInfo baseMeterInfo) { + return toAjax(baseMeterInfoService.insertBaseMeterInfo(baseMeterInfo)); + } + + /** + * 修改计量仪表信息 + */ + @RequiresPermissions("base:meterInfo:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) { + BaseMeterInfo baseMeterInfo = baseMeterInfoService.selectBaseMeterInfoByObjid(objid); + mmap.put("baseMeterInfo", baseMeterInfo); + return prefix + "/edit"; + } + + /** + * 修改保存计量仪表信息 + */ + @RequiresPermissions("base:meterInfo:edit") + @Log(title = "计量仪表信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult editSave(BaseMeterInfo baseMeterInfo) { + return toAjax(baseMeterInfoService.updateBaseMeterInfo(baseMeterInfo)); + } + + /** + * 删除计量仪表信息 + */ + @RequiresPermissions("base:meterInfo:remove") + @Log(title = "计量仪表信息", businessType = BusinessType.DELETE) + @PostMapping("/remove") + public AjaxResult remove(String ids) { + return toAjax(baseMeterInfoService.deleteBaseMeterInfoByObjids(ids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfo1Controller.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfo1Controller.java new file mode 100644 index 000000000..886e1232b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfo1Controller.java @@ -0,0 +1,154 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.BaseBusinessType; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseSubentryType; +import com.op.energy.base.service.IBaseBuildInfoService; +import com.op.energy.base.service.IBaseBusinessTypeService; +import com.op.energy.base.service.IBaseMonitorInfo1Service; +import com.op.energy.base.service.IBaseSubentryTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 计量设备信息Controller + * + * @author sf + * @date 2023-05-05 + */ +@RestController +@RequestMapping("/ShuiMeasurement") +public class BaseMonitorInfo1Controller extends BaseController +{ + @Autowired + private IBaseMonitorInfo1Service baseMonitorInfoService; + + @Autowired + private IBaseBuildInfoService baseBuildInfoService; + + @Autowired + private IBaseSubentryTypeService baseSubentryTypeService; + + @Autowired + private IBaseBusinessTypeService baseBusinessTypeService; + /** + * 查询计量设备信息列表 + */ + @RequiresPermissions("energy:ShuiMeasurement:list") + @GetMapping("/list") + public AjaxResult list(BaseMonitorInfo baseMonitorInfo) + { + List list = baseMonitorInfoService.selectBaseMonitorInfoList(baseMonitorInfo); + return success(list); + } + + /** + * 导出计量设备信息列表 + */ + @RequiresPermissions("energy:ShuiMeasurement:export") + @Log(title = "计量设备信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseMonitorInfo baseMonitorInfo) + { + List list = baseMonitorInfoService.selectBaseMonitorInfoList(baseMonitorInfo); + ExcelUtil util = new ExcelUtil(BaseMonitorInfo.class); + util.exportExcel(response, list, "计量设备信息数据"); + } + + /** + * 获取计量设备信息详细信息 + */ + @RequiresPermissions("energy:ShuiMeasurement:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) + { + return success(baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid)); + } + + /** + * 新增计量设备信息 + */ + @RequiresPermissions("energy:ShuiMeasurement:add") + @Log(title = "计量设备信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseMonitorInfo baseMonitorInfo) + { + return toAjax(baseMonitorInfoService.insertBaseMonitorInfo(baseMonitorInfo)); + } + + /** + * 修改计量设备信息 + */ + @RequiresPermissions("energy:ShuiMeasurement:edit") + @Log(title = "计量设备信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseMonitorInfo baseMonitorInfo) + { + return toAjax(baseMonitorInfoService.updateBaseMonitorInfo(baseMonitorInfo)); + } + + /** + * 删除计量设备信息 + */ + @RequiresPermissions("energy:ShuiMeasurement:remove") + @Log(title = "计量设备信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) + { + return toAjax(baseMonitorInfoService.deleteBaseMonitorInfoByObjids(objids)); + } + + /** + * 获取建筑类型下拉树列表 + */ + @GetMapping("/buildTreeSelect") + public AjaxResult buildTreeSelect(BaseMonitorInfo baseMonitorInfo) { + List builds = baseBuildInfoService.selectBuildList(baseMonitorInfo); + return success(baseBuildInfoService.buildTreeSelect(builds)); + } + + @GetMapping("/subentryTreeSelect") + public AjaxResult subentryTreeSelect(BaseMonitorInfo baseMonitorInfo) { + List subentrys = baseSubentryTypeService.selectSubentryList(baseMonitorInfo); + return success(baseSubentryTypeService.buildTreeSelect(subentrys)); + } + + @GetMapping("/businessTreeSelect") + public AjaxResult businessTreeSelect(BaseMonitorInfo baseMonitorInfo) { + List business = baseBusinessTypeService.selectSubentryList(baseMonitorInfo); + return success(baseBusinessTypeService.buildTreeSelect(business)); + } + + /** + * 加载对应角色菜单列表树 + */ + @GetMapping(value = "/treeselect/{objid}") + public AjaxResult roleMenuTreeselect(@PathVariable("objid") Long objid) { + //Long userId = SecurityUtils.getUserId(); + BaseMonitorInfo baseMonitorInfo = new BaseMonitorInfo(); + List builds = baseBuildInfoService.selectBuildList(baseMonitorInfo); + List subentrys = baseSubentryTypeService.selectSubentryList(baseMonitorInfo); + List business = baseBusinessTypeService.selectSubentryList(baseMonitorInfo); + + AjaxResult ajax = AjaxResult.success(); +// ajax.put("buildCheckedKeys", menuService.selectMenuListByRoleId(roleId)); +// ajax.put("subentryCheckedKeys", menuService.selectMenuListByRoleId(roleId)); +// ajax.put("businessCheckedKeys", menuService.selectMenuListByRoleId(roleId)); + ajax.put("builds", baseBuildInfoService.buildTreeSelect(builds)); + ajax.put("subentrys",baseSubentryTypeService.buildTreeSelect(subentrys)); + ajax.put("business", baseBusinessTypeService.buildTreeSelect(business)); + return ajax; + + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfoController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfoController.java new file mode 100644 index 000000000..5a6a7c126 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseMonitorInfoController.java @@ -0,0 +1,220 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseTree; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.service.IBaseMonitorInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +/** + * 计量设备信息Controller + * + * @author YinQ + * @date 2023-04-06 + */ +@RestController +@RequestMapping("/base/monitorInfo") +public class BaseMonitorInfoController extends BaseController { + private String prefix = "base/monitorInfo"; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + +// @Autowired +// private IBaseBuildInfoService baseBuildInfoService; + + //@RequiresPermissions("base:monitorInfo:view") + @GetMapping() + public String monitorInfo(@RequestParam("id") int id) { + String url = ""; + switch (id) { + case 2: + url = "/dnbMonitorInfo"; + break; + case 3: + url = "/waterMonitorInfo"; + break; + } + return prefix + url; + } + + /** + * 查询计量设备信息树列表 + */ + //@RequiresPermissions("base:monitorInfo:list") + @PostMapping("/list") + public List list(@RequestBody BaseMonitorInfo baseMonitorInfo) { + List list = baseMonitorInfoService.selectBaseMonitorInfoList(baseMonitorInfo); + return list; + } + + /** + * 导出计量设备信息列表 + */ + //@RequiresPermissions("base:monitorInfo:export") + @Log(title = "计量设备信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseMonitorInfo baseMonitorInfo) { + List list = baseMonitorInfoService.selectBaseMonitorInfoList(baseMonitorInfo); + ExcelUtil util = new ExcelUtil(BaseMonitorInfo.class); + util.exportExcel(response, list, "计量设备信息数据"); + } + + /** + * 新增电计量设备信息 + */ + @GetMapping(value = {"/add/{objid}", "/add/"}) + public String add(@PathVariable(value = "objid", required = false) Long objid, ModelMap mmap) { + if (StringUtils.isNotNull(objid)) { + mmap.put("baseMonitorInfo", baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid)); + } + return prefix + "/dnbAdd"; + } + + /** + * 新增水计量设备信息 + */ + @GetMapping(value = {"/waterAdd/{objid}", "/waterAdd/"}) + public String waterAdd(@PathVariable(value = "objid", required = false) Long objid, ModelMap mmap) { + if (StringUtils.isNotNull(objid)) { + mmap.put("baseMonitorInfo", baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid)); + } + return prefix + "/waterAdd"; + } + + /** + * 新增保存计量设备信息 + */ + //@RequiresPermissions("base:monitorInfo:add") + @Log(title = "计量设备信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult addSave(BaseMonitorInfo baseMonitorInfo) { + return toAjax(baseMonitorInfoService.insertBaseMonitorInfo(baseMonitorInfo)); + } + + /** + * 修改计量设备信息 + */ + //@RequiresPermissions("base:monitorInfo:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) { + BaseMonitorInfo baseMonitorInfo = baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid); + mmap.put("baseMonitorInfo", baseMonitorInfo); + return prefix + "/dnbEdit"; + } + + /** + * 修改计量设备信息 + */ + //@RequiresPermissions("base:monitorInfo:edit") + @GetMapping("/waterEdit/{objid}") + public String waterEdit(@PathVariable("objid") Long objid, ModelMap mmap) { + BaseMonitorInfo baseMonitorInfo = baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid); + mmap.put("baseMonitorInfo", baseMonitorInfo); + return prefix + "/waterEdit"; + } + + /** + * 修改保存计量设备信息 + */ + //@RequiresPermissions("base:monitorInfo:edit") + @Log(title = "计量设备信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult editSave(BaseMonitorInfo baseMonitorInfo) { +// List list = baseMonitorInfoService.selectBaseMonitorInfoList(new BaseMonitorInfo()); +// for (BaseMonitorInfo monitorInfo : list) { +// baseMonitorInfoService.updateBaseMonitorInfo(monitorInfo); +// } +// return toAjax(1); + return toAjax(baseMonitorInfoService.updateBaseMonitorInfo(baseMonitorInfo)); + } + + /** + * 删除 + */ + //@RequiresPermissions("base:monitorInfo:remove") + @Log(title = "计量设备信息", businessType = BusinessType.DELETE) + @GetMapping("/remove/{objid}") + public AjaxResult remove(@PathVariable("objid") Long objid) { + return toAjax(baseMonitorInfoService.deleteBaseMonitorInfoByObjid(objid)); + } + + /** + * 选择计量设备信息树 + */ + @GetMapping(value = {"/selectMonitorInfoTree/{objid}", "/selectMonitorInfoTree/"}) + public String selectMonitorInfoTree(@PathVariable(value = "objid", required = false) Long objid, ModelMap mmap) { + if (StringUtils.isNotNull(objid)) { + mmap.put("baseMonitorInfo", baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid)); + } + return prefix + "/dnbTree"; + } + + /** + * 选择计量设备信息树 + */ + @GetMapping(value = {"/selectMeterReadingTree/{objid}", "/selectMeterReadingTree/"}) + public String selectMeterReadingTree(@PathVariable(value = "objid", required = false) Long objid, ModelMap mmap) { + if (StringUtils.isNotNull(objid)) { + mmap.put("monitorType", objid); + } + return prefix + "/meterReadingTree"; + } + + + /** + * 选择类型信息树 + */ + @GetMapping(value = {"/selectTypeInfoTree/{type}/{objid}", "/selectTypeInfoTree/{type}"}) + public String selectTypeInfoTree(@PathVariable(value = "type", required = false) Long type, @PathVariable(value = "objid", required = false) String objid, ModelMap mmap) { + mmap.put("typeTree", type); + if (StringUtils.isNotNull(objid)) { + mmap.put("typeInfoTreeList", objid); + } + return prefix + "/checkTree"; + } + + /** + * 选择计量设备信息树 + */ + @GetMapping(value = {"/selectWaterMonitorInfoTree/{objid}", "/selectWaterMonitorInfoTree/"}) + public String selectWaterMonitorInfoTree(@PathVariable(value = "objid", required = false) Long objid, ModelMap mmap) { + if (StringUtils.isNotNull(objid)) { + mmap.put("baseMonitorInfo", baseMonitorInfoService.selectBaseMonitorInfoByObjid(objid)); + } + return prefix + "/waterTree"; + } + + + /** + * 加载采集设备信息树列表 + */ + @GetMapping("/treeData/{monitorType}") + public List treeData(@PathVariable(value = "monitorType", required = false) Long monitorType) { + List ztrees = baseMonitorInfoService.selectBaseMonitorInfoTree(monitorType); + return ztrees; + } + + /** + * 查询类型园区下第一级 + */ + @GetMapping("/selectTypeSubset/{type}") + @ResponseBody + public AjaxResult selectTypeSubset(@PathVariable("type") Long type) + { + ArrayList typeRelations = baseMonitorInfoService.selectTypeSubset(type); + return AjaxResult.success(typeRelations); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicManageController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicManageController.java new file mode 100644 index 000000000..281034025 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicManageController.java @@ -0,0 +1,155 @@ +package com.op.energy.base.controller; + +import com.op.common.core.text.Convert; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BasePublicManage; +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.vo.PublicManageVo; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.base.service.IBasePublicManageService; +import com.op.energy.base.service.IBasePublicUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.List; + + +/** + * 公摊管理Controller + * + * @author ruoyi + * @date 2023-04-27 + */ +@RestController +@RequestMapping("/base/publicsharemanage") +public class BasePublicManageController extends BaseController { + private String prefix = "base/publicsharemanage"; + + @Autowired + private IBasePublicManageService basePublicManageService; + @Autowired + private IBasePublicUserService iBasePublicUserService; + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + @RequiresPermissions("base:publicsharemanage:view") + @GetMapping() + public String publicsharemanage() { + return prefix + "/publicsharemanage"; + } + + /** + * 查询公摊管理列表 + */ + @RequiresPermissions("base:publicsharemanage:list") + @GetMapping("/list") + @ResponseBody + public TableDataInfo list(BasePublicManage basePublicManage) { + startPage(); + List list = basePublicManageService.selectBasePublicManageList(basePublicManage); + return getDataTable(list); + } + + /** + * 导出公摊管理列表 + */ + @RequiresPermissions("base:publicsharemanage:export") + @Log(title = "公摊管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse reponse, BasePublicManage basePublicManage) { + List list = basePublicManageService.selectBasePublicManageList(basePublicManage); + ExcelUtil util = new ExcelUtil(BasePublicManage.class); + util.exportExcel(reponse, list, "公摊管理数据"); + } + + /** + * 新增公摊管理 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + + @PostMapping("/AddStepTwo") + @ResponseBody + public AjaxResult AddStepTwo(PublicManageVo publicManageVo) { + //公摊表类型 publicShareType 0-公共 1-业主 + AjaxResult ajax = AjaxResult.success(); + /** + * 计算公摊表数值 + */ + List baseMonitorInfoList = baseMonitorInfoService.selectDistinctPublicMonitor(Convert.toStrArray(publicManageVo.getIds())); + String[] ids = baseMonitorInfoList.stream().map(BaseMonitorInfo::getMonitorId).toArray(String[]::new); + if (ids.length == 0){ + return ajax; + } + BigDecimal sumPublicExpend = baseMonitorInfoService.queryPublicMonitorExpend(ids, publicManageVo.getStartTime(), publicManageVo.getEndTime(), publicManageVo.getShareType()); + ajax.put("sum", sumPublicExpend); + //每个用户下的公摊表 求公摊比率 + //勾选用户 + List basePublicUserArrayList = iBasePublicUserService.selectPublicUserList(publicManageVo, sumPublicExpend); + if (publicManageVo.getShareRule() == 4){ + sumPublicExpend = basePublicUserArrayList.stream().map(BasePublicUser::getPublicExpend).reduce(BigDecimal.ZERO, BigDecimal::add); + ajax.put("sum", sumPublicExpend); + } + ajax.put("basePublicUserList", basePublicUserArrayList); + ajax.put("startTime", publicManageVo.getStartTime()); + return ajax; + } + + /** + * 新增保存公摊管理 + */ + @RequiresPermissions("base:publicsharemanage:add") + @Log(title = "公摊管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(@RequestBody BasePublicManage basePublicManage) { + return toAjax(basePublicManageService.insertBasePublicManage(basePublicManage)); + } + + /** + * 修改公摊管理 + */ + @RequiresPermissions("base:publicsharemanage:edit") + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) { + BasePublicManage basePublicManage = basePublicManageService.selectBasePublicManageById(id); + mmap.put("basePublicManage", basePublicManage); + return prefix + "/edit"; + } + + /** + * 修改保存公摊管理 + */ + @RequiresPermissions("base:publicsharemanage:edit") + @Log(title = "公摊管理", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BasePublicManage basePublicManage) { + return toAjax(basePublicManageService.updateBasePublicManage(basePublicManage)); + } + + /** + * 删除公摊管理 + */ + @RequiresPermissions("base:publicsharemanage:remove") + @Log(title = "公摊管理", businessType = BusinessType.DELETE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(String ids) { + return toAjax(basePublicManageService.deleteBasePublicManageByIds(ids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserController.java new file mode 100644 index 000000000..091e857e7 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserController.java @@ -0,0 +1,154 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.PageDomain; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.core.web.page.TableSupport; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.vo.MonitorVo; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.base.service.IBasePublicUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 公摊用户Controller + * + * @author yangwl + * @date 2023-04-24 + */ +@RestController +@RequestMapping("/base/basepublicuser") +public class BasePublicUserController extends BaseController { + private String prefix = "base/basepublicuser"; + + @Autowired + private IBasePublicUserService basePublicUserService; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + @RequiresPermissions("base:basepublicuser:view") + @GetMapping() + public String basepublicuser() { + return prefix + "/basepublicuser"; + } + + /** + * 查询公摊用户列表 + */ + @RequiresPermissions("base:basepublicuser:list") + @GetMapping("/list") + @ResponseBody + public TableDataInfo list(BasePublicUser basePublicUser) { + startPage(); + List list = basePublicUserService.selectBasePublicUserList(basePublicUser); + return getDataTable(list); + } + + /** + * 导出公摊用户列表 + */ + @RequiresPermissions("base:basepublicuser:export") + @Log(title = "公摊用户", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response, BasePublicUser basePublicUser) { + List list = basePublicUserService.selectBasePublicUserList(basePublicUser); + ExcelUtil util = new ExcelUtil(BasePublicUser.class); + util.exportExcel(response, list, "公摊用户数据"); + } + + /** + * 新增公摊用户 + */ + @GetMapping("/add") + public String add(ModelMap mmap) { + BaseMonitorInfo baseMonitorInfo = new BaseMonitorInfo(); + baseMonitorInfo.setPublicShareType(0); + mmap.put("publicShares", baseMonitorInfoService.selectBaseMonitorInfoList(baseMonitorInfo)); + return prefix + "/add"; + } + + /** + * 新增保存公摊用户 + */ + @RequiresPermissions("base:basepublicuser:add") + @Log(title = "公摊用户", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(@RequestBody BasePublicUser basePublicUser) { + return toAjax(basePublicUserService.insertBasePublicUser(basePublicUser)); + } + + /** + * 修改公摊用户 + */ + @RequiresPermissions("base:basepublicuser:edit") + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) { + BasePublicUser basePublicUser = basePublicUserService.selectBasePublicUserById(id); + mmap.put("publicShares", baseMonitorInfoService.selectMonitor(id)); + mmap.put("basePublicUser", basePublicUser); + return prefix + "/edit"; + } + + /** + * 修改保存公摊用户 + */ + @RequiresPermissions("base:basepublicuser:edit") + @Log(title = "公摊用户", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(@RequestBody BasePublicUser basePublicUser) { + return toAjax(basePublicUserService.updateBasePublicUser(basePublicUser)); + } + + /** + * 删除公摊用户 + */ + @RequiresPermissions("base:basepublicuser:remove") + @Log(title = "公摊用户", businessType = BusinessType.DELETE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(String ids) { + return toAjax(basePublicUserService.deleteBasePublicUserByIds(ids)); + } + /** + * 父子表展开 + */ + + /** + * 查询子表数据 + */ + @PostMapping("/childlist") + @ResponseBody + public TableDataInfo listChild(@RequestBody BasePublicUser basePublicUser) { + TableDataInfo rspData = new TableDataInfo(); + List lists = basePublicUserService.selectlistChild(basePublicUser.getId()); + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (null == pageDomain.getPageNum() || null == pageDomain.getPageSize()) { + rspData.setRows(lists); + rspData.setTotal(lists.size()); + return rspData; + } + Integer pageNum = (pageDomain.getPageNum() - 1) * 10; + Integer pageSize = pageDomain.getPageNum() * 10; + if (pageSize > lists.size()) { + pageSize = lists.size(); + } + rspData.setRows(lists.subList(pageNum, pageSize)); + rspData.setTotal(lists.size()); + return rspData; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserRecordController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserRecordController.java new file mode 100644 index 000000000..23066b02f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BasePublicUserRecordController.java @@ -0,0 +1,98 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BasePublicUserRecord; +import com.op.energy.base.service.IBasePublicUserRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 公摊用户数据记录Controller + * + * @author YinQ + * @date 2023-06-25 + */ +@RestController +@RequestMapping("/publicUserRecord") +public class BasePublicUserRecordController extends BaseController +{ + @Autowired + private IBasePublicUserRecordService basePublicUserRecordService; + + /** + * 查询公摊用户数据记录列表 + */ + @RequiresPermissions("energy:publicUserRecord:list") + @GetMapping("/list") + public TableDataInfo list(BasePublicUserRecord basePublicUserRecord) + { + startPage(); + List list = basePublicUserRecordService.selectBasePublicUserRecordList(basePublicUserRecord); + return getDataTable(list); + } + + /** + * 导出公摊用户数据记录列表 + */ + @RequiresPermissions("energy:publicUserRecord:export") + @Log(title = "公摊用户数据记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BasePublicUserRecord basePublicUserRecord) + { + List list = basePublicUserRecordService.selectBasePublicUserRecordList(basePublicUserRecord); + ExcelUtil util = new ExcelUtil(BasePublicUserRecord.class); + util.exportExcel(response, list, "公摊用户数据记录数据"); + } + + /** + * 获取公摊用户数据记录详细信息 + */ + @RequiresPermissions("energy:publicUserRecord:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) + { + return success(basePublicUserRecordService.selectBasePublicUserRecordByObjid(objid)); + } + + /** + * 新增公摊用户数据记录 + */ + @RequiresPermissions("energy:publicUserRecord:add") + @Log(title = "公摊用户数据记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BasePublicUserRecord basePublicUserRecord) + { + return toAjax(basePublicUserRecordService.insertBasePublicUserRecord(basePublicUserRecord)); + } + + /** + * 修改公摊用户数据记录 + */ + @RequiresPermissions("energy:publicUserRecord:edit") + @Log(title = "公摊用户数据记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BasePublicUserRecord basePublicUserRecord) + { + return toAjax(basePublicUserRecordService.updateBasePublicUserRecord(basePublicUserRecord)); + } + + /** + * 删除公摊用户数据记录 + */ + @RequiresPermissions("energy:publicUserRecord:remove") + @Log(title = "公摊用户数据记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) + { + return toAjax(basePublicUserRecordService.deleteBasePublicUserRecordByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseSubentryTypeController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseSubentryTypeController.java new file mode 100644 index 000000000..6c67e3cda --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseSubentryTypeController.java @@ -0,0 +1,107 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseSubentryType; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.service.IBaseSubentryTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 分项类型管理Controller + * + * @author YinQ + * @date 2023-05-06 + */ +@RestController +@RequestMapping("/subentryType") +public class BaseSubentryTypeController extends BaseController +{ + @Autowired + private IBaseSubentryTypeService baseSubentryTypeService; + + /** + * 查询分项类型管理列表 + */ + @RequiresPermissions("base:subentryType:list") + @GetMapping("/list") + public AjaxResult list(BaseSubentryType baseSubentryType) + { + List list = baseSubentryTypeService.selectBaseSubentryTypeList(baseSubentryType); + return success(list); + } + + /** + * 导出分项类型管理列表 + */ + @RequiresPermissions("base:subentryType:export") + @Log(title = "分项类型管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseSubentryType baseSubentryType) + { + List list = baseSubentryTypeService.selectBaseSubentryTypeList(baseSubentryType); + ExcelUtil util = new ExcelUtil(BaseSubentryType.class); + util.exportExcel(response, list, "分项类型管理数据"); + } + + /** + * 获取分项类型管理详细信息 + */ + @RequiresPermissions("base:subentryType:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) + { + return success(baseSubentryTypeService.selectBaseSubentryTypeByObjid(objid)); + } + + /** + * 新增分项类型管理 + */ + @RequiresPermissions("base:subentryType:add") + @Log(title = "分项类型管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseSubentryType baseSubentryType) + { + return toAjax(baseSubentryTypeService.insertBaseSubentryType(baseSubentryType)); + } + + /** + * 修改分项类型管理 + */ + @RequiresPermissions("base:subentryType:edit") + @Log(title = "分项类型管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseSubentryType baseSubentryType) + { + return toAjax(baseSubentryTypeService.updateBaseSubentryType(baseSubentryType)); + } + + /** + * 删除分项类型管理 + */ + @RequiresPermissions("base:subentryType:remove") + @Log(title = "分项类型管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) + { + return toAjax(baseSubentryTypeService.deleteBaseSubentryTypeByObjids(objids)); + } + /** + * 加载分项类型管理树列表 + */ + @GetMapping("/treeData") + @ResponseBody + public List treeData() + { + List ztrees = baseSubentryTypeService.selectBaseSubentryTypeTree(); + return ztrees; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseTypeRelationController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseTypeRelationController.java new file mode 100644 index 000000000..424166742 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseTypeRelationController.java @@ -0,0 +1,111 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.service.IBaseTypeRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + + +/** + * 计量与类型对应关系Controller + * + * @author YinQ + * @date 2023-04-07 + */ +@RestController +@RequestMapping("/base/typeRelation") +public class BaseTypeRelationController extends BaseController { + private String prefix = "base/typeRelation"; + + @Autowired + private IBaseTypeRelationService baseTypeRelationService; + + @RequiresPermissions("base:typeRelation:view") + @GetMapping() + public String typeRelation() { + return prefix + "/typeRelation"; + } + + /** + * 查询计量与类型对应关系列表 + */ + @RequiresPermissions("base:typeRelation:list") + @GetMapping("/list") + public TableDataInfo list(BaseTypeRelation baseTypeRelation) { + startPage(); + List list = baseTypeRelationService.selectBaseTypeRelationList(baseTypeRelation); + return getDataTable(list); + } + + /** + * 导出计量与类型对应关系列表 + */ + @RequiresPermissions("base:typeRelation:export") + @Log(title = "计量与类型对应关系", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseTypeRelation baseTypeRelation) { + List list = baseTypeRelationService.selectBaseTypeRelationList(baseTypeRelation); + ExcelUtil util = new ExcelUtil(BaseTypeRelation.class); + util.exportExcel(response, list, "计量与类型对应关系数据"); + } + + /** + * 新增计量与类型对应关系 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存计量与类型对应关系 + */ + @RequiresPermissions("base:typeRelation:add") + @Log(title = "计量与类型对应关系", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult addSave(BaseTypeRelation baseTypeRelation) { + return toAjax(baseTypeRelationService.insertBaseTypeRelation(baseTypeRelation)); + } + + /** + * 修改计量与类型对应关系 + */ + @RequiresPermissions("base:typeRelation:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) { + BaseTypeRelation baseTypeRelation = baseTypeRelationService.selectBaseTypeRelationByObjid(objid); + mmap.put("baseTypeRelation", baseTypeRelation); + return prefix + "/edit"; + } + + /** + * 修改保存计量与类型对应关系 + */ + @RequiresPermissions("base:typeRelation:edit") + @Log(title = "计量与类型对应关系", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult editSave(BaseTypeRelation baseTypeRelation) { + return toAjax(baseTypeRelationService.updateBaseTypeRelation(baseTypeRelation)); + } + + /** + * 删除计量与类型对应关系 + */ + @RequiresPermissions("base:typeRelation:remove") + @Log(title = "计量与类型对应关系", businessType = BusinessType.DELETE) + @PostMapping("/remove") + public AjaxResult remove(String ids) { + return toAjax(baseTypeRelationService.deleteBaseTypeRelationByObjids(ids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseWaterThresholdController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseWaterThresholdController.java new file mode 100644 index 000000000..715b402cb --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/BaseWaterThresholdController.java @@ -0,0 +1,91 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.BaseWaterThreshold; +import com.op.energy.base.service.IBaseWaterThresholdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 水阈值信息Controller + * + * @author sf + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/threshold") +public class BaseWaterThresholdController extends BaseController { + @Autowired + private IBaseWaterThresholdService baseWaterThresholdService; + + /** + * 查询水阈值信息列表 + */ + @RequiresPermissions("energy:threshold:list") + @GetMapping("/list") + public TableDataInfo list(BaseWaterThreshold baseWaterThreshold) { + startPage(); + List list = baseWaterThresholdService.selectBaseWaterThresholdList(baseWaterThreshold); + return getDataTable(list); + } + + /** + * 导出水阈值信息列表 + */ + @RequiresPermissions("energy:threshold:export") + @Log(title = "水阈值信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseWaterThreshold baseWaterThreshold) { + List list = baseWaterThresholdService.selectBaseWaterThresholdList(baseWaterThreshold); + ExcelUtil util = new ExcelUtil(BaseWaterThreshold.class); + util.exportExcel(response, list, "水阈值信息数据"); + } + + /** + * 获取水阈值信息详细信息 + */ + @RequiresPermissions("energy:threshold:query") + @GetMapping(value = "/{objid}") + public AjaxResult getInfo(@PathVariable("objid") Long objid) { + return success(baseWaterThresholdService.selectBaseWaterThresholdByObjid(objid)); + } + + /** + * 新增水阈值信息 + */ + @RequiresPermissions("energy:threshold:add") + @Log(title = "水阈值信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BaseWaterThreshold baseWaterThreshold) { + return toAjax(baseWaterThresholdService.insertBaseWaterThreshold(baseWaterThreshold)); + } + + /** + * 修改水阈值信息 + */ + @RequiresPermissions("energy:threshold:edit") + @Log(title = "水阈值信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseWaterThreshold baseWaterThreshold) { + return toAjax(baseWaterThresholdService.updateBaseWaterThreshold(baseWaterThreshold)); + } + + /** + * 删除水阈值信息 + */ + @RequiresPermissions("energy:threshold:remove") + @Log(title = "水阈值信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public AjaxResult remove(@PathVariable Long[] objids) { + return toAjax(baseWaterThresholdService.deleteBaseWaterThresholdByObjids(objids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/CbsMonitorReportController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/CbsMonitorReportController.java new file mode 100644 index 000000000..07c3b8d19 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/CbsMonitorReportController.java @@ -0,0 +1,98 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.base.domain.CbsMonitorReport; +import com.op.energy.base.service.ICbsMonitorReportService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * CBS抄报Controller + * + * @author YinQ + * @date 2023-10-20 + */ +@RestController +@RequestMapping("/base/cbsMonitorReport") +public class CbsMonitorReportController extends BaseController +{ + @Autowired + private ICbsMonitorReportService cbsMonitorReportService; + + /** + * 查询CBS抄报列表 + */ + @RequiresPermissions("base:cbsMonitorReport:list") + @GetMapping("/list") + public TableDataInfo list(CbsMonitorReport cbsMonitorReport) + { + startPage(); + List list = cbsMonitorReportService.selectCbsMonitorReportList(cbsMonitorReport); + return getDataTable(list); + } + + /** + * 导出CBS抄报列表 + */ + @RequiresPermissions("base:cbsMonitorReport:export") + @Log(title = "CBS抄报", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, CbsMonitorReport cbsMonitorReport) + { + List list = cbsMonitorReportService.selectCbsMonitorReportList(cbsMonitorReport); + ExcelUtil util = new ExcelUtil(CbsMonitorReport.class); + util.exportExcel(response, list, "CBS抄报数据"); + } + + /** + * 获取CBS抄报详细信息 + */ + @RequiresPermissions("base:cbsMonitorReport:query") + @GetMapping(value = "/{objId}") + public AjaxResult getInfo(@PathVariable("objId") Long objId) + { + return success(cbsMonitorReportService.selectCbsMonitorReportByObjId(objId)); + } + + /** + * 新增CBS抄报 + */ + @RequiresPermissions("base:cbsMonitorReport:add") + @Log(title = "CBS抄报", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody CbsMonitorReport cbsMonitorReport) + { + return toAjax(cbsMonitorReportService.insertCbsMonitorReport(cbsMonitorReport)); + } + + /** + * 修改CBS抄报 + */ + @RequiresPermissions("base:cbsMonitorReport:edit") + @Log(title = "CBS抄报", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody CbsMonitorReport cbsMonitorReport) + { + return toAjax(cbsMonitorReportService.updateCbsMonitorReport(cbsMonitorReport)); + } + + /** + * 删除CBS抄报 + */ + @RequiresPermissions("base:cbsMonitorReport:remove") + @Log(title = "CBS抄报", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public AjaxResult remove(@PathVariable Long[] objIds) + { + return toAjax(cbsMonitorReportService.deleteCbsMonitorReportByObjIds(objIds)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/controller/SysConfigController.java b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/SysConfigController.java new file mode 100644 index 000000000..53c163838 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/controller/SysConfigController.java @@ -0,0 +1,128 @@ +package com.op.energy.base.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.SysConfig; +import com.op.energy.base.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; + +/** + * 参数配置 信息操作处理 + * + * @author sf + */ +@RestController +@RequestMapping("/config") +public class SysConfigController extends BaseController { + @Autowired + private ISysConfigService configService; + + /** + * 获取参数配置列表 + */ + @RequiresPermissions("system:config:list") + @GetMapping("/list") + public TableDataInfo list(SysConfig config) { + startPage(); + List list = configService.selectConfigList(config); + return getDataTable(list); + } + + @Log(title = "参数管理", businessType = BusinessType.EXPORT) + @RequiresPermissions("system:config:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysConfig config) { + List list = configService.selectConfigList(config); + ExcelUtil util = new ExcelUtil(SysConfig.class); + util.exportExcel(response, list, "参数数据"); + } + + /** + * 根据参数编号获取详细信息 + */ + @GetMapping(value = "/{configId}") + public AjaxResult getInfo(@PathVariable Long configId) { + return success(configService.selectConfigById(configId)); + } + + /** + * 根据参数键名查询参数值 + */ + @GetMapping(value = "/configKey/{configKey}") + public AjaxResult getConfigKey(@PathVariable String configKey) { + return success(configService.selectConfigByKey(configKey)); + } + + /** + * 新增参数配置 + */ + @RequiresPermissions("system:config:add") + @Log(title = "参数管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysConfig config) { + if (!configService.checkConfigKeyUnique(config)) { + return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setCreateBy(SecurityUtils.getUsername()); + return toAjax(configService.insertConfig(config)); + } + + /** + * 修改参数配置 + */ + @RequiresPermissions("system:config:edit") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysConfig config) { + if (!configService.checkConfigKeyUnique(config)) { + return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(configService.updateConfig(config)); + } + + /** + * 删除参数配置 + */ + @RequiresPermissions("system:config:remove") + @Log(title = "参数管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public AjaxResult remove(@PathVariable Long[] configIds) { + configService.deleteConfigByIds(configIds); + return success(); + } + + /** + * 刷新参数缓存 + */ + @RequiresPermissions("system:config:remove") + @Log(title = "参数管理", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() { + configService.resetConfigCache(); + return success(); + } + @PostMapping("/editMeterReading") + @ResponseBody + public AjaxResult edit(@RequestParam(required = false) String monitorIds) + { + SysConfig sysConfig = new SysConfig(); + sysConfig.setConfigId(14L); + sysConfig.setConfigValue(monitorIds); + sysConfig.setUpdateTime(new Date()); + sysConfig.setRemark(monitorIds); + return toAjax(configService.updateConfig(sysConfig)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBuildInfo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBuildInfo.java new file mode 100644 index 000000000..f6e5687be --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBuildInfo.java @@ -0,0 +1,160 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.ArrayList; +import java.util.List; + +/** + * 建筑信息管理对象 base_build_info + * + * @author YinQ + * @date 2023-05-05 + */ +public class BaseBuildInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 父级编号 */ + @Excel(name = "父级编号") + private Long parentId; + /** 祖级列表 */ + @Excel(name = "祖级列表") + private String ancestors; + /** 子菜单 */ + private List children = new ArrayList(); + /** 自增标识 */ + private Long objid; + + /** 建筑编号 */ + @Excel(name = "建筑编号") + private String buildId; + + /** 建筑名称 */ + @Excel(name = "建筑名称") + private String buildName; + + /** 状态 */ + @Excel(name = "状态") + private Long buildStatus; + + /** 等级 */ + @Excel(name = "等级") + private Long grade; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setBuildId(String buildId) + { + this.buildId = buildId; + } + + public String getBuildId() + { + return buildId; + } + public void setBuildName(String buildName) + { + this.buildName = buildName; + } + + public String getBuildName() + { + return buildName; + } + public void setBuildStatus(Long buildStatus) + { + this.buildStatus = buildStatus; + } + + public Long getBuildStatus() + { + return buildStatus; + } + public void setGrade(Long grade) + { + this.grade = grade; + } + + public Long getGrade() + { + return grade; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("buildId", getBuildId()) + .append("buildName", getBuildName()) + .append("buildStatus", getBuildStatus()) + .append("grade", getGrade()) + .append("remark", getRemark()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBusinessType.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBusinessType.java new file mode 100644 index 000000000..8f2fd173f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseBusinessType.java @@ -0,0 +1,148 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.ArrayList; +import java.util.List; + +/** + * 业态类型管理对象 base_business_type + * + * @author YinQ + * @date 2023-05-05 + */ +public class BaseBusinessType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 父级编号 */ + @Excel(name = "父级编号") + private Long parentId; + /** 祖级列表 */ + @Excel(name = "祖级列表") + private String ancestors; + /** 子菜单 */ + private List children = new ArrayList(); + + /** 编号 */ + private Long objid; + + /** 业态类型编号 */ + @Excel(name = "业态类型编号") + private String businessId; + + /** 业态类型名称 */ + @Excel(name = "业态类型名称") + private String businessName; + + /** 状态 */ + @Excel(name = "状态") + private Long businessStatus; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setBusinessId(String businessId) + { + this.businessId = businessId; + } + + public String getBusinessId() + { + return businessId; + } + public void setBusinessName(String businessName) + { + this.businessName = businessName; + } + + public String getBusinessName() + { + return businessName; + } + public void setBusinessStatus(Long businessStatus) + { + this.businessStatus = businessStatus; + } + + public Long getBusinessStatus() + { + return businessStatus; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("parentId", getParentId()) + .append("businessId", getBusinessId()) + .append("businessName", getBusinessName()) + .append("businessStatus", getBusinessStatus()) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectCommunicate.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectCommunicate.java new file mode 100644 index 000000000..220db4287 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectCommunicate.java @@ -0,0 +1,242 @@ +package com.op.energy.base.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 集中器通讯信息对象 base_collect_communicate + * + * @author sf + * @date 2023-04-20 + */ +public class BaseCollectCommunicate extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 集中器编号 */ + @Excel(name = "集中器编号") + private String collectDeviceId; + + /** 终端时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "终端时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date terminalTime; + + /** 时间间隔 */ + @Excel(name = "时间间隔") + private Long timeInterval; + + /** 仪表协议 */ + @Excel(name = "仪表协议") + private String meterAgreement; + + /** 仪表类型 */ + @Excel(name = "仪表类型") + private Long meterType; + + /** 仪表状态 */ + @Excel(name = "仪表状态") + private Long meterStatus; + + /** 终端地址 */ + @Excel(name = "终端地址") + private String meterIp; + + /** 心跳频率 */ + @Excel(name = "心跳频率") + private Long heartInterval; + + /** 波特率一通道 */ + @Excel(name = "波特率一通道") + private Long baudRateOne; + + /** 波特率二通道 */ + @Excel(name = "波特率二通道") + private Long baudRateTwo; + + /** 波特率三通道 */ + @Excel(name = "波特率三通道") + private Long baudRateThree; + + /** 波特率四通道 */ + @Excel(name = "波特率四通道") + private Long baudRateFour; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setCollectDeviceId(String collectDeviceId) + { + this.collectDeviceId = collectDeviceId; + } + + public String getCollectDeviceId() + { + return collectDeviceId; + } + public void setTerminalTime(Date terminalTime) + { + this.terminalTime = terminalTime; + } + + public Date getTerminalTime() + { + return terminalTime; + } + public void setTimeInterval(Long timeInterval) + { + this.timeInterval = timeInterval; + } + + public Long getTimeInterval() + { + return timeInterval; + } + public void setMeterAgreement(String meterAgreement) + { + this.meterAgreement = meterAgreement; + } + + public String getMeterAgreement() + { + return meterAgreement; + } + public void setMeterType(Long meterType) + { + this.meterType = meterType; + } + + public Long getMeterType() + { + return meterType; + } + public void setMeterStatus(Long meterStatus) + { + this.meterStatus = meterStatus; + } + + public Long getMeterStatus() + { + return meterStatus; + } + public void setMeterIp(String meterIp) + { + this.meterIp = meterIp; + } + + public String getMeterIp() + { + return meterIp; + } + public void setHeartInterval(Long heartInterval) + { + this.heartInterval = heartInterval; + } + + public Long getHeartInterval() + { + return heartInterval; + } + public void setBaudRateOne(Long baudRateOne) + { + this.baudRateOne = baudRateOne; + } + + public Long getBaudRateOne() + { + return baudRateOne; + } + public void setBaudRateTwo(Long baudRateTwo) + { + this.baudRateTwo = baudRateTwo; + } + + public Long getBaudRateTwo() + { + return baudRateTwo; + } + public void setBaudRateThree(Long baudRateThree) + { + this.baudRateThree = baudRateThree; + } + + public Long getBaudRateThree() + { + return baudRateThree; + } + public void setBaudRateFour(Long baudRateFour) + { + this.baudRateFour = baudRateFour; + } + + public Long getBaudRateFour() + { + return baudRateFour; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("collectDeviceId", getCollectDeviceId()) + .append("terminalTime", getTerminalTime()) + .append("timeInterval", getTimeInterval()) + .append("meterAgreement", getMeterAgreement()) + .append("meterType", getMeterType()) + .append("meterStatus", getMeterStatus()) + .append("meterIp", getMeterIp()) + .append("heartInterval", getHeartInterval()) + .append("baudRateOne", getBaudRateOne()) + .append("baudRateTwo", getBaudRateTwo()) + .append("baudRateThree", getBaudRateThree()) + .append("baudRateFour", getBaudRateFour()) + .append("remark", getRemark()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectDeviceInfo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectDeviceInfo.java new file mode 100644 index 000000000..c3f48662d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseCollectDeviceInfo.java @@ -0,0 +1,213 @@ +package com.op.energy.base.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 采集设备信息对象 base_collect_device_info + * + * @author sf + * @date 2023-04-20 + */ +public class BaseCollectDeviceInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 设备编号 */ + private String collectDeviceId; + + /** 设备名称 */ + @Excel(name = "设备名称") + private String collectDeviceName; + + /** 生产厂家 */ + @Excel(name = "生产厂家") + private String manufacturer; + + /** 生产编号 */ + @Excel(name = "生产编号") + private String factoryNumber; + + /** 生产日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date produceDate; + + /** 安装位置 */ + @Excel(name = "安装位置") + private String address; + + /** 能源类型 */ + @Excel(name = "能源类型") + private Long energyType; + + /** 型号 */ + @Excel(name = "型号") + private String model; + + /** 地址 */ + @Excel(name = "地址") + private String ip; + + /** 终端在线状态 */ + @Excel(name = "终端在线状态") + private Long onlineState; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setCollectDeviceId(String collectDeviceId) + { + this.collectDeviceId = collectDeviceId; + } + + public String getCollectDeviceId() + { + return collectDeviceId; + } + public void setCollectDeviceName(String collectDeviceName) + { + this.collectDeviceName = collectDeviceName; + } + + public String getCollectDeviceName() + { + return collectDeviceName; + } + public void setManufacturer(String manufacturer) + { + this.manufacturer = manufacturer; + } + + public String getManufacturer() + { + return manufacturer; + } + public void setFactoryNumber(String factoryNumber) + { + this.factoryNumber = factoryNumber; + } + + public String getFactoryNumber() + { + return factoryNumber; + } + public void setProduceDate(Date produceDate) + { + this.produceDate = produceDate; + } + + public Date getProduceDate() + { + return produceDate; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setEnergyType(Long energyType) + { + this.energyType = energyType; + } + + public Long getEnergyType() + { + return energyType; + } + public void setModel(String model) + { + this.model = model; + } + + public String getModel() + { + return model; + } + public void setIp(String ip) + { + this.ip = ip; + } + + public String getIp() + { + return ip; + } + public void setOnlineState(Long onlineState) + { + this.onlineState = onlineState; + } + + public Long getOnlineState() + { + return onlineState; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("collectDeviceId", getCollectDeviceId()) + .append("collectDeviceName", getCollectDeviceName()) + .append("manufacturer", getManufacturer()) + .append("factoryNumber", getFactoryNumber()) + .append("produceDate", getProduceDate()) + .append("address", getAddress()) + .append("energyType", getEnergyType()) + .append("model", getModel()) + .append("ip", getIp()) + .append("remark", getRemark()) + .append("onlineState", getOnlineState()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseDnbThreshold.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseDnbThreshold.java new file mode 100644 index 000000000..4bc4880a1 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseDnbThreshold.java @@ -0,0 +1,316 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 电阈值信息对象 base_dnb_threshold + * + * @author sf + * @date 2023-04-20 + */ +public class BaseDnbThreshold extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + @Excel(name = "计量设备名称") + private String monitorName; + + /** A相电流最大值 */ + @Excel(name = "A相电流最大值") + private BigDecimal iAMax; + + /** A相电流最小值 */ + @Excel(name = "A相电流最小值") + private BigDecimal iAMin; + + /** B相电流最大值 */ + @Excel(name = "B相电流最大值") + private BigDecimal iBMax; + + /** B相电流最小值 */ + @Excel(name = "B相电流最小值") + private BigDecimal iBMin; + + /** C相电流最大值 */ + @Excel(name = "C相电流最大值") + private BigDecimal iCMax; + + /** C相电流最小值 */ + @Excel(name = "C相电流最小值") + private BigDecimal iCMin; + + /** A相电压最大值 */ + @Excel(name = "A相电压最大值") + private BigDecimal vAMax; + + /** A相电压最小值 */ + @Excel(name = "A相电压最小值") + private BigDecimal vAMin; + + /** B相电压最大值 */ + @Excel(name = "B相电压最大值") + private BigDecimal vBMax; + + /** B相电压最小值 */ + @Excel(name = "B相电压最小值") + private BigDecimal vBMin; + + /** C相电压最大值 */ + @Excel(name = "C相电压最大值") + private BigDecimal vCMax; + + /** C相电压最小值 */ + @Excel(name = "C相电压最小值") + private BigDecimal vCMin; + + /** 小时耗量 */ + @Excel(name = "小时耗量") + private BigDecimal hourConsumption; + + /** 天耗量 */ + @Excel(name = "天耗量") + private BigDecimal dayConsumption; + + /** 线损率(%) */ + @Excel(name = "线损率(%)") + private BigDecimal lineLossRate; + + /** 阈值状态 */ + @Excel(name = "阈值状态") + private Long thresholdStatus; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public BigDecimal getHourConsumption() { + return hourConsumption; + } + + public void setHourConsumption(BigDecimal hourConsumption) { + this.hourConsumption = hourConsumption; + } + + public BigDecimal getDayConsumption() { + return dayConsumption; + } + + public void setDayConsumption(BigDecimal dayConsumption) { + this.dayConsumption = dayConsumption; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setiAMax(BigDecimal iAMax) + { + this.iAMax = iAMax; + } + + public BigDecimal getiAMax() + { + return iAMax; + } + public void setiAMin(BigDecimal iAMin) + { + this.iAMin = iAMin; + } + + public BigDecimal getiAMin() + { + return iAMin; + } + public void setiBMax(BigDecimal iBMax) + { + this.iBMax = iBMax; + } + + public BigDecimal getiBMax() + { + return iBMax; + } + public void setiBMin(BigDecimal iBMin) + { + this.iBMin = iBMin; + } + + public BigDecimal getiBMin() + { + return iBMin; + } + public void setiCMax(BigDecimal iCMax) + { + this.iCMax = iCMax; + } + + public BigDecimal getiCMax() + { + return iCMax; + } + public void setiCMin(BigDecimal iCMin) + { + this.iCMin = iCMin; + } + + public BigDecimal getiCMin() + { + return iCMin; + } + public void setvAMax(BigDecimal vAMax) + { + this.vAMax = vAMax; + } + + public BigDecimal getvAMax() + { + return vAMax; + } + public void setvAMin(BigDecimal vAMin) + { + this.vAMin = vAMin; + } + + public BigDecimal getvAMin() + { + return vAMin; + } + public void setvBMax(BigDecimal vBMax) + { + this.vBMax = vBMax; + } + + public BigDecimal getvBMax() + { + return vBMax; + } + public void setvBMin(BigDecimal vBMin) + { + this.vBMin = vBMin; + } + + public BigDecimal getvBMin() + { + return vBMin; + } + public void setvCMax(BigDecimal vCMax) + { + this.vCMax = vCMax; + } + + public BigDecimal getvCMax() + { + return vCMax; + } + public void setvCMin(BigDecimal vCMin) + { + this.vCMin = vCMin; + } + + public BigDecimal getvCMin() + { + return vCMin; + } + public void setLineLossRate(BigDecimal lineLossRate) + { + this.lineLossRate = lineLossRate; + } + + public BigDecimal getLineLossRate() + { + return lineLossRate; + } + public void setThresholdStatus(Long thresholdStatus) + { + this.thresholdStatus = thresholdStatus; + } + + public Long getThresholdStatus() + { + return thresholdStatus; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("iAMax", getiAMax()) + .append("iAMin", getiAMin()) + .append("iBMax", getiBMax()) + .append("iBMin", getiBMin()) + .append("iCMax", getiCMax()) + .append("iCMin", getiCMin()) + .append("vAMax", getvAMax()) + .append("vAMin", getvAMin()) + .append("vBMax", getvBMax()) + .append("vBMin", getvBMin()) + .append("vCMax", getvCMax()) + .append("vCMin", getvCMin()) + .append("lineLossRate", getLineLossRate()) + .append("thresholdStatus", getThresholdStatus()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseEnergyType.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseEnergyType.java new file mode 100644 index 000000000..1a1dcfc8c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseEnergyType.java @@ -0,0 +1,127 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 能源类型信息对象 base_energy_type + * + * @author sf + * @date 2023-04-20 + */ +public class BaseEnergyType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 能源类型编号 */ + @Excel(name = "能源类型编号") + private Long energyTypeId; + + /** 能源类型名称 */ + @Excel(name = "能源类型名称") + private String energyName; + + /** 单位 */ + @Excel(name = "单位") + private String measureUnit; + + /** 单价 */ + @Excel(name = "单价") + private BigDecimal price; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setEnergyTypeId(Long energyTypeId) + { + this.energyTypeId = energyTypeId; + } + + public Long getEnergyTypeId() + { + return energyTypeId; + } + public void setEnergyName(String energyName) + { + this.energyName = energyName; + } + + public String getEnergyName() + { + return energyName; + } + public void setMeasureUnit(String measureUnit) + { + this.measureUnit = measureUnit; + } + + public String getMeasureUnit() + { + return measureUnit; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("energyTypeId", getEnergyTypeId()) + .append("energyName", getEnergyName()) + .append("measureUnit", getMeasureUnit()) + .append("price", getPrice()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineLoss.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineLoss.java new file mode 100644 index 000000000..b39861495 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineLoss.java @@ -0,0 +1,167 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 线损对象信息对象 base_line_loss + * + * @author sf + * @date 2023-04-20 + */ +public class BaseLineLoss extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 线损对象编号 */ + @Excel(name = "线损对象编号") + private String lineLossId; + + /** 线损对象名称 */ + @Excel(name = "线损对象名称") + private String lineLossName; + + /** 监测点编号 */ + @Excel(name = "监测点编号") + private String monitorId; + + /** 监测点名称 */ + @Excel(name = "监测点名称") + private String monitorName; + + /** 监测点类型 */ + @Excel(name = "监测点类型") + private Long monitorType; + + /** 等级 */ + @Excel(name = "等级") + private Long grade; + + /** 计量设备状态 */ + @Excel(name = "计量设备状态") + private Long lineLossStatus; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setLineLossId(String lineLossId) + { + this.lineLossId = lineLossId; + } + + public String getLineLossId() + { + return lineLossId; + } + public void setLineLossName(String lineLossName) + { + this.lineLossName = lineLossName; + } + + public String getLineLossName() + { + return lineLossName; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setMonitorType(Long monitorType) + { + this.monitorType = monitorType; + } + + public Long getMonitorType() + { + return monitorType; + } + public void setGrade(Long grade) + { + this.grade = grade; + } + + public Long getGrade() + { + return grade; + } + public void setLineLossStatus(Long lineLossStatus) + { + this.lineLossStatus = lineLossStatus; + } + + public Long getLineLossStatus() + { + return lineLossStatus; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("lineLossId", getLineLossId()) + .append("lineLossName", getLineLossName()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("monitorType", getMonitorType()) + .append("grade", getGrade()) + .append("lineLossStatus", getLineLossStatus()) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineMonitor.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineMonitor.java new file mode 100644 index 000000000..a55968606 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseLineMonitor.java @@ -0,0 +1,295 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.TreeEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 线路计量信息对象 base_line_monitor + * + * @author YinQ + * @date 2023-05-06 + */ +public class BaseLineMonitor extends TreeEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键标识 */ + @Excel(name = "主键标识") + private Long objid; + + /** 父级编号 */ + @Excel(name = "父级编号") + private Long parentId; + + /** 计量设备编号 */ + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String monitorAddr; + + /** 计量设备类型 */ + @Excel(name = "计量设备类型") + private Long monitorType; + + /** 计量设备状态 */ + @Excel(name = "计量设备状态") + private Long monitorStatus; + + /** 采集设备编号 */ + @Excel(name = "采集设备编号") + private String collectDeviceId; + + /** 建筑编号 */ + @Excel(name = "建筑编号") + private String buildId; + + /** 等级 */ + @Excel(name = "等级") + private Long grade; + + /** 修正值 */ + @Excel(name = "修正值") + private BigDecimal correctValue; + + /** 是否虚拟 */ + @Excel(name = "是否虚拟") + private String isAmmeter; + + /** 线路名称 */ +// @Excel(name = "线路名称") + private String lineName; + + /** 线路长度 */ +// @Excel(name = "线路长度") + private BigDecimal lineLength; + + /** 线路状态 */ +// @Excel(name = "线路状态") + private Long lineStatus; + + /** 电力容量 */ +// @Excel(name = "电力容量") + private BigDecimal powerCapacity; + + /** 水力容量 */ +// @Excel(name = "水力容量") + private BigDecimal waterCapacity; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setMonitorAddr(String monitorAddr) + { + this.monitorAddr = monitorAddr; + } + + public String getMonitorAddr() + { + return monitorAddr; + } + public void setMonitorType(Long monitorType) + { + this.monitorType = monitorType; + } + + public Long getMonitorType() + { + return monitorType; + } + public void setMonitorStatus(Long monitorStatus) + { + this.monitorStatus = monitorStatus; + } + + public Long getMonitorStatus() + { + return monitorStatus; + } + public void setCollectDeviceId(String collectDeviceId) + { + this.collectDeviceId = collectDeviceId; + } + + public String getCollectDeviceId() + { + return collectDeviceId; + } + public void setBuildId(String buildId) + { + this.buildId = buildId; + } + + public String getBuildId() + { + return buildId; + } + public void setGrade(Long grade) + { + this.grade = grade; + } + + public Long getGrade() + { + return grade; + } + public void setCorrectValue(BigDecimal correctValue) + { + this.correctValue = correctValue; + } + + public BigDecimal getCorrectValue() + { + return correctValue; + } + public void setIsAmmeter(String isAmmeter) + { + this.isAmmeter = isAmmeter; + } + + public String getIsAmmeter() + { + return isAmmeter; + } + public void setLineName(String lineName) + { + this.lineName = lineName; + } + + public String getLineName() + { + return lineName; + } + public void setLineLength(BigDecimal lineLength) + { + this.lineLength = lineLength; + } + + public BigDecimal getLineLength() + { + return lineLength; + } + public void setLineStatus(Long lineStatus) + { + this.lineStatus = lineStatus; + } + + public Long getLineStatus() + { + return lineStatus; + } + public void setPowerCapacity(BigDecimal powerCapacity) + { + this.powerCapacity = powerCapacity; + } + + public BigDecimal getPowerCapacity() + { + return powerCapacity; + } + public void setWaterCapacity(BigDecimal waterCapacity) + { + this.waterCapacity = waterCapacity; + } + + public BigDecimal getWaterCapacity() + { + return waterCapacity; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("parentId", getParentId()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("monitorAddr", getMonitorAddr()) + .append("monitorType", getMonitorType()) + .append("monitorStatus", getMonitorStatus()) + .append("collectDeviceId", getCollectDeviceId()) + .append("buildId", getBuildId()) + .append("ancestors", getAncestors()) + .append("grade", getGrade()) + .append("correctValue", getCorrectValue()) + .append("isAmmeter", getIsAmmeter()) + .append("lineName", getLineName()) + .append("lineLength", getLineLength()) + .append("lineStatus", getLineStatus()) + .append("powerCapacity", getPowerCapacity()) + .append("waterCapacity", getWaterCapacity()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMeterInfo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMeterInfo.java new file mode 100644 index 000000000..65cc1d52b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMeterInfo.java @@ -0,0 +1,267 @@ +package com.op.energy.base.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + + +/** + * 计量仪表信息对象 base_meter_info + * + * @author YinQ + * @date 2023-03-31 + */ +public class BaseMeterInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 园区编号 */ + private Long deptId; + + /** 园区名称 */ + @Excel(name = "园区名称") + private String deptName; + + /** 楼栋号 */ + @Excel(name = "楼栋号") + private String buildNumber; + + /** 楼层号 */ + @Excel(name = "楼层号") + private String floorNumber; + + /** 房间号(计量对象) */ + @Excel(name = "房间号(计量对象)") + private String roomNumber; + + /** 物理编号 */ + @Excel(name = "物理编号") + private String physicalNumber; + + /** 生产厂家 */ + @Excel(name = "生产厂家") + private String manufacturer; + + /** 精度 */ + @Excel(name = "精度") + private BigDecimal precisionValue; + + /** 生产日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date produceDate; + + /** 仪表编号 */ + @Excel(name = "仪表编号") + private String meterId; + + /** 仪表型号 */ + @Excel(name = "仪表型号") + private String model; + + /** 能源类型 */ + @Excel(name = "能源类型") + private Long meterEnergyType; + + /** 仪表地址 */ + @Excel(name = "仪表地址") + private String meterAdress; + + /** 仪表状态 */ + @Excel(name = "仪表状态") + private Long meterStatus; + + /** CT变化 */ + @Excel(name = "CT变化") + private String ctChange; + + /** 终端编号 */ + @Excel(name = "终端编号") + private String collectId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + public void setBuildNumber(String buildNumber) + { + this.buildNumber = buildNumber; + } + + public String getBuildNumber() + { + return buildNumber; + } + public void setFloorNumber(String floorNumber) + { + this.floorNumber = floorNumber; + } + + public String getFloorNumber() + { + return floorNumber; + } + public void setRoomNumber(String roomNumber) + { + this.roomNumber = roomNumber; + } + + public String getRoomNumber() + { + return roomNumber; + } + public void setPhysicalNumber(String physicalNumber) + { + this.physicalNumber = physicalNumber; + } + + public String getPhysicalNumber() + { + return physicalNumber; + } + public void setManufacturer(String manufacturer) + { + this.manufacturer = manufacturer; + } + + public String getManufacturer() + { + return manufacturer; + } + public void setPrecisionValue(BigDecimal precisionValue) + { + this.precisionValue = precisionValue; + } + + public BigDecimal getPrecisionValue() + { + return precisionValue; + } + public void setProduceDate(Date produceDate) + { + this.produceDate = produceDate; + } + + public Date getProduceDate() + { + return produceDate; + } + public void setMeterId(String meterId) + { + this.meterId = meterId; + } + + public String getMeterId() + { + return meterId; + } + public void setModel(String model) + { + this.model = model; + } + + public String getModel() + { + return model; + } + public void setMeterEnergyType(Long meterEnergyType) + { + this.meterEnergyType = meterEnergyType; + } + + public Long getMeterEnergyType() + { + return meterEnergyType; + } + public void setMeterAdress(String meterAdress) + { + this.meterAdress = meterAdress; + } + + public String getMeterAdress() + { + return meterAdress; + } + public void setMeterStatus(Long meterStatus) + { + this.meterStatus = meterStatus; + } + + public Long getMeterStatus() + { + return meterStatus; + } + public void setCtChange(String ctChange) + { + this.ctChange = ctChange; + } + + public String getCtChange() + { + return ctChange; + } + public void setCollectId(String collectId) + { + this.collectId = collectId; + } + + public String getCollectId() + { + return collectId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("deptId", getDeptId()) + .append("deptName", getDeptName()) + .append("buildNumber", getBuildNumber()) + .append("floorNumber", getFloorNumber()) + .append("roomNumber", getRoomNumber()) + .append("physicalNumber", getPhysicalNumber()) + .append("manufacturer", getManufacturer()) + .append("precisionValue", getPrecisionValue()) + .append("produceDate", getProduceDate()) + .append("meterId", getMeterId()) + .append("model", getModel()) + .append("meterEnergyType", getMeterEnergyType()) + .append("meterAdress", getMeterAdress()) + .append("meterStatus", getMeterStatus()) + .append("ctChange", getCtChange()) + .append("collectId", getCollectId()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorInfo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorInfo.java new file mode 100644 index 000000000..04497cc74 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorInfo.java @@ -0,0 +1,461 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 计量设备信息对象 base_monitor_info + * + * @author sf + * @date 2023-04-23 + */ +public class BaseMonitorInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键标识 */ + @Excel(name = "主键标识") + private Long objid; + + /** 父级编号 */ + @Excel(name = "父级编号") + private Long parentId; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String monitorAddr; + + /** 计量设备类型 */ + @Excel(name = "计量设备类型(2-电;3水)") + private Long monitorType; + + /** CBS房间编号 */ + @Excel(name = "CBS房间编号") + private String roomCode; + + /** CBS房间名称 */ + @Excel(name = "CBS房间名称") + private String roomName; + + /** CBS物理编号 */ + @Excel(name = "CBS物理编号") + private String physicalCode; + + /** 采集设备编号 */ + @Excel(name = "采集设备编号") + private String collectDeviceId; + + /** 公摊表类型 */ + @Excel(name = "公摊表类型(0-公共表;1-单元表;2-无)") + private Integer publicShareType; + + /** 表具层级 */ + @Excel(name = "表具层级") + private Long monitorHierarchy; + + /** 祖级列表 */ + @Excel(name = "祖级列表") + private String ancestors; + + /** 等级 */ + @Excel(name = "等级") + private Integer grade; + + /** 建筑类型 */ + @Excel(name = "建筑类型") + private String buildId; + + /** 分项类型 */ + @Excel(name = "分项类型") + private String subentryId; + + /** 业态类型 */ + @Excel(name = "业态类型") + private String businessId; + + /** 传感器仪表 */ + @Excel(name = "传感器仪表") + private String meterTypeId; + + /** 测量器具 */ + @Excel(name = "测量器具") + private String meterId; + + /** 修正值 */ + @Excel(name = "修正值") + private BigDecimal correctValue; + + /** PT值 */ + @Excel(name = "PT值") + private Long pt; + + /** CT值 */ + @Excel(name = "CT值") + private Long ct; + + /** 是否虚拟表 */ + @Excel(name = "是否虚拟表") + private String isAmmeter; + + /** 通断复位 */ + private Long isKeyMonitor; + + /** 是否断路 */ + @Excel(name = "是否断路") + private Long isCircuit; + + /** 权限标识(部门) */ + private Long deptId; + + /** 权限标识(用户) */ + private Long userId; + + private String buildName; + + private String subentryName; + + private String businessName; + + /** 计量设备状态 */ + @Excel(name = "计量设备状态") + private Long monitorStatus; + + /** 子部门 */ + private List children = new ArrayList(); + + private Boolean flag; + + public String getPhysicalCode() { + return physicalCode; + } + + public void setPhysicalCode(String physicalCode) { + this.physicalCode = physicalCode; + } + + public String getRoomCode() { + return roomCode; + } + + public void setRoomCode(String roomCode) { + this.roomCode = roomCode; + } + + public String getRoomName() { + return roomName; + } + + public void setRoomName(String roomName) { + this.roomName = roomName; + } + + public Long getMonitorHierarchy() { + return monitorHierarchy; + } + + public void setMonitorHierarchy(Long monitorHierarchy) { + this.monitorHierarchy = monitorHierarchy; + } + + public Boolean getFlag() { + return flag; + } + + public void setFlag(Boolean flag) { + this.flag = flag; + } + + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public String getBuildName() { + return buildName; + } + + public void setBuildName(String buildName) { + this.buildName = buildName; + } + + public String getSubentryName() { + return subentryName; + } + + public void setSubentryName(String subentryName) { + this.subentryName = subentryName; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setMonitorAddr(String monitorAddr) + { + this.monitorAddr = monitorAddr; + } + + public String getMonitorAddr() + { + return monitorAddr; + } + public void setMonitorType(Long monitorType) + { + this.monitorType = monitorType; + } + + public Long getMonitorType() + { + return monitorType; + } + public void setMonitorStatus(Long monitorStatus) + { + this.monitorStatus = monitorStatus; + } + + public Long getMonitorStatus() + { + return monitorStatus; + } + public void setCollectDeviceId(String collectDeviceId) + { + this.collectDeviceId = collectDeviceId; + } + + public String getCollectDeviceId() + { + return collectDeviceId; + } + public void setGrade(Integer grade) + { + this.grade = grade; + } + + public Integer getGrade() + { + return grade; + } + public void setBuildId(String buildId) + { + this.buildId = buildId; + } + + public String getBuildId() + { + return buildId; + } + public void setSubentryId(String subentryId) + { + this.subentryId = subentryId; + } + + public String getSubentryId() + { + return subentryId; + } + public void setBusinessId(String businessId) + { + this.businessId = businessId; + } + + public String getBusinessId() + { + return businessId; + } + public void setMeterTypeId(String meterTypeId) + { + this.meterTypeId = meterTypeId; + } + + public String getMeterTypeId() + { + return meterTypeId; + } + public void setMeterId(String meterId) + { + this.meterId = meterId; + } + + public String getMeterId() + { + return meterId; + } + public void setCorrectValue(BigDecimal correctValue) + { + this.correctValue = correctValue; + } + + public BigDecimal getCorrectValue() + { + return correctValue; + } + public void setPt(Long pt) + { + this.pt = pt; + } + + public Long getPt() + { + return pt; + } + public void setCt(Long ct) + { + this.ct = ct; + } + + public Long getCt() + { + return ct; + } + public void setIsAmmeter(String isAmmeter) + { + this.isAmmeter = isAmmeter; + } + + public String getIsAmmeter() + { + return isAmmeter; + } + public void setIsKeyMonitor(Long isKeyMonitor) + { + this.isKeyMonitor = isKeyMonitor; + } + + public Long getIsKeyMonitor() + { + return isKeyMonitor; + } + public void setIsCircuit(Long isCircuit) + { + this.isCircuit = isCircuit; + } + + public Long getIsCircuit() + { + return isCircuit; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getBusinessName() { + return businessName; + } + + public void setBusinessName(String businessName) { + this.businessName = businessName; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public Integer getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(Integer publicShareType) { + this.publicShareType = publicShareType; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("parentId", getParentId()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("monitorAddr", getMonitorAddr()) + .append("monitorType", getMonitorType()) + .append("monitorStatus", getMonitorStatus()) + .append("collectDeviceId", getCollectDeviceId()) + .append("ancestors", getAncestors()) + .append("grade", getGrade()) + .append("buildId", getBuildId()) + .append("subentryId", getSubentryId()) + .append("businessId", getBusinessId()) + .append("meterTypeId", getMeterTypeId()) + .append("meterId", getMeterId()) + .append("correctValue", getCorrectValue()) + .append("pt", getPt()) + .append("ct", getCt()) + .append("isAmmeter", getIsAmmeter()) + .append("isKeyMonitor", getIsKeyMonitor()) + .append("isCircuit", getIsCircuit()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorPublic.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorPublic.java new file mode 100644 index 000000000..7a63355a4 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseMonitorPublic.java @@ -0,0 +1,61 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 公摊用户和具关系对象 base_monitor_public + * + * @author yangwl + * @date 2023-04-25 + */ +public class BaseMonitorPublic extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + @Excel(name = "") + private String monitorId; + + /** */ + @Excel(name = "") + private Long publicShareId; + private Integer publicShareType; + + public Integer getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(Integer publicShareType) { + this.publicShareType = publicShareType; + } + + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setPublicShareId(Long publicShareId) + { + this.publicShareId = publicShareId; + } + + public Long getPublicShareId() + { + return publicShareId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("monitorId", getMonitorId()) + .append("publicShareId", getPublicShareId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicManage.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicManage.java new file mode 100644 index 000000000..8cb9134a3 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicManage.java @@ -0,0 +1,166 @@ +package com.op.energy.base.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +import java.util.Date; +import java.util.List; + +/** + * 公摊管理对象 base_public_manage + * + * @author ruoyi + * @date 2023-04-27 + */ +public class BasePublicManage extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 公摊时间起 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "公摊时间起", width = 30, dateFormat = "yyyy-MM-dd") + private Date beginTime; + + /** 公摊时间止 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "公摊时间止", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 公摊类型 2:电 /3:水 */ + private String publicShareType; + + /** 公摊规则 */ + @Excel(name = "公摊规则") + private String publicShareRule; + + /** 公摊值 */ + @Excel(name = "公摊值") + private Long publicShareValue; + + /** */ + @Excel(name = "") + private String other1; + + /** */ + @Excel(name = "") + private String other2; + + /** + * 用户编号list + */ + private String ids; + + /** + * 公摊用户对象 + */ + private List basePublicUsers; + + public String getIds() { + return ids; + } + + public void setIds(String ids) { + this.ids = ids; + } + + public List getBasePublicUsers() { + return basePublicUsers; + } + + public void setBasePublicUsers(List basePublicUsers) { + this.basePublicUsers = basePublicUsers; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setPublicShareType(String publicShareType) + { + this.publicShareType = publicShareType; + } + + public String getPublicShareType() + { + return publicShareType; + } + public void setPublicShareRule(String publicShareRule) + { + this.publicShareRule = publicShareRule; + } + + public String getPublicShareRule() + { + return publicShareRule; + } + public void setPublicShareValue(Long publicShareValue) + { + this.publicShareValue = publicShareValue; + } + + public Long getPublicShareValue() + { + return publicShareValue; + } + public void setOther1(String other1) + { + this.other1 = other1; + } + + public String getOther1() + { + return other1; + } + public void setOther2(String other2) + { + this.other2 = other2; + } + + public String getOther2() + { + return other2; + } + + @Override + public String toString() { + return "BasePublicManage{" + + "id=" + id + + ", beginTime=" + beginTime + + ", endTime=" + endTime + + ", publicShareType='" + publicShareType + '\'' + + ", publicShareRule='" + publicShareRule + '\'' + + ", publicShareValue=" + publicShareValue + + ", other1='" + other1 + '\'' + + ", other2='" + other2 + '\'' + + ", ids='" + ids + '\'' + + ", basePublicUsers=" + basePublicUsers + + '}'; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUser.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUser.java new file mode 100644 index 000000000..0a8165086 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUser.java @@ -0,0 +1,176 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import com.op.energy.base.domain.vo.MonitorVo; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 公摊用户对象 base_public_user + * + * @author yangwl + * @date 2023-04-24 + */ +public class BasePublicUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 用户名称 */ + @Excel(name = "用户名称") + private String userName; + + /** 用户名称 */ + @Excel(name = "面积") + private float area; + + private String monitorId; + + private List monitors; + + private BigDecimal percentage; + + /** + * 用户表能耗 + */ + private BigDecimal userExpend; + + /** + * 公摊表能耗 + */ + private BigDecimal publicExpend; + + /** + * 表具对应比率 + */ + private BigDecimal monitorRate; + + /** + * 综合公摊对应比率 + */ + private BigDecimal publicRate; + + public BigDecimal getPublicRate() { + return publicRate; + } + + public void setPublicRate(BigDecimal publicRate) { + this.publicRate = publicRate; + } + + public BigDecimal getMonitorRate() { + return monitorRate; + } + + public void setMonitorRate(BigDecimal monitorRate) { + this.monitorRate = monitorRate; + } + + public BigDecimal getPublicExpend() { + return publicExpend; + } + + public void setPublicExpend(BigDecimal publicExpend) { + this.publicExpend = publicExpend; + } + + public BigDecimal getUserExpend() { + return userExpend; + } + + public void setUserExpend(BigDecimal userExpend) { + this.userExpend = userExpend; + } + + public BigDecimal getPercentage() { + return percentage; + } + + public void setPercentage(BigDecimal percentage) { + this.percentage = percentage; + } + + public List getMonitors() { + return monitors; + } + + public void setMonitors(List monitors) { + this.monitors = monitors; + } + + /** 表具组 */ + private String[] publicShareIds; + + /** 公摊表具组 */ + private String[] publicMonitorIds; + + public String[] getPublicMonitorIds() { + return publicMonitorIds; + } + + public void setPublicMonitorIds(String[] publicMonitorIds) { + this.publicMonitorIds = publicMonitorIds; + } + + public String[] getPublicShareIds() { + return publicShareIds; + } + + public String getMonitorId() { + return monitorId; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public void setPublicShareIds(String[] publicShareIds) { + this.publicShareIds = publicShareIds; + } + + public float getArea() { + return area; + } + + public void setArea(float area) { + this.area = area; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getUserName() + { + return userName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("userName", getUserName()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUserRecord.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUserRecord.java new file mode 100644 index 000000000..1f5172b7d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BasePublicUserRecord.java @@ -0,0 +1,252 @@ +package com.op.energy.base.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公摊用户数据记录对象 base_public_user_record + * + * @author YinQ + * @date 2023-06-25 + */ +public class BasePublicUserRecord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键标识 */ + private Long objid; + + /** 公摊编号 */ + @Excel(name = "公摊编号") + private String publicShareId; + + /** 公摊编号 */ + @Excel(name = "用户名称") + private String publicUserName; + + /** 用户编号 */ +// @Excel(name = "用户编号") + private Long publicUserId; + + /** 公摊表编号 */ + @Excel(name = "公摊表编号") + private String publicMonitorIds; + + /** 公摊开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "公摊开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 公摊结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "公摊结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 分摊比例 */ + @Excel(name = "分摊比例") + private BigDecimal allocationRatio; + + /** 公摊规则 */ + @Excel(name = "公摊规则") + private String publicShareRule; + + /** 需公摊能耗 */ + @Excel(name = "需公摊能耗") + private BigDecimal publicEnergyConsumption; + + /** 业主表能耗 */ + @Excel(name = "业主表能耗") + private BigDecimal ownerEnergyConsumption; + + /** 能源类型 */ + @Excel(name = "能源类型") + private Long energyType; + + /** 是否启用 */ + @Excel(name = "是否启用") + private Long delStatus; + + /** 创建人 */ + @Excel(name = "创建人") + private String createdBy; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createdTime; + + /** + * 能耗合计 + */ + @Excel(name = "能耗合计") + private BigDecimal sumEnergyConsumption; + + public BigDecimal getSumEnergyConsumption() { + return sumEnergyConsumption; + } + + public void setSumEnergyConsumption(BigDecimal sumEnergyConsumption) { + this.sumEnergyConsumption = sumEnergyConsumption; + } + + public String getPublicUserName() { + return publicUserName; + } + + public void setPublicUserName(String publicUserName) { + this.publicUserName = publicUserName; + } + + public String getPublicShareRule() { + return publicShareRule; + } + + public void setPublicShareRule(String publicShareRule) { + this.publicShareRule = publicShareRule; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setPublicShareId(String publicShareId) + { + this.publicShareId = publicShareId; + } + + public String getPublicShareId() + { + return publicShareId; + } + public void setPublicUserId(Long publicUserId) + { + this.publicUserId = publicUserId; + } + + public Long getPublicUserId() + { + return publicUserId; + } + public void setPublicMonitorIds(String publicMonitorIds) + { + this.publicMonitorIds = publicMonitorIds; + } + + public String getPublicMonitorIds() + { + return publicMonitorIds; + } + public void setStartTime(Date startTime) + { + this.startTime = startTime; + } + + public Date getStartTime() + { + return startTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setAllocationRatio(BigDecimal allocationRatio) + { + this.allocationRatio = allocationRatio; + } + + public BigDecimal getAllocationRatio() + { + return allocationRatio; + } + public void setPublicEnergyConsumption(BigDecimal publicEnergyConsumption) + { + this.publicEnergyConsumption = publicEnergyConsumption; + } + + public BigDecimal getPublicEnergyConsumption() + { + return publicEnergyConsumption; + } + public void setOwnerEnergyConsumption(BigDecimal ownerEnergyConsumption) + { + this.ownerEnergyConsumption = ownerEnergyConsumption; + } + + public BigDecimal getOwnerEnergyConsumption() + { + return ownerEnergyConsumption; + } + public void setEnergyType(Long energyType) + { + this.energyType = energyType; + } + + public Long getEnergyType() + { + return energyType; + } + public void setDelStatus(Long delStatus) + { + this.delStatus = delStatus; + } + + public Long getDelStatus() + { + return delStatus; + } + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + public String getCreatedBy() + { + return createdBy; + } + public void setCreatedTime(Date createdTime) + { + this.createdTime = createdTime; + } + + public Date getCreatedTime() + { + return createdTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("publicShareId", getPublicShareId()) + .append("publicUserId", getPublicUserId()) + .append("publicMonitorIds", getPublicMonitorIds()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("allocationRatio", getAllocationRatio()) + .append("publicEnergyConsumption", getPublicEnergyConsumption()) + .append("ownerEnergyConsumption", getOwnerEnergyConsumption()) + .append("energyType", getEnergyType()) + .append("delStatus", getDelStatus()) + .append("createdBy", getCreatedBy()) + .append("createdTime", getCreatedTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseSubentryType.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseSubentryType.java new file mode 100644 index 000000000..19cec333c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseSubentryType.java @@ -0,0 +1,146 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.ArrayList; +import java.util.List; + +/** + * 分项类型管理对象 base_subentry_type + * + * @author YinQ + * @date 2023-05-06 + */ +public class BaseSubentryType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 编号 */ + private Long objid; + /** 父级编号 */ + @Excel(name = "父级编号") + private Long parentId; + /** 祖级列表 */ + @Excel(name = "祖级列表") + private String ancestors; + /** 子菜单 */ + private List children = new ArrayList(); + /** 分项类型编号 */ + @Excel(name = "分项类型编号") + private String subentryId; + + /** 分项类型名称 */ + @Excel(name = "分项类型名称") + private String subentryName; + + /** 状态 */ + @Excel(name = "状态") + private Long subentryStatus; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setSubentryId(String subentryId) + { + this.subentryId = subentryId; + } + + public String getSubentryId() + { + return subentryId; + } + public void setSubentryName(String subentryName) + { + this.subentryName = subentryName; + } + + public String getSubentryName() + { + return subentryName; + } + public void setSubentryStatus(Long subentryStatus) + { + this.subentryStatus = subentryStatus; + } + + public Long getSubentryStatus() + { + return subentryStatus; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("parentId", getParentId()) + .append("subentryId", getSubentryId()) + .append("subentryName", getSubentryName()) + .append("subentryStatus", getSubentryStatus()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTree.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTree.java new file mode 100644 index 000000000..37aca9ece --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTree.java @@ -0,0 +1,117 @@ +package com.op.energy.base.domain; + +import java.io.Serializable; + +/** + * Ztree树结构实体类 + * + * @author ruoyi + */ +public class BaseTree implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Long id; + + /** 节点父ID */ + private Long pId; + + /** 节点名称 */ + private String name; + + /** 节点标题 */ + private String title; + + /** 计量设备编号 */ + private String monitorId; + + + /** 是否勾选 */ + private boolean checked = false; + + /** 是否展开 */ + private boolean open = false; + + /** 是否能勾选 */ + private boolean nocheck = false; + + public String getMonitorId() { + return monitorId; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public Long getId() + { + return id; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getpId() + { + return pId; + } + + public void setpId(Long pId) + { + this.pId = pId; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public boolean isChecked() + { + return checked; + } + + public void setChecked(boolean checked) + { + this.checked = checked; + } + + public boolean isOpen() + { + return open; + } + + public void setOpen(boolean open) + { + this.open = open; + } + + public boolean isNocheck() + { + return nocheck; + } + + public void setNocheck(boolean nocheck) + { + this.nocheck = nocheck; + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTypeRelation.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTypeRelation.java new file mode 100644 index 000000000..bb03d6e1c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseTypeRelation.java @@ -0,0 +1,176 @@ +package com.op.energy.base.domain; + + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 计量与类型对应关系对象 base_type_relation + * + * @author YinQ + * @date 2023-04-07 + */ +public class BaseTypeRelation extends BaseEntity +{ + + private static final long serialVersionUID = 1L; + + /** + * 自增标识 + */ + private Long objid; + + + /** + * 类型 + */ + @Excel(name = "类型") + private Long type; + + /** + * 统计单元名称 + */ + @Excel(name = "类型对应名称") + private String unitName; + + /** + * 类型对应关系 + */ +// @Excel(name = "类型对应关系") + private Long relationId; + + /** + * 类型对应关系List + */ + private List relationIdList; + + /** + * 计量设备编号 + */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** + * 计量设备名称 + */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** + * 能源类型 + */ + @Excel(name = "能源类型") + private Long monitorType; + + /** + * 比率 + */ + @Excel(name = "比率") + private BigDecimal rate; + + /** + * 计算方式 + */ + @Excel(name = "计算方式") + private Integer formulaMode; + + public List getRelationIdList() { + return relationIdList; + } + + public void setRelationIdList(List relationIdList) { + this.relationIdList = relationIdList; + } + + public BigDecimal getRate() { + return rate; + } + + public void setRate(BigDecimal rate) { + this.rate = rate; + } + + public Integer getFormulaMode() { + return formulaMode; + } + + public void setFormulaMode(Integer formulaMode) { + this.formulaMode = formulaMode; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public Long getMonitorType() { + return monitorType; + } + + public void setMonitorType(Long monitorType) { + this.monitorType = monitorType; + } + + public void setObjid(Long objid) { + this.objid = objid; + } + + public Long getObjid() { + return objid; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public String getMonitorId() { + return monitorId; + } + + public void setType(Long type) { + this.type = type; + } + + public Long getType() { + return type; + } + + public void setRelationId(Long relationId) { + this.relationId = relationId; + } + + public Long getRelationId() { + return relationId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("type", getType()) + .append("relationId", getRelationId()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseWaterThreshold.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseWaterThreshold.java new file mode 100644 index 000000000..8719501ad --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/BaseWaterThreshold.java @@ -0,0 +1,188 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 水阈值信息对象 base_water_threshold + * + * @author sf + * @date 2023-04-20 + */ +public class BaseWaterThreshold extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 自增标识 + */ + private Long objid; + + /** + * 计量设备编号 + */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** + * 计量设备名称 + */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** + * 最大瞬时流量 + */ + @Excel(name = "最大瞬时流量") + private BigDecimal maxTraffic; + + /** + * 最小瞬时流量 + */ + @Excel(name = "最小瞬时流量") + private BigDecimal minTraffic; + + /** + * 小时耗量 + */ + @Excel(name = "小时耗量") + private BigDecimal hourConsumption; + + /** + * 天耗量 + */ + @Excel(name = "天耗量") + private BigDecimal dayConsumption; + + /** + * 线损率(%) + */ + @Excel(name = "线损率(%)") + private BigDecimal lineLossRate; + + /** + * 阈值状态 + */ + @Excel(name = "阈值状态") + private Long thresholdStatus; + + /** + * 权限标识(部门) + */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** + * 权限标识(用户) + */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public BigDecimal getMaxTraffic() { + return maxTraffic; + } + + public void setMaxTraffic(BigDecimal maxTraffic) { + this.maxTraffic = maxTraffic; + } + + public BigDecimal getMinTraffic() { + return minTraffic; + } + + public void setMinTraffic(BigDecimal minTraffic) { + this.minTraffic = minTraffic; + } + + public BigDecimal getHourConsumption() { + return hourConsumption; + } + + public void setHourConsumption(BigDecimal hourConsumption) { + this.hourConsumption = hourConsumption; + } + + public BigDecimal getDayConsumption() { + return dayConsumption; + } + + public void setDayConsumption(BigDecimal dayConsumption) { + this.dayConsumption = dayConsumption; + } + + public void setObjid(Long objid) { + this.objid = objid; + } + + public Long getObjid() { + return objid; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public String getMonitorId() { + return monitorId; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + public String getMonitorName() { + return monitorName; + } + + public void setLineLossRate(BigDecimal lineLossRate) { + this.lineLossRate = lineLossRate; + } + + public BigDecimal getLineLossRate() { + return lineLossRate; + } + + public void setThresholdStatus(Long thresholdStatus) { + this.thresholdStatus = thresholdStatus; + } + + public Long getThresholdStatus() { + return thresholdStatus; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getDeptId() { + return deptId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getUserId() { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("lineLossRate", getLineLossRate()) + .append("thresholdStatus", getThresholdStatus()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/CbsMonitorReport.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/CbsMonitorReport.java new file mode 100644 index 000000000..1b2ccecac --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/CbsMonitorReport.java @@ -0,0 +1,280 @@ +package com.op.energy.base.domain; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * CBS抄报对象 cbs_monitor_report + * + * @author YinQ + * @date 2023-10-20 + */ +public class CbsMonitorReport extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objId; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备类型(2-电,3-水) */ + @Excel(name = "计量设备类型", readConverterExp = "2=-电,3-水") + private String monitorType; + + /** 表具类型(0-公共,1-单元,2-无) */ + @Excel(name = "表具类型", readConverterExp = "0=-公共,1-单元,2-无") + private String publicShareType; + + /** CBS房间编号 */ + @Excel(name = "CBS房间编号") + private String roomCode; + + /** CBS房间名称 */ + @Excel(name = "CBS房间名称") + private String roomName; + + /** CBS物理编号 */ + @Excel(name = "CBS物理编号") + private String physicalCode; + + /** 装表位置 */ + @Excel(name = "装表位置") + private String loadingPosition; + + /** 对应CBS楼栋编号 */ + @Excel(name = "对应CBS楼栋编号") + @JSONField(serialize = false) + private String buildCode; + + /** 对应CBS楼栋名称 */ + @Excel(name = "对应CBS楼栋名称") + private String buildName; + + /** 是否绑定 */ + @Excel(name = "是否绑定") + private String isBind; + + /** 上次抄表时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "上次抄表时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date lastMonitorTime; + + /** 上次抄表读数 */ + @Excel(name = "上次抄表读数") + private BigDecimal lastMonitorExpend; + + /** 本次抄表时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "本次抄表时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date thisMonitorTime; + + /** 本次抄表读数 */ + @Excel(name = "本次抄表读数") + private BigDecimal thisMonitorExpend; + + /** 上次抄表成功标识(0-成功,1-失败) */ + @Excel(name = "上次抄表成功标识", readConverterExp = "0=-成功,1-失败") + private String lastFlag; + + /** 本次抄表成功标识(0-成功,1-失败) */ + @Excel(name = "本次抄表成功标识", readConverterExp = "0=-成功,1-失败") + private String thisFlag; + + public String getLoadingPosition() { + return loadingPosition; + } + + public void setLoadingPosition(String loadingPosition) { + this.loadingPosition = loadingPosition; + } + + public String getPhysicalCode() { + return physicalCode; + } + + public void setPhysicalCode(String physicalCode) { + this.physicalCode = physicalCode; + } + + public void setObjId(Long objId) + { + this.objId = objId; + } + + public Long getObjId() + { + return objId; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setMonitorType(String monitorType) + { + this.monitorType = monitorType; + } + + public String getMonitorType() + { + return monitorType; + } + public void setPublicShareType(String publicShareType) + { + this.publicShareType = publicShareType; + } + + public String getPublicShareType() + { + return publicShareType; + } + public void setRoomCode(String roomCode) + { + this.roomCode = roomCode; + } + + public String getRoomCode() + { + return roomCode; + } + public void setRoomName(String roomName) + { + this.roomName = roomName; + } + + public String getRoomName() + { + return roomName; + } + public void setBuildCode(String buildCode) + { + this.buildCode = buildCode; + } + + public String getBuildCode() + { + return buildCode; + } + public void setBuildName(String buildName) + { + this.buildName = buildName; + } + + public String getBuildName() + { + return buildName; + } + public void setIsBind(String isBind) + { + this.isBind = isBind; + } + + public String getIsBind() + { + return isBind; + } + public void setLastMonitorTime(Date lastMonitorTime) + { + this.lastMonitorTime = lastMonitorTime; + } + + public Date getLastMonitorTime() + { + return lastMonitorTime; + } + public void setLastMonitorExpend(BigDecimal lastMonitorExpend) + { + this.lastMonitorExpend = lastMonitorExpend; + } + + public BigDecimal getLastMonitorExpend() + { + return lastMonitorExpend; + } + public void setThisMonitorTime(Date thisMonitorTime) + { + this.thisMonitorTime = thisMonitorTime; + } + + public Date getThisMonitorTime() + { + return thisMonitorTime; + } + public void setThisMonitorExpend(BigDecimal thisMonitorExpend) + { + this.thisMonitorExpend = thisMonitorExpend; + } + + public BigDecimal getThisMonitorExpend() + { + return thisMonitorExpend; + } + public void setLastFlag(String lastFlag) + { + this.lastFlag = lastFlag; + } + + public String getLastFlag() + { + return lastFlag; + } + public void setThisFlag(String thisFlag) + { + this.thisFlag = thisFlag; + } + + public String getThisFlag() + { + return thisFlag; + } + + + @Override + public String toString() { + return "CbsMonitorReport{" + + "objId=" + objId + + ", monitorId='" + monitorId + '\'' + + ", monitorName='" + monitorName + '\'' + + ", monitorType='" + monitorType + '\'' + + ", publicShareType='" + publicShareType + '\'' + + ", roomCode='" + roomCode + '\'' + + ", roomName='" + roomName + '\'' + + ", physicalCode='" + physicalCode + '\'' + + ", loadingPosition='" + loadingPosition + '\'' + + ", buildCode='" + buildCode + '\'' + + ", buildName='" + buildName + '\'' + + ", isBind='" + isBind + '\'' + + ", lastMonitorTime=" + lastMonitorTime + + ", lastMonitorExpend=" + lastMonitorExpend + + ", thisMonitorTime=" + thisMonitorTime + + ", thisMonitorExpend=" + thisMonitorExpend + + ", lastFlag='" + lastFlag + '\'' + + ", thisFlag='" + thisFlag + '\'' + + '}'; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysConfig.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysConfig.java new file mode 100644 index 000000000..35c3de7c5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysConfig.java @@ -0,0 +1,95 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.annotation.Excel.ColumnType; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * 参数配置表 sys_config + * + * @author sf + */ +public class SysConfig extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 参数主键 */ + @Excel(name = "参数主键", cellType = ColumnType.NUMERIC) + private Long configId; + + /** 参数名称 */ + @Excel(name = "参数名称") + private String configName; + + /** 参数键名 */ + @Excel(name = "参数键名") + private String configKey; + + /** 参数键值 */ + @Excel(name = "参数键值") + private String configValue; + + /** 系统内置(Y是 N否) */ + @Excel(name = "系统内置", readConverterExp = "Y=是,N=否") + private String configType; + + public Long getConfigId() { + return configId; + } + + public void setConfigId(Long configId) { + this.configId = configId; + } + + @NotBlank(message = "参数名称不能为空") + @Size(min = 0, max = 100, message = "参数名称不能超过100个字符") + public String getConfigName() { + return configName; + } + + public void setConfigName(String configName) { + this.configName = configName; + } + + @NotBlank(message = "参数键名长度不能为空") + @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") + public String getConfigKey() { + return configKey; + } + + public void setConfigKey(String configKey) { + this.configKey = configKey; + } + + @NotBlank(message = "参数键值不能为空") + @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") + public String getConfigValue() { + return configValue; + } + + public void setConfigValue(String configValue) { + this.configValue = configValue; + } + + public String getConfigType() { + return configType; + } + + public void setConfigType(String configType) { + this.configType = configType; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("configId", getConfigId()) + .append("configName", getConfigName()).append("configKey", getConfigKey()) + .append("configValue", getConfigValue()).append("configType", getConfigType()) + .append("createBy", getCreateBy()).append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysDatasource.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysDatasource.java new file mode 100644 index 000000000..3ef117caf --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/SysDatasource.java @@ -0,0 +1,168 @@ +package com.op.energy.base.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 园区数据库对象 sys_datasource + * + * @author sf + * @date 2023-04-20 + */ +public class SysDatasource extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户ID */ + private String id; + + /** 地址 */ + @Excel(name = "地址") + private String url; + + /** 用户名 */ + @Excel(name = "用户名") + private String userName; + + /** 密码 */ + @Excel(name = "密码") + private String password; + + /** 驱动 */ + @Excel(name = "驱动") + private String driveClassName; + + /** 数据源标识 */ + @Excel(name = "数据源标识") + private String poolName; + private String parkName; + + /** 帐号状态(0正常 */ + @Excel(name = "帐号状态", readConverterExp = "帐号状态(0正常") + private String status; + + /** 删除标志(0代表存在 */ + private String delFlag; + + private String cbsParkCode; + + private String cbsParkName; + + public String getCbsParkCode() { + return cbsParkCode; + } + + public void setCbsParkCode(String cbsParkCode) { + this.cbsParkCode = cbsParkCode; + } + + public String getCbsParkName() { + return cbsParkName; + } + + public void setCbsParkName(String cbsParkName) { + this.cbsParkName = cbsParkName; + } + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setUrl(String url) + { + this.url = url; + } + + public String getUrl() + { + return url; + } + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getUserName() + { + return userName; + } + public void setPassword(String password) + { + this.password = password; + } + + public String getPassword() + { + return password; + } + public void setDriveClassName(String driveClassName) + { + this.driveClassName = driveClassName; + } + + public String getDriveClassName() + { + return driveClassName; + } + public void setPoolName(String poolName) + { + this.poolName = poolName; + } + + public String getPoolName() + { + return poolName; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getDelFlag() + { + return delFlag; + } + + public String getParkName() { + return parkName; + } + + public void setParkName(String parkName) { + this.parkName = parkName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("url", getUrl()) + .append("userName", getUserName()) + .append("password", getPassword()) + .append("driveClassName", getDriveClassName()) + .append("poolName", getPoolName()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/Ztree.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/Ztree.java new file mode 100644 index 000000000..e493c7a72 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/Ztree.java @@ -0,0 +1,104 @@ +package com.op.energy.base.domain; + +import java.io.Serializable; + +/** + * Ztree树结构实体类 + * + * @author ruoyi + */ +public class Ztree implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Long id; + + /** 节点父ID */ + private Long pId; + + /** 节点名称 */ + private String name; + + /** 节点标题 */ + private String title; + + /** 是否勾选 */ + private boolean checked = false; + + /** 是否展开 */ + private boolean open = false; + + /** 是否能勾选 */ + private boolean nocheck = false; + + public Long getId() + { + return id; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getpId() + { + return pId; + } + + public void setpId(Long pId) + { + this.pId = pId; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public boolean isChecked() + { + return checked; + } + + public void setChecked(boolean checked) + { + this.checked = checked; + } + + public boolean isOpen() + { + return open; + } + + public void setOpen(boolean open) + { + this.open = open; + } + + public boolean isNocheck() + { + return nocheck; + } + + public void setNocheck(boolean nocheck) + { + this.nocheck = nocheck; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/CbsMonitorReportVo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/CbsMonitorReportVo.java new file mode 100644 index 000000000..ce334f853 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/CbsMonitorReportVo.java @@ -0,0 +1,151 @@ +package com.op.energy.base.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * CBS抄报对象 cbs_monitor_report + * + * @author YinQ + * @date 2023-10-20 + */ +public class CbsMonitorReportVo +{ + private static final long serialVersionUID = 1L; + + + /** CBS房间编号 */ + private String roomCode; + + /** CBS房间名称 */ + private String roomName; + + /** CBS物理编号 */ + private String physicalCode; + + /** 装表位置 */ + private String loadingPosition; + + + /** 计量设备类型(水表,电表) */ + private String monitorType; + + /** 表具类型(公共,单元,无) */ + private String publicShareType; + + /** 上次抄表时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date lastMonitorTime; + + /** 上次抄表读数 */ + @Excel(name = "上次抄表读数") + private BigDecimal lastMonitorExpend; + + /** 本次抄表时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date thisMonitorTime; + + /** 本次抄表读数 */ + @Excel(name = "本次抄表读数") + private BigDecimal thisMonitorExpend; + + + public String getRoomCode() { + return roomCode; + } + + public void setRoomCode(String roomCode) { + this.roomCode = roomCode; + } + + public String getRoomName() { + return roomName; + } + + public void setRoomName(String roomName) { + this.roomName = roomName; + } + + public String getPhysicalCode() { + return physicalCode; + } + + public void setPhysicalCode(String physicalCode) { + this.physicalCode = physicalCode; + } + + public String getLoadingPosition() { + return loadingPosition; + } + + public void setLoadingPosition(String loadingPosition) { + this.loadingPosition = loadingPosition; + } + + public String getMonitorType() { + return monitorType; + } + + public void setMonitorType(String monitorType) { + this.monitorType = monitorType; + } + + public String getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(String publicShareType) { + this.publicShareType = publicShareType; + } + + public Date getLastMonitorTime() { + return lastMonitorTime; + } + + public void setLastMonitorTime(Date lastMonitorTime) { + this.lastMonitorTime = lastMonitorTime; + } + + public BigDecimal getLastMonitorExpend() { + return lastMonitorExpend; + } + + public void setLastMonitorExpend(BigDecimal lastMonitorExpend) { + this.lastMonitorExpend = lastMonitorExpend; + } + + public Date getThisMonitorTime() { + return thisMonitorTime; + } + + public void setThisMonitorTime(Date thisMonitorTime) { + this.thisMonitorTime = thisMonitorTime; + } + + public BigDecimal getThisMonitorExpend() { + return thisMonitorExpend; + } + + public void setThisMonitorExpend(BigDecimal thisMonitorExpend) { + this.thisMonitorExpend = thisMonitorExpend; + } + + @Override + public String toString() { + return "CbsMonitorReportVo{" + + "roomCode='" + roomCode + '\'' + + ", roomName='" + roomName + '\'' + + ", physicalCode='" + physicalCode + '\'' + + ", loadingPosition='" + loadingPosition + '\'' + + ", monitorType='" + monitorType + '\'' + + ", publicShareType='" + publicShareType + '\'' + + ", lastMonitorTime=" + lastMonitorTime + + ", lastMonitorExpend=" + lastMonitorExpend + + ", thisMonitorTime=" + thisMonitorTime + + ", thisMonitorExpend=" + thisMonitorExpend + + '}'; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MetaVo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MetaVo.java new file mode 100644 index 000000000..c4176dced --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MetaVo.java @@ -0,0 +1,91 @@ +package com.op.energy.base.domain.vo; + +import com.op.common.core.utils.StringUtils; + +/** + * 路由显示信息 + * + * @author sf + */ +public class MetaVo { + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + /** + * 设置为true,则不会被 缓存 + */ + private boolean noCache; + + /** + * 内链地址(http(s)://开头) + */ + private String link; + + public MetaVo() { + } + + public MetaVo(String title, String icon) { + this.title = title; + this.icon = icon; + } + + public MetaVo(String title, String icon, boolean noCache) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + } + + public MetaVo(String title, String icon, String link) { + this.title = title; + this.icon = icon; + this.link = link; + } + + public MetaVo(String title, String icon, boolean noCache, String link) { + this.title = title; + this.icon = icon; + this.noCache = noCache; + if (StringUtils.ishttp(link)) { + this.link = link; + } + } + + public boolean isNoCache() { + return noCache; + } + + public void setNoCache(boolean noCache) { + this.noCache = noCache; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getLink() { + return link; + } + + public void setLink(String link) { + this.link = link; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MonitorVo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MonitorVo.java new file mode 100644 index 000000000..cf35fcab5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/MonitorVo.java @@ -0,0 +1,78 @@ +package com.op.energy.base.domain.vo; + + +import java.math.BigDecimal; + +public class MonitorVo { + /** 计量设备编号 */ + private String monitorId; + /** 计量设备名称 */ + private String monitorName; + + /** 公摊表类型 */ + private Integer publicShareType; + + /** + * 计量设备类型 + */ + private Integer monitorType; + + /** + * 表耗量 + */ + private BigDecimal monitorExpend; + + + /** + * 用户表耗量比率 + */ + private BigDecimal monitorExpendRate; + + public BigDecimal getMonitorExpendRate() { + return monitorExpendRate; + } + + public void setMonitorExpendRate(BigDecimal monitorExpendRate) { + this.monitorExpendRate = monitorExpendRate; + } + + public Integer getMonitorType() { + return monitorType; + } + + public void setMonitorType(Integer monitorType) { + this.monitorType = monitorType; + } + + public BigDecimal getMonitorExpend() { + return monitorExpend; + } + + public void setMonitorExpend(BigDecimal monitorExpend) { + this.monitorExpend = monitorExpend; + } + + public Integer getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(Integer publicShareType) { + this.publicShareType = publicShareType; + } + + public String getMonitorId() { + return monitorId; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/PublicManageVo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/PublicManageVo.java new file mode 100644 index 000000000..0ee183081 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/PublicManageVo.java @@ -0,0 +1,56 @@ +package com.op.energy.base.domain.vo; + + +public class PublicManageVo { + private String ids; + /** + * 能源类型 + */ + private Long shareType; + /** + * 公摊规则 + */ + private Long shareRule; + private String startTime; + private String endTime; + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public String getIds() { + return ids; + } + + public void setIds(String ids) { + this.ids = ids; + } + + public Long getShareType() { + return shareType; + } + + public void setShareType(Long shareType) { + this.shareType = shareType; + } + + public Long getShareRule() { + return shareRule; + } + + public void setShareRule(Long shareRule) { + this.shareRule = shareRule; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/RouterVo.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/RouterVo.java new file mode 100644 index 000000000..5c22de478 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/RouterVo.java @@ -0,0 +1,130 @@ +package com.op.energy.base.domain.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.util.List; + +/** + * 路由配置信息 + * + * @author sf + */ +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class RouterVo { + /** + * 路由名字 + */ + private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + */ + private String redirect; + + /** + * 组件地址 + */ + private String component; + + /** + * 路由参数:如 {"id": 1, "name": "ry"} + */ + private String query; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public boolean getHidden() { + return hidden; + } + + public void setHidden(boolean hidden) { + this.hidden = hidden; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(String redirect) { + this.redirect = redirect; + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public Boolean getAlwaysShow() { + return alwaysShow; + } + + public void setAlwaysShow(Boolean alwaysShow) { + this.alwaysShow = alwaysShow; + } + + public MetaVo getMeta() { + return meta; + } + + public void setMeta(MetaVo meta) { + this.meta = meta; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/TreeSelect.java b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/TreeSelect.java new file mode 100644 index 000000000..aee933b5f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/domain/vo/TreeSelect.java @@ -0,0 +1,82 @@ +package com.op.energy.base.domain.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.BaseBusinessType; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseSubentryType; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Treeselect树结构实体类 + * + * @author sf + */ +public class TreeSelect implements Serializable { + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private String id; + + /** 节点名称 */ + private String label; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + public TreeSelect() { + + } + + public TreeSelect(BaseMonitorInfo baseMonitorInfo) { + this.id = baseMonitorInfo.getMonitorId(); + this.label = baseMonitorInfo.getMonitorName(); + this.children = baseMonitorInfo.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(BaseBuildInfo baseBuildInfo) { + this.id = baseBuildInfo.getObjid().toString(); + this.label = baseBuildInfo.getBuildName(); + this.children = baseBuildInfo.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(BaseSubentryType baseSubentryType) { + this.id = baseSubentryType.getObjid().toString(); + this.label = baseSubentryType.getSubentryName(); + this.children = baseSubentryType.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(BaseBusinessType baseBusinessType) { + this.id = baseBusinessType.getObjid().toString(); + this.label = baseBusinessType.getBusinessName(); + this.children = baseBusinessType.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBuildInfoMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBuildInfoMapper.java new file mode 100644 index 000000000..5fbff1846 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBuildInfoMapper.java @@ -0,0 +1,65 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseBuildInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +/** + * 建筑信息管理Mapper接口 + * + * @author YinQ + * @date 2023-05-05 + */ +@Mapper +public interface BaseBuildInfoMapper +{ + /** + * 查询建筑信息管理 + * + * @param objid 建筑信息管理主键 + * @return 建筑信息管理 + */ + public BaseBuildInfo selectBaseBuildInfoByObjid(Long objid); + + /** + * 查询建筑信息管理列表 + * + * @param baseBuildInfo 建筑信息管理 + * @return 建筑信息管理集合 + */ + public List selectBaseBuildInfoList(BaseBuildInfo baseBuildInfo); + + /** + * 新增建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + public int insertBaseBuildInfo(BaseBuildInfo baseBuildInfo); + + /** + * 修改建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + public int updateBaseBuildInfo(BaseBuildInfo baseBuildInfo); + + /** + * 删除建筑信息管理 + * + * @param objid 建筑信息管理主键 + * @return 结果 + */ + public int deleteBaseBuildInfoByObjid(Long objid); + + /** + * 批量删除建筑信息管理 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseBuildInfoByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBusinessTypeMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBusinessTypeMapper.java new file mode 100644 index 000000000..43b9d59a1 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseBusinessTypeMapper.java @@ -0,0 +1,65 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseBusinessType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +/** + * 业态类型管理Mapper接口 + * + * @author YinQ + * @date 2023-05-05 + */ +@Mapper +public interface BaseBusinessTypeMapper +{ + /** + * 查询业态类型管理 + * + * @param objid 业态类型管理主键 + * @return 业态类型管理 + */ + public BaseBusinessType selectBaseBusinessTypeByObjid(Long objid); + + /** + * 查询业态类型管理列表 + * + * @param baseBusinessType 业态类型管理 + * @return 业态类型管理集合 + */ + public List selectBaseBusinessTypeList(BaseBusinessType baseBusinessType); + + /** + * 新增业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + public int insertBaseBusinessType(BaseBusinessType baseBusinessType); + + /** + * 修改业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + public int updateBaseBusinessType(BaseBusinessType baseBusinessType); + + /** + * 删除业态类型管理 + * + * @param objid 业态类型管理主键 + * @return 结果 + */ + public int deleteBaseBusinessTypeByObjid(Long objid); + + /** + * 批量删除业态类型管理 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseBusinessTypeByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectCommunicateMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectCommunicateMapper.java new file mode 100644 index 000000000..e41470309 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectCommunicateMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseCollectCommunicate; + +import java.util.List; + +/** + * 集中器通讯信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface BaseCollectCommunicateMapper +{ + /** + * 查询集中器通讯信息 + * + * @param objid 集中器通讯信息主键 + * @return 集中器通讯信息 + */ + public BaseCollectCommunicate selectBaseCollectCommunicateByObjid(Long objid); + + /** + * 查询集中器通讯信息列表 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 集中器通讯信息集合 + */ + public List selectBaseCollectCommunicateList(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 新增集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + public int insertBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 修改集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + public int updateBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 删除集中器通讯信息 + * + * @param objid 集中器通讯信息主键 + * @return 结果 + */ + public int deleteBaseCollectCommunicateByObjid(Long objid); + + /** + * 批量删除集中器通讯信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseCollectCommunicateByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectDeviceInfoMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectDeviceInfoMapper.java new file mode 100644 index 000000000..43adbad7a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseCollectDeviceInfoMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseCollectDeviceInfo; + +import java.util.List; + +/** + * 采集设备信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface BaseCollectDeviceInfoMapper +{ + /** + * 查询采集设备信息 + * + * @param objid 采集设备信息主键 + * @return 采集设备信息 + */ + public BaseCollectDeviceInfo selectBaseCollectDeviceInfoByObjid(Long objid); + + /** + * 查询采集设备信息列表 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 采集设备信息集合 + */ + public List selectBaseCollectDeviceInfoList(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 新增采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + public int insertBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 修改采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + public int updateBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 删除采集设备信息 + * + * @param objid 采集设备信息主键 + * @return 结果 + */ + public int deleteBaseCollectDeviceInfoByObjid(Long objid); + + /** + * 批量删除采集设备信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseCollectDeviceInfoByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseDnbThresholdMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseDnbThresholdMapper.java new file mode 100644 index 000000000..e0f9f8d97 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseDnbThresholdMapper.java @@ -0,0 +1,64 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseDnbThreshold; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 电阈值信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +@Mapper +public interface BaseDnbThresholdMapper { + /** + * 查询电阈值信息 + * + * @param objid 电阈值信息主键 + * @return 电阈值信息 + */ + public BaseDnbThreshold selectBaseDnbThresholdByObjid(Long objid); + + /** + * 查询电阈值信息列表 + * + * @param baseDnbThreshold 电阈值信息 + * @return 电阈值信息集合 + */ + public List selectBaseDnbThresholdList(BaseDnbThreshold baseDnbThreshold); + + /** + * 新增电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + public int insertBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold); + + /** + * 修改电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + public int updateBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold); + + /** + * 删除电阈值信息 + * + * @param objid 电阈值信息主键 + * @return 结果 + */ + public int deleteBaseDnbThresholdByObjid(Long objid); + + /** + * 批量删除电阈值信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseDnbThresholdByObjids(Long[] objids); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseEnergyTypeMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseEnergyTypeMapper.java new file mode 100644 index 000000000..8246b1af5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseEnergyTypeMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseEnergyType; + +import java.util.List; + +/** + * 能源类型信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface BaseEnergyTypeMapper +{ + /** + * 查询能源类型信息 + * + * @param objid 能源类型信息主键 + * @return 能源类型信息 + */ + public BaseEnergyType selectBaseEnergyTypeByObjid(Long objid); + + /** + * 查询能源类型信息列表 + * + * @param baseEnergyType 能源类型信息 + * @return 能源类型信息集合 + */ + public List selectBaseEnergyTypeList(BaseEnergyType baseEnergyType); + + /** + * 新增能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + public int insertBaseEnergyType(BaseEnergyType baseEnergyType); + + /** + * 修改能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + public int updateBaseEnergyType(BaseEnergyType baseEnergyType); + + /** + * 删除能源类型信息 + * + * @param objid 能源类型信息主键 + * @return 结果 + */ + public int deleteBaseEnergyTypeByObjid(Long objid); + + /** + * 批量删除能源类型信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseEnergyTypeByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineLossMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineLossMapper.java new file mode 100644 index 000000000..6ae56fe42 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineLossMapper.java @@ -0,0 +1,72 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseLineLoss; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 线损对象信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +@Mapper +public interface BaseLineLossMapper +{ + /** + * 查询线损对象信息 + * + * @param objid 线损对象信息主键 + * @return 线损对象信息 + */ + public BaseLineLoss selectBaseLineLossByObjid(Long objid); + + /** + * 查询线损对象信息列表 + * + * @param baseLineLoss 线损对象信息 + * @return 线损对象信息集合 + */ + public List selectBaseLineLossList(BaseLineLoss baseLineLoss); + + /** + * 新增线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + public int insertBaseLineLoss(BaseLineLoss baseLineLoss); + + /** + * 修改线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + public int updateBaseLineLoss(BaseLineLoss baseLineLoss); + + /** + * 删除线损对象信息 + * + * @param objid 线损对象信息主键 + * @return 结果 + */ + public int deleteBaseLineLossByObjid(Long objid); + + /** + * 批量删除线损对象信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseLineLossByObjids(Long[] objids); + + /** + * 查询多路供电线损对象 + * + * @param baseLineLoss 线损对象信息 + * @return 线损对象信息集合 + */ + public List selectMultiplePowerSuppliesList(BaseLineLoss baseLineLoss); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineMonitorMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineMonitorMapper.java new file mode 100644 index 000000000..a3be24868 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseLineMonitorMapper.java @@ -0,0 +1,68 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.report.domain.ExportReport; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 线路计量信息Mapper接口 + * + * @author YinQ + * @date 2023-04-22 + */ +@Mapper +public interface BaseLineMonitorMapper { + /** + * 查询线路计量信息 + * + * @param objid 线路计量信息主键 + * @return 线路计量信息 + */ + public BaseLineMonitor selectBaseLineMonitorByObjid(Long objid); + + /** + * 查询线路计量信息列表 + * + * @param baseLineMonitor 线路计量信息 + * @return 线路计量信息集合 + */ + public List selectBaseLineMonitorList(BaseLineMonitor baseLineMonitor); + + /** + * 新增线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + public int insertBaseLineMonitor(BaseLineMonitor baseLineMonitor); + + /** + * 修改线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + public int updateBaseLineMonitor(BaseLineMonitor baseLineMonitor); + + /** + * 删除线路计量信息 + * + * @param objid 线路计量信息主键 + * @return 结果 + */ + public int deleteBaseLineMonitorByObjid(Long objid); + + /** + * 批量删除线路计量信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseLineMonitorByObjids(Long[] objids); + + BaseLineMonitor selectBaseLineMonitorByMonitorId(String monitorId); + + public List selectLevelLineMonitor(Long monitorType); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMeterInfoMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMeterInfoMapper.java new file mode 100644 index 000000000..1d136f524 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMeterInfoMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseMeterInfo; + +import java.util.List; + +/** + * 计量仪表信息Mapper接口 + * + * @author YinQ + * @date 2023-03-31 + */ +public interface BaseMeterInfoMapper +{ + /** + * 查询计量仪表信息 + * + * @param objid 计量仪表信息主键 + * @return 计量仪表信息 + */ + public BaseMeterInfo selectBaseMeterInfoByObjid(Long objid); + + /** + * 查询计量仪表信息列表 + * + * @param baseMeterInfo 计量仪表信息 + * @return 计量仪表信息集合 + */ + public List selectBaseMeterInfoList(BaseMeterInfo baseMeterInfo); + + /** + * 新增计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + public int insertBaseMeterInfo(BaseMeterInfo baseMeterInfo); + + /** + * 修改计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + public int updateBaseMeterInfo(BaseMeterInfo baseMeterInfo); + + /** + * 删除计量仪表信息 + * + * @param objid 计量仪表信息主键 + * @return 结果 + */ + public int deleteBaseMeterInfoByObjid(Long objid); + + /** + * 批量删除计量仪表信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseMeterInfoByObjids(String[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfo1Mapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfo1Mapper.java new file mode 100644 index 000000000..fcdaa53dc --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfo1Mapper.java @@ -0,0 +1,79 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseMonitorInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + * 计量设备信息Mapper接口 + * + * @author sf + * @date 2023-05-05 + */ +@Mapper +public interface BaseMonitorInfo1Mapper +{ + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid); + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息集合 + */ + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo); + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 删除计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjid(Long objid); + + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjids(Long[] objids); + + /** + * 插入校验MonitorId是否合法 + * @param baseMonitor + * @return + */ + public List checkMonitorIdLegal(BaseMonitorInfo baseMonitor); + + List selectChildrenMonitorById(String monitorId); + + void updateMonitorChildren(@Param("monitor") List children); + + BaseMonitorInfo selectBaseMonitorInfoByMonitorId(String monitorId); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfoMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfoMapper.java new file mode 100644 index 000000000..0bacb7b6d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorInfoMapper.java @@ -0,0 +1,84 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseMonitorInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 计量设备信息Mapper接口 + * + * @author YinQ + * @date 2023-04-06 + */ +@Mapper +public interface BaseMonitorInfoMapper +{ + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid); + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息集合 + */ + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo); + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 删除计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjid(Long objid); + + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjids(String[] objids); + + /** + * 插入校验MonitorId是否合法 + * @param baseMonitor + * @return + */ + public List checkMonitorIdLegal(BaseMonitorInfo baseMonitor); + + + List selectChildrenMonitorById(String monitorId); + + BaseMonitorInfo selectBaseMonitorInfoByMonitorId(String monitorId); + + void updateMonitorChildren(@Param("monitor") List children); + + List selectMonitorList(BaseMonitorInfo baseMonitorInfo); + + List monitorLedgerList(BaseMonitorInfo baseMonitorInfo); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorPublicMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorPublicMapper.java new file mode 100644 index 000000000..7d4442d6a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseMonitorPublicMapper.java @@ -0,0 +1,67 @@ +package com.op.energy.base.mapper; + + +import com.op.energy.base.domain.BaseMonitorPublic; + +import java.util.List; + +/** + * 公摊用户和具关系Mapper接口 + * + * @author yangwl + * @date 2023-04-25 + */ +public interface BaseMonitorPublicMapper +{ + /** + * 查询公摊用户和具关系 + * + * @param monitorId 公摊用户和具关系主键 + * @return 公摊用户和具关系 + */ + public BaseMonitorPublic selectBaseMonitorPublicByMonitorId(String monitorId); + + /** + * 查询公摊用户和具关系列表 + * + * @param baseMonitorPublic 公摊用户和具关系 + * @return 公摊用户和具关系集合 + */ + public List selectBaseMonitorPublicList(BaseMonitorPublic baseMonitorPublic); + + /** + * 新增公摊用户和具关系 + * + * @param baseMonitorPublic 公摊用户和具关系 + * @return 结果 + */ + public int insertBaseMonitorPublic(BaseMonitorPublic baseMonitorPublic); + + /** + * 修改公摊用户和具关系 + * + * @param baseMonitorPublic 公摊用户和具关系 + * @return 结果 + */ + public int updateBaseMonitorPublic(BaseMonitorPublic baseMonitorPublic); + + /** + * 删除公摊用户和具关系 + * + * @param monitorId 公摊用户和具关系主键 + * @return 结果 + */ + public int deleteBaseMonitorPublicByMonitorId(String monitorId); + + public int deleteBaseMonitorPublicById(Long id); + + /** + * 批量删除公摊用户和具关系 + * + * @param monitorIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseMonitorPublicByMonitorIds(String[] monitorIds); + + public int batchMonitorPublic(List list); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicManageMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicManageMapper.java new file mode 100644 index 000000000..5794bd031 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicManageMapper.java @@ -0,0 +1,64 @@ +package com.op.energy.base.mapper; + + +import com.op.energy.base.domain.BasePublicManage; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 公摊管理Mapper接口 + * + * @author ruoyi + * @date 2023-04-27 + */ +@Mapper +public interface BasePublicManageMapper { + /** + * 查询公摊管理 + * + * @param id 公摊管理主键 + * @return 公摊管理 + */ + public BasePublicManage selectBasePublicManageById(Long id); + + /** + * 查询公摊管理列表 + * + * @param basePublicManage 公摊管理 + * @return 公摊管理集合 + */ + public List selectBasePublicManageList(BasePublicManage basePublicManage); + + /** + * 新增公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + public int insertBasePublicManage(BasePublicManage basePublicManage); + + /** + * 修改公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + public int updateBasePublicManage(BasePublicManage basePublicManage); + + /** + * 删除公摊管理 + * + * @param id 公摊管理主键 + * @return 结果 + */ + public int deleteBasePublicManageById(Long id); + + /** + * 批量删除公摊管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBasePublicManageByIds(String[] ids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserMapper.java new file mode 100644 index 000000000..c6deeb036 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserMapper.java @@ -0,0 +1,76 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.vo.MonitorVo; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 公摊用户Mapper接口 + * + * @author yangwl + * @date 2023-04-24 + */ +public interface BasePublicUserMapper +{ + /** + * 查询公摊用户 + * + * @param id 公摊用户主键 + * @return 公摊用户 + */ + public BasePublicUser selectBasePublicUserById(Long id); + + /** + * 查询公摊用户列表 + * + * @param basePublicUser 公摊用户 + * @return 公摊用户集合 + */ + public List selectBasePublicUserList(BasePublicUser basePublicUser); + + /** + * 新增公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + public int insertBasePublicUser(BasePublicUser basePublicUser); + + /** + * 修改公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + public int updateBasePublicUser(BasePublicUser basePublicUser); + + /** + * 删除公摊用户 + * + * @param id 公摊用户主键 + * @return 结果 + */ + public int deleteBasePublicUserById(Long id); + + /** + * 批量删除公摊用户 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBasePublicUserByIds(String[] ids); + + List selectlistChild(Long id); + + List selectPublicUserList(String[] ids); + + List selectDistinctPublicMonitor(@Param("ids") String[] ids); + + BigDecimal queryPublicMonitorDnbExpend(@Param("ids") String[] ids, @Param("startTime")String startTime, @Param("endTime")String endTime); + + BigDecimal queryPublicMonitorWaterExpend(@Param("ids") String[] ids, @Param("startTime")String startTime, @Param("endTime")String endTime); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserRecordMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserRecordMapper.java new file mode 100644 index 000000000..733fd9c69 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BasePublicUserRecordMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BasePublicUserRecord; + +import java.util.List; + +/** + * 公摊用户数据记录Mapper接口 + * + * @author YinQ + * @date 2023-06-25 + */ +public interface BasePublicUserRecordMapper +{ + /** + * 查询公摊用户数据记录 + * + * @param objid 公摊用户数据记录主键 + * @return 公摊用户数据记录 + */ + public BasePublicUserRecord selectBasePublicUserRecordByObjid(Long objid); + + /** + * 查询公摊用户数据记录列表 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 公摊用户数据记录集合 + */ + public List selectBasePublicUserRecordList(BasePublicUserRecord basePublicUserRecord); + + /** + * 新增公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + public int insertBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord); + + /** + * 修改公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + public int updateBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord); + + /** + * 删除公摊用户数据记录 + * + * @param objid 公摊用户数据记录主键 + * @return 结果 + */ + public int deleteBasePublicUserRecordByObjid(Long objid); + + /** + * 批量删除公摊用户数据记录 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBasePublicUserRecordByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseSubentryTypeMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseSubentryTypeMapper.java new file mode 100644 index 000000000..f776c424b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseSubentryTypeMapper.java @@ -0,0 +1,68 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.domain.BaseSubentryType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +/** + * 分项类型管理Mapper接口 + * + * @author YinQ + * @date 2023-05-06 + */ +@Mapper +public interface BaseSubentryTypeMapper +{ + /** + * 查询分项类型管理 + * + * @param objid 分项类型管理主键 + * @return 分项类型管理 + */ + public BaseSubentryType selectBaseSubentryTypeByObjid(Long objid); + + /** + * 查询分项类型管理列表 + * + * @param baseSubentryType 分项类型管理 + * @return 分项类型管理集合 + */ + public List selectBaseSubentryTypeList(BaseSubentryType baseSubentryType); + + /** + * 新增分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + public int insertBaseSubentryType(BaseSubentryType baseSubentryType); + + /** + * 修改分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + public int updateBaseSubentryType(BaseSubentryType baseSubentryType); + + /** + * 删除分项类型管理 + * + * @param objid 分项类型管理主键 + * @return 结果 + */ + public int deleteBaseSubentryTypeByObjid(Long objid); + + /** + * 批量删除分项类型管理 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseSubentryTypeByObjids(Long[] objids); + + void insertBaseLineLoss(BaseLineLoss baseLineLoss); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseTypeRelationMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseTypeRelationMapper.java new file mode 100644 index 000000000..226d4e9d6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseTypeRelationMapper.java @@ -0,0 +1,74 @@ +package com.op.energy.base.mapper; + + + +import com.op.energy.base.domain.BaseTypeRelation; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 计量与类型对应关系Mapper接口 + * + * @author YinQ + * @date 2023-04-07 + */ +@Mapper +public interface BaseTypeRelationMapper +{ + /** + * 查询计量与类型对应关系 + * + * @param objid 计量与类型对应关系主键 + * @return 计量与类型对应关系 + */ + public BaseTypeRelation selectBaseTypeRelationByObjid(Long objid); + + /** + * 查询计量与类型对应关系列表 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 计量与类型对应关系集合 + */ + public List selectBaseTypeRelationList(BaseTypeRelation baseTypeRelation); + + /** + * 仅查询查询园区下一级计量与类型对应关系列表 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 计量与类型对应关系集合 + */ + public List selectFirstOrderTypeRelationList(BaseTypeRelation baseTypeRelation); + + /** + * 新增计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + public int insertBaseTypeRelation(BaseTypeRelation baseTypeRelation); + + /** + * 修改计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + public int updateBaseTypeRelation(BaseTypeRelation baseTypeRelation); + + /** + * 删除计量与类型对应关系 + * + * @param objid 计量与类型对应关系主键 + * @return 结果 + */ + public int deleteBaseTypeRelationByObjid(Long objid); + + /** + * 批量删除计量与类型对应关系 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseTypeRelationByObjids(String[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseWaterThresholdMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseWaterThresholdMapper.java new file mode 100644 index 000000000..a60cf237c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/BaseWaterThresholdMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.BaseWaterThreshold; + +import java.util.List; + +/** + * 水阈值信息Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface BaseWaterThresholdMapper +{ + /** + * 查询水阈值信息 + * + * @param objid 水阈值信息主键 + * @return 水阈值信息 + */ + public BaseWaterThreshold selectBaseWaterThresholdByObjid(Long objid); + + /** + * 查询水阈值信息列表 + * + * @param baseWaterThreshold 水阈值信息 + * @return 水阈值信息集合 + */ + public List selectBaseWaterThresholdList(BaseWaterThreshold baseWaterThreshold); + + /** + * 新增水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + public int insertBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold); + + /** + * 修改水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + public int updateBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold); + + /** + * 删除水阈值信息 + * + * @param objid 水阈值信息主键 + * @return 结果 + */ + public int deleteBaseWaterThresholdByObjid(Long objid); + + /** + * 批量删除水阈值信息 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseWaterThresholdByObjids(Long[] objids); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/CbsMonitorReportMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/CbsMonitorReportMapper.java new file mode 100644 index 000000000..e8ba55dc8 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/CbsMonitorReportMapper.java @@ -0,0 +1,81 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.CbsMonitorReport; +import com.op.energy.report.domain.EmsApiVo; + +import java.util.List; + +/** + * CBS抄报Mapper接口 + * + * @author YinQ + * @date 2023-10-20 + */ +public interface CbsMonitorReportMapper +{ + /** + * 查询CBS抄报 + * + * @param objId CBS抄报主键 + * @return CBS抄报 + */ + public CbsMonitorReport selectCbsMonitorReportByObjId(Long objId); + + /** + * 查询CBS抄报列表 + * + * @param cbsMonitorReport CBS抄报 + * @return CBS抄报集合 + */ + public List selectCbsMonitorReportList(CbsMonitorReport cbsMonitorReport); + + /** + * 新增CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + public int insertCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + + /** + * 修改CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + public int updateCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + + /** + * 删除CBS抄报 + * + * @param objId CBS抄报主键 + * @return 结果 + */ + public int deleteCbsMonitorReportByObjId(Long objId); + + /** + * 批量删除CBS抄报 + * + * @param objIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteCbsMonitorReportByObjIds(Long[] objIds); + + + /** + * 查询电实时数据 + * + * @param emsApiVo CBS抄报 + * @return CBS抄报集合 + */ + public List selectRealTimeMonitorList(EmsApiVo emsApiVo); + + /** + * 查询上次CBS抄表数据 + * + * @param cbsMonitorReport CBS抄报主键 + * @return CBS抄报 + */ + public CbsMonitorReport selectLastTimeCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysConfigMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysConfigMapper.java new file mode 100644 index 000000000..6684ac097 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysConfigMapper.java @@ -0,0 +1,80 @@ +package com.op.energy.base.mapper; + + + +import com.op.energy.base.domain.SysConfig; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 参数配置 数据层 + * + * @author sf + */ +@Mapper +public interface SysConfigMapper { + /** + * 查询参数配置信息 + * + * @param config 参数配置信息 + * @return 参数配置信息 + */ + public SysConfig selectConfig(SysConfig config); + + /** + * 通过ID查询配置 + * + * @param configId 参数ID + * @return 参数配置信息 + */ + public SysConfig selectConfigById(Long configId); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + public List selectConfigList(SysConfig config); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数配置信息 + */ + public SysConfig checkConfigKeyUnique(String configKey); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig(SysConfig config); + + /** + * 删除参数配置 + * + * @param configId 参数ID + * @return 结果 + */ + public int deleteConfigById(Long configId); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + * @return 结果 + */ + public int deleteConfigByIds(Long[] configIds); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysDatasourceMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysDatasourceMapper.java new file mode 100644 index 000000000..187ee430d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/mapper/SysDatasourceMapper.java @@ -0,0 +1,67 @@ +package com.op.energy.base.mapper; + +import com.op.energy.base.domain.SysDatasource; + +import java.util.List; + +/** + * 园区数据库Mapper接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface SysDatasourceMapper { + /** + * 查询园区数据库 + * + * @param id 园区数据库主键 + * @return 园区数据库 + */ + public SysDatasource selectSysDatasourceById(String id); + + /** + * 查询园区数据库列表 + * + * @param sysDatasource 园区数据库 + * @return 园区数据库集合 + */ + public List selectSysDatasourceList(SysDatasource sysDatasource); + + /** + * 新增园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + public int insertSysDatasource(SysDatasource sysDatasource); + + /** + * 修改园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + public int updateSysDatasource(SysDatasource sysDatasource); + + /** + * 删除园区数据库 + * + * @param id 园区数据库主键 + * @return 结果 + */ + public int deleteSysDatasourceById(String id); + + /** + * 批量删除园区数据库 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSysDatasourceByIds(String[] ids); + + public SysDatasource selectSysDatasourceByPoolName(String poolName); + + public List selectSysDatasource(); + + public SysDatasource selectSysDatasourceByCbsParkCode(String cbsParkCode); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBuildInfoService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBuildInfoService.java new file mode 100644 index 000000000..f66ee938c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBuildInfoService.java @@ -0,0 +1,72 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; + +import java.util.List; + + +/** + * 建筑信息管理Service接口 + * + * @author YinQ + * @date 2023-05-05 + */ +public interface IBaseBuildInfoService +{ + /** + * 查询建筑信息管理 + * + * @param objid 建筑信息管理主键 + * @return 建筑信息管理 + */ + public BaseBuildInfo selectBaseBuildInfoByObjid(Long objid); + + /** + * 查询建筑信息管理列表 + * + * @param baseBuildInfo 建筑信息管理 + * @return 建筑信息管理集合 + */ + public List selectBaseBuildInfoList(BaseBuildInfo baseBuildInfo); + + /** + * 新增建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + public int insertBaseBuildInfo(BaseBuildInfo baseBuildInfo); + + /** + * 修改建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + public int updateBaseBuildInfo(BaseBuildInfo baseBuildInfo); + + /** + * 批量删除建筑信息管理 + * + * @param objids 需要删除的建筑信息管理主键集合 + * @return 结果 + */ + public int deleteBaseBuildInfoByObjids(Long[] objids); + + /** + * 删除建筑信息管理信息 + * + * @param objid 建筑信息管理主键 + * @return 结果 + */ + public int deleteBaseBuildInfoByObjid(Long objid); + + public List selectBuildList(BaseMonitorInfo baseMonitorInfo); + public List buildTreeSelect(List builds); + public List buildTree(List menus); + + List selectBaseBuildInfoTree(); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBusinessTypeService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBusinessTypeService.java new file mode 100644 index 000000000..99a7f1dd2 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseBusinessTypeService.java @@ -0,0 +1,71 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseBusinessType; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; + +import java.util.List; + +/** + * 业态类型管理Service接口 + * + * @author YinQ + * @date 2023-05-05 + */ +public interface IBaseBusinessTypeService +{ + /** + * 查询业态类型管理 + * + * @param objid 业态类型管理主键 + * @return 业态类型管理 + */ + public BaseBusinessType selectBaseBusinessTypeByObjid(Long objid); + + /** + * 查询业态类型管理列表 + * + * @param baseBusinessType 业态类型管理 + * @return 业态类型管理集合 + */ + public List selectBaseBusinessTypeList(BaseBusinessType baseBusinessType); + + /** + * 新增业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + public int insertBaseBusinessType(BaseBusinessType baseBusinessType); + + /** + * 修改业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + public int updateBaseBusinessType(BaseBusinessType baseBusinessType); + + /** + * 批量删除业态类型管理 + * + * @param objids 需要删除的业态类型管理主键集合 + * @return 结果 + */ + public int deleteBaseBusinessTypeByObjids(Long[] objids); + + /** + * 删除业态类型管理信息 + * + * @param objid 业态类型管理主键 + * @return 结果 + */ + public int deleteBaseBusinessTypeByObjid(Long objid); + + public List selectSubentryList(BaseMonitorInfo baseMonitorInfo); + public List buildTreeSelect(List business); + public List buildTree(List menus); + + List selectBaseBusinessTypeTree(); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectCommunicateService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectCommunicateService.java new file mode 100644 index 000000000..dd50d922f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectCommunicateService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseCollectCommunicate; + +import java.util.List; + +/** + * 集中器通讯信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseCollectCommunicateService { + /** + * 查询集中器通讯信息 + * + * @param objid 集中器通讯信息主键 + * @return 集中器通讯信息 + */ + public BaseCollectCommunicate selectBaseCollectCommunicateByObjid(Long objid); + + /** + * 查询集中器通讯信息列表 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 集中器通讯信息集合 + */ + public List selectBaseCollectCommunicateList(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 新增集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + public int insertBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 修改集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + public int updateBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate); + + /** + * 批量删除集中器通讯信息 + * + * @param objids 需要删除的集中器通讯信息主键集合 + * @return 结果 + */ + public int deleteBaseCollectCommunicateByObjids(Long[] objids); + + /** + * 删除集中器通讯信息信息 + * + * @param objid 集中器通讯信息主键 + * @return 结果 + */ + public int deleteBaseCollectCommunicateByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectDeviceInfoService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectDeviceInfoService.java new file mode 100644 index 000000000..a1d61200d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseCollectDeviceInfoService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseCollectDeviceInfo; + +import java.util.List; + +/** + * 采集设备信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseCollectDeviceInfoService { + /** + * 查询采集设备信息 + * + * @param objid 采集设备信息主键 + * @return 采集设备信息 + */ + public BaseCollectDeviceInfo selectBaseCollectDeviceInfoByObjid(Long objid); + + /** + * 查询采集设备信息列表 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 采集设备信息集合 + */ + public List selectBaseCollectDeviceInfoList(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 新增采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + public int insertBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 修改采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + public int updateBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo); + + /** + * 批量删除采集设备信息 + * + * @param objids 需要删除的采集设备信息主键集合 + * @return 结果 + */ + public int deleteBaseCollectDeviceInfoByObjids(Long[] objids); + + /** + * 删除采集设备信息信息 + * + * @param objid 采集设备信息主键 + * @return 结果 + */ + public int deleteBaseCollectDeviceInfoByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseDnbThresholdService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseDnbThresholdService.java new file mode 100644 index 000000000..40c935805 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseDnbThresholdService.java @@ -0,0 +1,65 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseDnbThreshold; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.vo.TreeSelect; + +import java.util.List; + +/** + * 电阈值信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseDnbThresholdService { + /** + * 查询电阈值信息 + * + * @param objid 电阈值信息主键 + * @return 电阈值信息 + */ + public BaseDnbThreshold selectBaseDnbThresholdByObjid(Long objid); + + /** + * 查询电阈值信息列表 + * + * @param baseDnbThreshold 电阈值信息 + * @return 电阈值信息集合 + */ + public List selectBaseDnbThresholdList(BaseDnbThreshold baseDnbThreshold); + + /** + * 新增电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + public int insertBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold); + + /** + * 修改电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + public int updateBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold); + + /** + * 批量删除电阈值信息 + * + * @param objids 需要删除的电阈值信息主键集合 + * @return 结果 + */ + public int deleteBaseDnbThresholdByObjids(Long[] objids); + + /** + * 删除电阈值信息信息 + * + * @param objid 电阈值信息主键 + * @return 结果 + */ + public int deleteBaseDnbThresholdByObjid(Long objid); + + public List selectMonitorTreeList(BaseMonitorInfo baseMonitorInfo); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseEnergyTypeService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseEnergyTypeService.java new file mode 100644 index 000000000..93df9b146 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseEnergyTypeService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseEnergyType; + +import java.util.List; + +/** + * 能源类型信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseEnergyTypeService { + /** + * 查询能源类型信息 + * + * @param objid 能源类型信息主键 + * @return 能源类型信息 + */ + public BaseEnergyType selectBaseEnergyTypeByObjid(Long objid); + + /** + * 查询能源类型信息列表 + * + * @param baseEnergyType 能源类型信息 + * @return 能源类型信息集合 + */ + public List selectBaseEnergyTypeList(BaseEnergyType baseEnergyType); + + /** + * 新增能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + public int insertBaseEnergyType(BaseEnergyType baseEnergyType); + + /** + * 修改能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + public int updateBaseEnergyType(BaseEnergyType baseEnergyType); + + /** + * 批量删除能源类型信息 + * + * @param objids 需要删除的能源类型信息主键集合 + * @return 结果 + */ + public int deleteBaseEnergyTypeByObjids(Long[] objids); + + /** + * 删除能源类型信息信息 + * + * @param objid 能源类型信息主键 + * @return 结果 + */ + public int deleteBaseEnergyTypeByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineLossService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineLossService.java new file mode 100644 index 000000000..3c2ed7f9b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineLossService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseLineLoss; + +import java.util.List; + +/** + * 线损对象信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseLineLossService { + /** + * 查询线损对象信息 + * + * @param objid 线损对象信息主键 + * @return 线损对象信息 + */ + public BaseLineLoss selectBaseLineLossByObjid(Long objid); + + /** + * 查询线损对象信息列表 + * + * @param baseLineLoss 线损对象信息 + * @return 线损对象信息集合 + */ + public List selectBaseLineLossList(BaseLineLoss baseLineLoss); + + /** + * 新增线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + public int insertBaseLineLoss(BaseLineLoss baseLineLoss); + + /** + * 修改线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + public int updateBaseLineLoss(BaseLineLoss baseLineLoss); + + /** + * 批量删除线损对象信息 + * + * @param objids 需要删除的线损对象信息主键集合 + * @return 结果 + */ + public int deleteBaseLineLossByObjids(Long[] objids); + + /** + * 删除线损对象信息信息 + * + * @param objid 线损对象信息主键 + * @return 结果 + */ + public int deleteBaseLineLossByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineMonitorService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineMonitorService.java new file mode 100644 index 000000000..b544531d8 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseLineMonitorService.java @@ -0,0 +1,78 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.base.domain.Ztree; + +import java.util.List; + + +/** + * 线路计量信息Service接口 + * + * @author YinQ + * @date 2023-04-22 + */ +public interface IBaseLineMonitorService +{ + /** + * 查询线路计量信息 + * + * @param objid 线路计量信息主键 + * @return 线路计量信息 + */ + public BaseLineMonitor selectBaseLineMonitorByObjid(Long objid); + + /** + * 查询线路计量信息列表 + * + * @param baseLineMonitor 线路计量信息 + * @return 线路计量信息集合 + */ + public List selectBaseLineMonitorList(BaseLineMonitor baseLineMonitor); + + /** + * 新增线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + public int insertBaseLineMonitor(BaseLineMonitor baseLineMonitor); + + /** + * 修改线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + public int updateBaseLineMonitor(BaseLineMonitor baseLineMonitor); + + /** + * 批量删除线路计量信息 + * + * @param objids 需要删除的线路计量信息主键集合 + * @return 结果 + */ + public int deleteBaseLineMonitorByObjids(Long[] objid); + + /** + * 删除线路计量信息信息 + * + * @param objid 线路计量信息主键 + * @return 结果 + */ + public int deleteBaseLineMonitorByObjid(Long objid); + + /** + * 查询线路计量信息树列表 + * + * @return 所有线路计量信息信息 + */ + public List selectBaseLineMonitorTree(BaseLineMonitor lineMonitor); + + /** + * 查询计量设备有子集的父级List + * @param baseLineMonitor 计量设备信息 + * @return + */ + public List selectMonitorSubsetList(BaseLineMonitor baseLineMonitor); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMeterInfoService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMeterInfoService.java new file mode 100644 index 000000000..2f0862601 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMeterInfoService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseMeterInfo; + +import java.util.List; + +/** + * 计量仪表信息Service接口 + * + * @author YinQ + * @date 2023-03-31 + */ +public interface IBaseMeterInfoService { + /** + * 查询计量仪表信息 + * + * @param objid 计量仪表信息主键 + * @return 计量仪表信息 + */ + public BaseMeterInfo selectBaseMeterInfoByObjid(Long objid); + + /** + * 查询计量仪表信息列表 + * + * @param baseMeterInfo 计量仪表信息 + * @return 计量仪表信息集合 + */ + public List selectBaseMeterInfoList(BaseMeterInfo baseMeterInfo); + + /** + * 新增计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + public int insertBaseMeterInfo(BaseMeterInfo baseMeterInfo); + + /** + * 修改计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + public int updateBaseMeterInfo(BaseMeterInfo baseMeterInfo); + + /** + * 批量删除计量仪表信息 + * + * @param objids 需要删除的计量仪表信息主键集合 + * @return 结果 + */ + public int deleteBaseMeterInfoByObjids(String objids); + + /** + * 删除计量仪表信息信息 + * + * @param objid 计量仪表信息主键 + * @return 结果 + */ + public int deleteBaseMeterInfoByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfo1Service.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfo1Service.java new file mode 100644 index 000000000..105647e79 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfo1Service.java @@ -0,0 +1,68 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseTypeRelation; + +import java.util.ArrayList; +import java.util.List; + +/** + * 计量设备信息Service接口 + * + * @author sf + * @date 2023-05-05 + */ +public interface IBaseMonitorInfo1Service +{ + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid); + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息集合 + */ + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo); + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的计量设备信息主键集合 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjids(Long[] objids); + + /** + * 删除计量设备信息信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjid(Long objid); + + public ArrayList selectTypeSubset(Long type); + + public List selectMonitorSubsetList(BaseMonitorInfo baseMonitorInfo); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfoService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfoService.java new file mode 100644 index 000000000..7c9515e92 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseMonitorInfoService.java @@ -0,0 +1,106 @@ +package com.op.energy.base.service; + + +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseTree; +import com.op.energy.base.domain.BaseTypeRelation; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * 计量设备信息Service接口 + * + * @author YinQ + * @date 2023-04-06 + */ +public interface IBaseMonitorInfoService { + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid); + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息集合 + */ + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo); + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo); + + List selectChildrenMonitorById(String monitorId); + + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的计量设备信息主键集合 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjids(String objids); + + /** + * 删除计量设备信息信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + public int deleteBaseMonitorInfoByObjid(Long objid); + + /** + * 查询计量设备信息树列表 + * + * @return 所有计量设备信息信息 + */ + public List selectBaseMonitorInfoTree(Long monitorType); + + /** + * monitor获取所有子集 + * + * @param monitorInfoList + * @return + */ + public HashMap> buildMonitorMap(List monitorInfoList); + + /** + * 查询计量设备有子集的父级 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息集合 + */ + public List selectMonitorSubsetList(BaseMonitorInfo baseMonitorInfo); + + /** + * 查询类型园区下第一级 + * @param type + * @return + */ + ArrayList selectTypeSubset(Long type); + List monitorLedgerList(BaseMonitorInfo baseMonitorInfo); + + List selectMonitor(Long publicShareId); + + List selectDistinctPublicMonitor(String[] ids); + + BigDecimal queryPublicMonitorExpend(String[] ids, String startTime, String endTime, Long energyType); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicManageService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicManageService.java new file mode 100644 index 000000000..62225b6c3 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicManageService.java @@ -0,0 +1,71 @@ +package com.op.energy.base.service; + + +import com.op.energy.base.domain.BasePublicManage; + +import java.util.List; + +/** + * 公摊管理Service接口 + * + * @author ruoyi + * @date 2023-04-27 + */ +public interface IBasePublicManageService +{ + /** + * 查询公摊管理 + * + * @param id 公摊管理主键 + * @return 公摊管理 + */ + public BasePublicManage selectBasePublicManageById(Long id); + + /** + * 查询公摊管理列表 + * + * @param basePublicManage 公摊管理 + * @return 公摊管理集合 + */ + public List selectBasePublicManageList(BasePublicManage basePublicManage); + + /** + * 新增公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + public int insertBasePublicManage(BasePublicManage basePublicManage); + + /** + * 修改公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + public int updateBasePublicManage(BasePublicManage basePublicManage); + + /** + * 批量删除公摊管理 + * + * @param ids 需要删除的公摊管理主键集合 + * @return 结果 + */ + public int deleteBasePublicManageByIds(String ids); + + /** + * 删除公摊管理信息 + * + * @param id 公摊管理主键 + * @return 结果 + */ + public int deleteBasePublicManageById(Long id); + + /** + * 第二步:确认公摊 + * @param basePublicManage + * @return + */ + public List AddStepTwo(BasePublicManage basePublicManage); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserRecordService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserRecordService.java new file mode 100644 index 000000000..35cf5e2b9 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserRecordService.java @@ -0,0 +1,62 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BasePublicUserRecord; + +import java.util.List; + +/** + * 公摊用户数据记录Service接口 + * + * @author YinQ + * @date 2023-06-25 + */ +public interface IBasePublicUserRecordService +{ + /** + * 查询公摊用户数据记录 + * + * @param objid 公摊用户数据记录主键 + * @return 公摊用户数据记录 + */ + public BasePublicUserRecord selectBasePublicUserRecordByObjid(Long objid); + + /** + * 查询公摊用户数据记录列表 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 公摊用户数据记录集合 + */ + public List selectBasePublicUserRecordList(BasePublicUserRecord basePublicUserRecord); + + /** + * 新增公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + public int insertBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord); + + /** + * 修改公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + public int updateBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord); + + /** + * 批量删除公摊用户数据记录 + * + * @param objids 需要删除的公摊用户数据记录主键集合 + * @return 结果 + */ + public int deleteBasePublicUserRecordByObjids(Long[] objids); + + /** + * 删除公摊用户数据记录信息 + * + * @param objid 公摊用户数据记录主键 + * @return 结果 + */ + public int deleteBasePublicUserRecordByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserService.java new file mode 100644 index 000000000..05f81ae72 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBasePublicUserService.java @@ -0,0 +1,71 @@ +package com.op.energy.base.service; + + + +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.vo.MonitorVo; +import com.op.energy.base.domain.vo.PublicManageVo; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 公摊用户Service接口 + * + * @author yangwl + * @date 2023-04-24 + */ +public interface IBasePublicUserService +{ + /** + * 查询公摊用户 + * + * @param id 公摊用户主键 + * @return 公摊用户 + */ + public BasePublicUser selectBasePublicUserById(Long id); + + /** + * 查询公摊用户列表 + * + * @param basePublicUser 公摊用户 + * @return 公摊用户集合 + */ + public List selectBasePublicUserList(BasePublicUser basePublicUser); + + /** + * 新增公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + public int insertBasePublicUser(BasePublicUser basePublicUser); + + /** + * 修改公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + public int updateBasePublicUser(BasePublicUser basePublicUser); + + /** + * 批量删除公摊用户 + * + * @param ids 需要删除的公摊用户主键集合 + * @return 结果 + */ + public int deleteBasePublicUserByIds(String ids); + + /** + * 删除公摊用户信息 + * + * @param id 公摊用户主键 + * @return 结果 + */ + public int deleteBasePublicUserById(Long id); + + List selectlistChild(Long id); + + List selectPublicUserList(PublicManageVo publicManageVo, BigDecimal sumPublicExpend); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseSubentryTypeService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseSubentryTypeService.java new file mode 100644 index 000000000..23d11ca58 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseSubentryTypeService.java @@ -0,0 +1,72 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseSubentryType; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; + +import java.util.List; + + +/** + * 分项类型管理Service接口 + * + * @author YinQ + * @date 2023-05-06 + */ +public interface IBaseSubentryTypeService +{ + /** + * 查询分项类型管理 + * + * @param objid 分项类型管理主键 + * @return 分项类型管理 + */ + public BaseSubentryType selectBaseSubentryTypeByObjid(Long objid); + + /** + * 查询分项类型管理列表 + * + * @param baseSubentryType 分项类型管理 + * @return 分项类型管理集合 + */ + public List selectBaseSubentryTypeList(BaseSubentryType baseSubentryType); + + /** + * 新增分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + public int insertBaseSubentryType(BaseSubentryType baseSubentryType); + + /** + * 修改分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + public int updateBaseSubentryType(BaseSubentryType baseSubentryType); + + /** + * 批量删除分项类型管理 + * + * @param objids 需要删除的分项类型管理主键集合 + * @return 结果 + */ + public int deleteBaseSubentryTypeByObjids(Long[] objids); + + /** + * 删除分项类型管理信息 + * + * @param objid 分项类型管理主键 + * @return 结果 + */ + public int deleteBaseSubentryTypeByObjid(Long objid); + + public List selectSubentryList(BaseMonitorInfo baseMonitorInfo); + public List buildTreeSelect(List subentrys); + public List buildTree(List menus); + + List selectBaseSubentryTypeTree(); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseTypeRelationService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseTypeRelationService.java new file mode 100644 index 000000000..acaf63fc4 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseTypeRelationService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseTypeRelation; + +import java.util.List; + +/** + * 计量与类型对应关系Service接口 + * + * @author YinQ + * @date 2023-04-07 + */ +public interface IBaseTypeRelationService { + /** + * 查询计量与类型对应关系 + * + * @param objid 计量与类型对应关系主键 + * @return 计量与类型对应关系 + */ + public BaseTypeRelation selectBaseTypeRelationByObjid(Long objid); + + /** + * 查询计量与类型对应关系列表 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 计量与类型对应关系集合 + */ + public List selectBaseTypeRelationList(BaseTypeRelation baseTypeRelation); + + /** + * 新增计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + public int insertBaseTypeRelation(BaseTypeRelation baseTypeRelation); + + /** + * 修改计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + public int updateBaseTypeRelation(BaseTypeRelation baseTypeRelation); + + /** + * 批量删除计量与类型对应关系 + * + * @param objids 需要删除的计量与类型对应关系主键集合 + * @return 结果 + */ + public int deleteBaseTypeRelationByObjids(String objids); + + /** + * 删除计量与类型对应关系信息 + * + * @param objid 计量与类型对应关系主键 + * @return 结果 + */ + public int deleteBaseTypeRelationByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseWaterThresholdService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseWaterThresholdService.java new file mode 100644 index 000000000..16d0e4635 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/IBaseWaterThresholdService.java @@ -0,0 +1,61 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.BaseWaterThreshold; + +import java.util.List; + +/** + * 水阈值信息Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface IBaseWaterThresholdService { + /** + * 查询水阈值信息 + * + * @param objid 水阈值信息主键 + * @return 水阈值信息 + */ + public BaseWaterThreshold selectBaseWaterThresholdByObjid(Long objid); + + /** + * 查询水阈值信息列表 + * + * @param baseWaterThreshold 水阈值信息 + * @return 水阈值信息集合 + */ + public List selectBaseWaterThresholdList(BaseWaterThreshold baseWaterThreshold); + + /** + * 新增水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + public int insertBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold); + + /** + * 修改水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + public int updateBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold); + + /** + * 批量删除水阈值信息 + * + * @param objids 需要删除的水阈值信息主键集合 + * @return 结果 + */ + public int deleteBaseWaterThresholdByObjids(Long[] objids); + + /** + * 删除水阈值信息信息 + * + * @param objid 水阈值信息主键 + * @return 结果 + */ + public int deleteBaseWaterThresholdByObjid(Long objid); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/ICbsMonitorReportService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ICbsMonitorReportService.java new file mode 100644 index 000000000..898b414df --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ICbsMonitorReportService.java @@ -0,0 +1,80 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.CbsMonitorReport; +import com.op.energy.report.domain.EmsApiVo; + +import java.util.List; + +/** + * CBS抄报Service接口 + * + * @author YinQ + * @date 2023-10-20 + */ +public interface ICbsMonitorReportService +{ + /** + * 查询CBS抄报 + * + * @param objId CBS抄报主键 + * @return CBS抄报 + */ + public CbsMonitorReport selectCbsMonitorReportByObjId(Long objId); + + /** + * 查询CBS抄报列表 + * + * @param cbsMonitorReport CBS抄报 + * @return CBS抄报集合 + */ + public List selectCbsMonitorReportList(CbsMonitorReport cbsMonitorReport); + + /** + * 新增CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + public int insertCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + + /** + * 修改CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + public int updateCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + + /** + * 批量删除CBS抄报 + * + * @param objIds 需要删除的CBS抄报主键集合 + * @return 结果 + */ + public int deleteCbsMonitorReportByObjIds(Long[] objIds); + + /** + * 删除CBS抄报信息 + * + * @param objId CBS抄报主键 + * @return 结果 + */ + public int deleteCbsMonitorReportByObjId(Long objId); + + /** + * 查询实时数据 + * + * @param emsApiVo CBS抄报 + * @return CBS抄报集合 + */ + public List selectRealTimeMonitorList(EmsApiVo emsApiVo); + + /** + * 查询上次CBS抄表数据 + * + * @param cbsMonitorReport CBS抄报主键 + * @return CBS抄报 + */ + public CbsMonitorReport selectLastTimeCbsMonitorReport(CbsMonitorReport cbsMonitorReport); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysConfigService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysConfigService.java new file mode 100644 index 000000000..3a36c99a7 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysConfigService.java @@ -0,0 +1,84 @@ +package com.op.energy.base.service; + + + +import com.op.energy.base.domain.SysConfig; + +import java.util.List; + +/** + * 参数配置 服务层 + * + * @author sf + */ +public interface ISysConfigService { + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + public SysConfig selectConfigById(Long configId); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数键值 + */ + public String selectConfigByKey(String configKey); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + public List selectConfigList(SysConfig config); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig(SysConfig config); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + */ + public void deleteConfigByIds(Long[] configIds); + + /** + * 加载参数缓存数据 + */ + public void loadingConfigCache(); + + /** + * 清空参数缓存数据 + */ + public void clearConfigCache(); + + /** + * 重置参数缓存数据 + */ + public void resetConfigCache(); + + /** + * 校验参数键名是否唯一 + * + * @param config 参数信息 + * @return 结果 + */ + public boolean checkConfigKeyUnique(SysConfig config); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysDatasourceService.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysDatasourceService.java new file mode 100644 index 000000000..cb9c7b95f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/ISysDatasourceService.java @@ -0,0 +1,67 @@ +package com.op.energy.base.service; + +import com.op.energy.base.domain.SysDatasource; + +import java.util.List; + +/** + * 园区数据库Service接口 + * + * @author sf + * @date 2023-04-20 + */ +public interface ISysDatasourceService { + /** + * 查询园区数据库 + * + * @param id 园区数据库主键 + * @return 园区数据库 + */ + public SysDatasource selectSysDatasourceById(String id); + + /** + * 查询园区数据库列表 + * + * @param sysDatasource 园区数据库 + * @return 园区数据库集合 + */ + public List selectSysDatasourceList(SysDatasource sysDatasource); + + /** + * 新增园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + public int insertSysDatasource(SysDatasource sysDatasource); + + /** + * 修改园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + public int updateSysDatasource(SysDatasource sysDatasource); + + /** + * 批量删除园区数据库 + * + * @param ids 需要删除的园区数据库主键集合 + * @return 结果 + */ + public int deleteSysDatasourceByIds(String[] ids); + + /** + * 删除园区数据库信息 + * + * @param id 园区数据库主键 + * @return 结果 + */ + public int deleteSysDatasourceById(String id); + + SysDatasource selectSysDatasourceByPoolName(String sf_energy); + + SysDatasource selectSysDatasourceByCbsParkCode(String cbsParkCode); + + public List selectSysDatasource(); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBuildInfoServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBuildInfoServiceImpl.java new file mode 100644 index 000000000..8d14a15ed --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBuildInfoServiceImpl.java @@ -0,0 +1,195 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; +import com.op.energy.base.mapper.BaseBuildInfoMapper; +import com.op.energy.base.service.IBaseBuildInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + + +/** + * 建筑信息管理Service业务层处理 + * + * @author YinQ + * @date 2023-05-05 + */ +@Service +public class BaseBuildInfoServiceImpl implements IBaseBuildInfoService { + @Autowired + private BaseBuildInfoMapper baseBuildInfoMapper; + + /** + * 查询建筑信息管理 + * + * @param objid 建筑信息管理主键 + * @return 建筑信息管理 + */ + @Override + @DS("#header.poolName") + public BaseBuildInfo selectBaseBuildInfoByObjid(Long objid) { + return baseBuildInfoMapper.selectBaseBuildInfoByObjid(objid); + } + + /** + * 查询建筑信息管理列表 + * + * @param baseBuildInfo 建筑信息管理 + * @return 建筑信息管理 + */ + @Override + @DS("#header.poolName") + public List selectBaseBuildInfoList(BaseBuildInfo baseBuildInfo) { + return baseBuildInfoMapper.selectBaseBuildInfoList(baseBuildInfo); + } + + /** + * 新增建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseBuildInfo(BaseBuildInfo baseBuildInfo) { + baseBuildInfo.setCreateTime(DateUtils.getNowDate()); + return baseBuildInfoMapper.insertBaseBuildInfo(baseBuildInfo); + } + + /** + * 修改建筑信息管理 + * + * @param baseBuildInfo 建筑信息管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseBuildInfo(BaseBuildInfo baseBuildInfo) { + baseBuildInfo.setUpdateTime(DateUtils.getNowDate()); + return baseBuildInfoMapper.updateBaseBuildInfo(baseBuildInfo); + } + + /** + * 批量删除建筑信息管理 + * + * @param objids 需要删除的建筑信息管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseBuildInfoByObjids(Long[] objids) { + return baseBuildInfoMapper.deleteBaseBuildInfoByObjids(objids); + } + + /** + * 删除建筑信息管理信息 + * + * @param objid 建筑信息管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseBuildInfoByObjid(Long objid) { + return baseBuildInfoMapper.deleteBaseBuildInfoByObjid(objid); + } + + @Override + @DS("#header.poolName") + public List selectBuildList(BaseMonitorInfo baseMonitorInfo) { + BaseBuildInfo baseBuildInfo = new BaseBuildInfo(); + List menuList = baseBuildInfoMapper.selectBaseBuildInfoList(baseBuildInfo); + return menuList; + } + + @Override + @DS("#header.poolName") + public List buildTreeSelect(List builds) { + List menuTrees = buildTree(builds); + return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + @Override + @DS("#header.poolName") + public List buildTree(List menus) { + List returnList = new ArrayList(); + List tempList = menus.stream().map(BaseBuildInfo::getObjid).collect(Collectors.toList()); + for (Iterator iterator = menus.iterator(); iterator.hasNext(); ) { + BaseBuildInfo menu = (BaseBuildInfo) iterator.next(); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(menu.getParentId())) { + recursionFn(menus, menu); + returnList.add(menu); + } + } + if (returnList.isEmpty()) { + returnList = menus; + } + return returnList; + } + + @Override + @DS("#header.poolName") + public List selectBaseBuildInfoTree() { + List baseBuildInfoList = baseBuildInfoMapper.selectBaseBuildInfoList(new BaseBuildInfo()); + List ztrees = new ArrayList(); + for (BaseBuildInfo baseBuildInfo : baseBuildInfoList) + { + Ztree ztree = new Ztree(); + ztree.setId(baseBuildInfo.getObjid()); + ztree.setpId(baseBuildInfo.getParentId()); + ztree.setName(baseBuildInfo.getBuildName()); + ztree.setTitle(baseBuildInfo.getBuildName()); + ztrees.add(ztree); + } + return ztrees; + } + + /** + * 递归列表 + * + * @param list + * @param t + */ + private void recursionFn(List list, BaseBuildInfo t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (BaseBuildInfo tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, BaseBuildInfo t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + BaseBuildInfo n = (BaseBuildInfo) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getObjid().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, BaseBuildInfo t) { + return getChildList(list, t).size() > 0; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBusinessTypeServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBusinessTypeServiceImpl.java new file mode 100644 index 000000000..4cfc22fe6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseBusinessTypeServiceImpl.java @@ -0,0 +1,194 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseBusinessType; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; +import com.op.energy.base.mapper.BaseBusinessTypeMapper; +import com.op.energy.base.service.IBaseBusinessTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 业态类型管理Service业务层处理 + * + * @author YinQ + * @date 2023-05-05 + */ +@Service +public class BaseBusinessTypeServiceImpl implements IBaseBusinessTypeService { + @Autowired + private BaseBusinessTypeMapper baseBusinessTypeMapper; + + /** + * 查询业态类型管理 + * + * @param objid 业态类型管理主键 + * @return 业态类型管理 + */ + @Override + @DS("#header.poolName") + public BaseBusinessType selectBaseBusinessTypeByObjid(Long objid) { + return baseBusinessTypeMapper.selectBaseBusinessTypeByObjid(objid); + } + + /** + * 查询业态类型管理列表 + * + * @param baseBusinessType 业态类型管理 + * @return 业态类型管理 + */ + @Override + @DS("#header.poolName") + public List selectBaseBusinessTypeList(BaseBusinessType baseBusinessType) { + return baseBusinessTypeMapper.selectBaseBusinessTypeList(baseBusinessType); + } + + /** + * 新增业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseBusinessType(BaseBusinessType baseBusinessType) { + baseBusinessType.setCreateTime(DateUtils.getNowDate()); + return baseBusinessTypeMapper.insertBaseBusinessType(baseBusinessType); + } + + /** + * 修改业态类型管理 + * + * @param baseBusinessType 业态类型管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseBusinessType(BaseBusinessType baseBusinessType) { + baseBusinessType.setUpdateTime(DateUtils.getNowDate()); + return baseBusinessTypeMapper.updateBaseBusinessType(baseBusinessType); + } + + /** + * 批量删除业态类型管理 + * + * @param objids 需要删除的业态类型管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseBusinessTypeByObjids(Long[] objids) { + return baseBusinessTypeMapper.deleteBaseBusinessTypeByObjids(objids); + } + + /** + * 删除业态类型管理信息 + * + * @param objid 业态类型管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseBusinessTypeByObjid(Long objid) { + return baseBusinessTypeMapper.deleteBaseBusinessTypeByObjid(objid); + } + + @Override + @DS("#header.poolName") + public List selectSubentryList(BaseMonitorInfo baseMonitorInfo) { + BaseBusinessType baseBusinessType = new BaseBusinessType(); + List menuList = baseBusinessTypeMapper.selectBaseBusinessTypeList(baseBusinessType); + return menuList; + } + + @Override + @DS("#header.poolName") + public List buildTreeSelect(List business) { + List menuTrees = buildTree(business); + return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + @Override + @DS("#header.poolName") + public List buildTree(List menus) { + List returnList = new ArrayList(); + List tempList = menus.stream().map(BaseBusinessType::getObjid).collect(Collectors.toList()); + for (Iterator iterator = menus.iterator(); iterator.hasNext(); ) { + BaseBusinessType menu = (BaseBusinessType) iterator.next(); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(menu.getParentId())) { + recursionFn(menus, menu); + returnList.add(menu); + } + } + if (returnList.isEmpty()) { + returnList = menus; + } + return returnList; + } + + @Override + @DS("#header.poolName") + public List selectBaseBusinessTypeTree() { + List baseBusinessTypeList = baseBusinessTypeMapper.selectBaseBusinessTypeList(new BaseBusinessType()); + List ztrees = new ArrayList(); + for (BaseBusinessType baseBusinessType : baseBusinessTypeList) + { + Ztree ztree = new Ztree(); + ztree.setId(baseBusinessType.getObjid()); + ztree.setpId(baseBusinessType.getParentId()); + ztree.setName(baseBusinessType.getBusinessName()); + ztree.setTitle(baseBusinessType.getBusinessName()); + ztrees.add(ztree); + } + return ztrees; + } + + /** + * 递归列表 + * + * @param list + * @param t + */ + private void recursionFn(List list, BaseBusinessType t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (BaseBusinessType tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, BaseBusinessType t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + BaseBusinessType n = (BaseBusinessType) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getObjid().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, BaseBusinessType t) { + return getChildList(list, t).size() > 0; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectCommunicateServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectCommunicateServiceImpl.java new file mode 100644 index 000000000..62e8a5842 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectCommunicateServiceImpl.java @@ -0,0 +1,97 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseCollectCommunicate; +import com.op.energy.base.mapper.BaseCollectCommunicateMapper; +import com.op.energy.base.service.IBaseCollectCommunicateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 集中器通讯信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class BaseCollectCommunicateServiceImpl implements IBaseCollectCommunicateService { + @Autowired + private BaseCollectCommunicateMapper baseCollectCommunicateMapper; + + /** + * 查询集中器通讯信息 + * + * @param objid 集中器通讯信息主键 + * @return 集中器通讯信息 + */ + @Override + @DS("#header.poolName") + public BaseCollectCommunicate selectBaseCollectCommunicateByObjid(Long objid) { + return baseCollectCommunicateMapper.selectBaseCollectCommunicateByObjid(objid); + } + + /** + * 查询集中器通讯信息列表 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 集中器通讯信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseCollectCommunicateList(BaseCollectCommunicate baseCollectCommunicate) { + return baseCollectCommunicateMapper.selectBaseCollectCommunicateList(baseCollectCommunicate); + } + + /** + * 新增集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate) { + baseCollectCommunicate.setCreateTime(DateUtils.getNowDate()); + return baseCollectCommunicateMapper.insertBaseCollectCommunicate(baseCollectCommunicate); + } + + /** + * 修改集中器通讯信息 + * + * @param baseCollectCommunicate 集中器通讯信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseCollectCommunicate(BaseCollectCommunicate baseCollectCommunicate) { + baseCollectCommunicate.setUpdateTime(DateUtils.getNowDate()); + return baseCollectCommunicateMapper.updateBaseCollectCommunicate(baseCollectCommunicate); + } + + /** + * 批量删除集中器通讯信息 + * + * @param objids 需要删除的集中器通讯信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseCollectCommunicateByObjids(Long[] objids) { + return baseCollectCommunicateMapper.deleteBaseCollectCommunicateByObjids(objids); + } + + /** + * 删除集中器通讯信息信息 + * + * @param objid 集中器通讯信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseCollectCommunicateByObjid(Long objid) { + return baseCollectCommunicateMapper.deleteBaseCollectCommunicateByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectDeviceInfoServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectDeviceInfoServiceImpl.java new file mode 100644 index 000000000..80df7c889 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseCollectDeviceInfoServiceImpl.java @@ -0,0 +1,98 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseCollectDeviceInfo; +import com.op.energy.base.mapper.BaseCollectDeviceInfoMapper; +import com.op.energy.base.service.IBaseCollectDeviceInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 采集设备信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +@DS("#header.poolName") +public class BaseCollectDeviceInfoServiceImpl implements IBaseCollectDeviceInfoService { + @Autowired + private BaseCollectDeviceInfoMapper baseCollectDeviceInfoMapper; + + /** + * 查询采集设备信息 + * + * @param objid 采集设备信息主键 + * @return 采集设备信息 + */ + @Override + @DS("#header.poolName") + public BaseCollectDeviceInfo selectBaseCollectDeviceInfoByObjid(Long objid) { + return baseCollectDeviceInfoMapper.selectBaseCollectDeviceInfoByObjid(objid); + } + + /** + * 查询采集设备信息列表 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 采集设备信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseCollectDeviceInfoList(BaseCollectDeviceInfo baseCollectDeviceInfo) { + return baseCollectDeviceInfoMapper.selectBaseCollectDeviceInfoList(baseCollectDeviceInfo); + } + + /** + * 新增采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo) { + baseCollectDeviceInfo.setCreateTime(DateUtils.getNowDate()); + return baseCollectDeviceInfoMapper.insertBaseCollectDeviceInfo(baseCollectDeviceInfo); + } + + /** + * 修改采集设备信息 + * + * @param baseCollectDeviceInfo 采集设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseCollectDeviceInfo(BaseCollectDeviceInfo baseCollectDeviceInfo) { + baseCollectDeviceInfo.setUpdateTime(DateUtils.getNowDate()); + return baseCollectDeviceInfoMapper.updateBaseCollectDeviceInfo(baseCollectDeviceInfo); + } + + /** + * 批量删除采集设备信息 + * + * @param objids 需要删除的采集设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseCollectDeviceInfoByObjids(Long[] objids) { + return baseCollectDeviceInfoMapper.deleteBaseCollectDeviceInfoByObjids(objids); + } + + /** + * 删除采集设备信息信息 + * + * @param objid 采集设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseCollectDeviceInfoByObjid(Long objid) { + return baseCollectDeviceInfoMapper.deleteBaseCollectDeviceInfoByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseDnbThresholdServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseDnbThresholdServiceImpl.java new file mode 100644 index 000000000..90f456aed --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseDnbThresholdServiceImpl.java @@ -0,0 +1,178 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseDnbThreshold; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.vo.TreeSelect; +import com.op.energy.base.mapper.BaseDnbThresholdMapper; +import com.op.energy.base.mapper.BaseMonitorInfoMapper; +import com.op.energy.base.service.IBaseDnbThresholdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 电阈值信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class BaseDnbThresholdServiceImpl implements IBaseDnbThresholdService { + @Autowired + private BaseDnbThresholdMapper baseDnbThresholdMapper; + @Autowired + private BaseMonitorInfoMapper baseMonitorInfoMapper; + + /** + * 查询电阈值信息 + * + * @param objid 电阈值信息主键 + * @return 电阈值信息 + */ + @Override + @DS("#header.poolName") + public BaseDnbThreshold selectBaseDnbThresholdByObjid(Long objid) { + return baseDnbThresholdMapper.selectBaseDnbThresholdByObjid(objid); + } + + /** + * 查询电阈值信息列表 + * + * @param baseDnbThreshold 电阈值信息 + * @return 电阈值信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseDnbThresholdList(BaseDnbThreshold baseDnbThreshold) { + return baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + } + + /** + * 新增电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold) { + baseDnbThreshold.setCreateTime(DateUtils.getNowDate()); + return baseDnbThresholdMapper.insertBaseDnbThreshold(baseDnbThreshold); + } + + /** + * 修改电阈值信息 + * + * @param baseDnbThreshold 电阈值信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseDnbThreshold(BaseDnbThreshold baseDnbThreshold) { + baseDnbThreshold.setUpdateTime(DateUtils.getNowDate()); + return baseDnbThresholdMapper.updateBaseDnbThreshold(baseDnbThreshold); + } + + /** + * 批量删除电阈值信息 + * + * @param objids 需要删除的电阈值信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseDnbThresholdByObjids(Long[] objids) { + return baseDnbThresholdMapper.deleteBaseDnbThresholdByObjids(objids); + } + + /** + * 删除电阈值信息信息 + * + * @param objid 电阈值信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseDnbThresholdByObjid(Long objid) { + return baseDnbThresholdMapper.deleteBaseDnbThresholdByObjid(objid); + } + + @Override + @DS("#header.poolName") + public List selectMonitorTreeList(BaseMonitorInfo baseMonitorInfo) { + List monitors = selectMonitorList(baseMonitorInfo); + return buildMonitorTreeSelect(monitors); + } + + //@DataScope(deptAlias = "d") + @DS("#header.poolName") + public List selectMonitorList(BaseMonitorInfo baseMonitorInfo) { + return baseMonitorInfoMapper.selectMonitorList(baseMonitorInfo); + } + + //@Override + public List buildMonitorTreeSelect(List monitors) { + List monitorTrees = buildMonitorTree(monitors); + return monitorTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + //@Override + public List buildMonitorTree(List monitors) { + List returnList = new ArrayList(); + List tempList = monitors.stream().map(BaseMonitorInfo::getObjid).collect(Collectors.toList()); + for (BaseMonitorInfo monitor : monitors) { + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(monitor.getParentId())) { + recursionFn(monitors, monitor); + returnList.add(monitor); + } + } + if (returnList.isEmpty()) { + returnList = monitors; + } + return returnList; + } + + /** + * 递归列表 + */ + private void recursionFn(List list, BaseMonitorInfo t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (BaseMonitorInfo tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, BaseMonitorInfo t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + BaseMonitorInfo n = (BaseMonitorInfo) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getObjid().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, BaseMonitorInfo t) { + return getChildList(list, t).size() > 0 ? true : false; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseEnergyTypeServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseEnergyTypeServiceImpl.java new file mode 100644 index 000000000..d0ae49859 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseEnergyTypeServiceImpl.java @@ -0,0 +1,98 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseEnergyType; +import com.op.energy.base.mapper.BaseEnergyTypeMapper; +import com.op.energy.base.service.IBaseEnergyTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 能源类型信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class BaseEnergyTypeServiceImpl implements IBaseEnergyTypeService { + @Autowired + private BaseEnergyTypeMapper baseEnergyTypeMapper; + + /** + * 查询能源类型信息 + * + * @param objid 能源类型信息主键 + * @return 能源类型信息 + */ + @Override + @DS("#header.poolName") + public BaseEnergyType selectBaseEnergyTypeByObjid(Long objid) { + return baseEnergyTypeMapper.selectBaseEnergyTypeByObjid(objid); + } + + /** + * 查询能源类型信息列表 + * + * @param baseEnergyType 能源类型信息 + * @return 能源类型信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseEnergyTypeList(BaseEnergyType baseEnergyType) { + System.out.println("++++++++++++++++" + baseEnergyType.getPoolName()); + return baseEnergyTypeMapper.selectBaseEnergyTypeList(baseEnergyType); + } + + /** + * 新增能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseEnergyType(BaseEnergyType baseEnergyType) { + baseEnergyType.setCreateTime(DateUtils.getNowDate()); + return baseEnergyTypeMapper.insertBaseEnergyType(baseEnergyType); + } + + /** + * 修改能源类型信息 + * + * @param baseEnergyType 能源类型信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseEnergyType(BaseEnergyType baseEnergyType) { + baseEnergyType.setUpdateTime(DateUtils.getNowDate()); + return baseEnergyTypeMapper.updateBaseEnergyType(baseEnergyType); + } + + /** + * 批量删除能源类型信息 + * + * @param objids 需要删除的能源类型信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseEnergyTypeByObjids(Long[] objids) { + return baseEnergyTypeMapper.deleteBaseEnergyTypeByObjids(objids); + } + + /** + * 删除能源类型信息信息 + * + * @param objid 能源类型信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseEnergyTypeByObjid(Long objid) { + return baseEnergyTypeMapper.deleteBaseEnergyTypeByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineLossServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineLossServiceImpl.java new file mode 100644 index 000000000..d566895f4 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineLossServiceImpl.java @@ -0,0 +1,97 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.mapper.BaseLineLossMapper; +import com.op.energy.base.service.IBaseLineLossService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 线损对象信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class BaseLineLossServiceImpl implements IBaseLineLossService { + @Autowired + private BaseLineLossMapper baseLineLossMapper; + + /** + * 查询线损对象信息 + * + * @param objid 线损对象信息主键 + * @return 线损对象信息 + */ + @Override + @DS("#header.poolName") + public BaseLineLoss selectBaseLineLossByObjid(Long objid) { + return baseLineLossMapper.selectBaseLineLossByObjid(objid); + } + + /** + * 查询线损对象信息列表 + * + * @param baseLineLoss 线损对象信息 + * @return 线损对象信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseLineLossList(BaseLineLoss baseLineLoss) { + return baseLineLossMapper.selectBaseLineLossList(baseLineLoss); + } + + /** + * 新增线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseLineLoss(BaseLineLoss baseLineLoss) { + baseLineLoss.setCreateTime(DateUtils.getNowDate()); + return baseLineLossMapper.insertBaseLineLoss(baseLineLoss); + } + + /** + * 修改线损对象信息 + * + * @param baseLineLoss 线损对象信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseLineLoss(BaseLineLoss baseLineLoss) { + baseLineLoss.setUpdateTime(DateUtils.getNowDate()); + return baseLineLossMapper.updateBaseLineLoss(baseLineLoss); + } + + /** + * 批量删除线损对象信息 + * + * @param objids 需要删除的线损对象信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseLineLossByObjids(Long[] objids) { + return baseLineLossMapper.deleteBaseLineLossByObjids(objids); + } + + /** + * 删除线损对象信息信息 + * + * @param objid 线损对象信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseLineLossByObjid(Long objid) { + return baseLineLossMapper.deleteBaseLineLossByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineMonitorServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineMonitorServiceImpl.java new file mode 100644 index 000000000..2ac614c1c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseLineMonitorServiceImpl.java @@ -0,0 +1,327 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.mapper.BaseLineLossMapper; +import com.op.energy.base.mapper.BaseLineMonitorMapper; +import com.op.energy.base.service.IBaseLineMonitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 线路计量信息Service业务层处理 + * + * @author YinQ + * @date 2023-04-22 + */ +@Service +public class BaseLineMonitorServiceImpl implements IBaseLineMonitorService { + @Autowired + private BaseLineMonitorMapper baseLineMonitorMapper; + + @Autowired + private BaseLineLossMapper baseLineLossMapper; + + /** + * 查询线路计量信息 + * + * @param objid 线路计量信息主键 + * @return 线路计量信息 + */ + @Override + @DS("#header.poolName") + public BaseLineMonitor selectBaseLineMonitorByObjid(Long objid) { + return baseLineMonitorMapper.selectBaseLineMonitorByObjid(objid); + } + + /** + * 查询线路计量信息列表 + * + * @param baseLineMonitor 线路计量信息 + * @return 线路计量信息 + */ + @Override + @DS("#header.poolName") +// @DataScope(deptAlias = "null") + public List selectBaseLineMonitorList(BaseLineMonitor baseLineMonitor) { + return baseLineMonitorMapper.selectBaseLineMonitorList(baseLineMonitor); + } + + /** + * 新增线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseLineMonitor(BaseLineMonitor baseLineMonitor) { + baseLineMonitor.setCreateTime(DateUtils.getNowDate()); + try { + baseLineMonitorMapper.insertBaseLineMonitor(baseLineMonitor); + List subsetList = this.selectMonitorSubsetList(new BaseLineMonitor()); + //添加线损对象 + this.insertLineLossList(subsetList); + return 1; + } catch (Exception e) { + e.printStackTrace(); + } + return 0; + } + + /** + * 修改线路计量信息 + * + * @param baseLineMonitor 线路计量信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseLineMonitor(BaseLineMonitor baseLineMonitor) { + try { + List baseLineMonitors = baseLineMonitorMapper.selectBaseLineMonitorList(new BaseLineMonitor()); + List objIdList = baseLineMonitors.stream().map(BaseLineMonitor::getObjid).collect(Collectors.toList()); + + // 线路计量信息等级更新 + for (BaseLineMonitor lineMonitor : baseLineMonitors) { + if (lineMonitor.getObjid().equals(lineMonitor.getParentId())){ + continue; + } + Long grade = 0L; + grade = updateLineMonitorGrade(baseLineMonitors, lineMonitor, objIdList, grade); + if (StringUtils.isNull(lineMonitor.getGrade()) || !lineMonitor.getGrade().equals(grade)){ + lineMonitor.setGrade(grade); + baseLineMonitorMapper.updateBaseLineMonitor(lineMonitor); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + baseLineMonitor.setUpdateTime(DateUtils.getNowDate()); + return baseLineMonitorMapper.updateBaseLineMonitor(baseLineMonitor); + } + + /** + * 线路计量信息等级更新 + * @param baseLineMonitors + * @param lineMonitor + * @param objIdList + * @param grade + * @return + */ + private Long updateLineMonitorGrade(List baseLineMonitors, BaseLineMonitor lineMonitor, List objIdList, Long grade) { + if (objIdList.contains(lineMonitor.getParentId())){ + List lineMonitorList = baseLineMonitors.stream(). + filter(e -> e.getObjid().equals(lineMonitor.getParentId())).collect(Collectors.toList()); + grade = updateLineMonitorGrade(baseLineMonitors, lineMonitorList.get(0), objIdList, grade) + 1L; + } + return grade; + } + + + /** + * 批量删除线路计量信息 + * + * @param ids 需要删除的线路计量信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseLineMonitorByObjids(Long[] ids) { + return baseLineMonitorMapper.deleteBaseLineMonitorByObjids(ids); + } + + /** + * 删除线路计量信息信息 + * + * @param objid 线路计量信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseLineMonitorByObjid(Long objid) { + return baseLineMonitorMapper.deleteBaseLineMonitorByObjid(objid); + } + + /** + * 查询线路计量信息树列表 + * + * @return 所有线路计量信息信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseLineMonitorTree(BaseLineMonitor lineMonitor) { + List baseLineMonitorList = baseLineMonitorMapper.selectBaseLineMonitorList(lineMonitor); + List ztrees = new ArrayList(); + for (BaseLineMonitor baseLineMonitor : baseLineMonitorList) { + Ztree ztree = new Ztree(); + ztree.setId(baseLineMonitor.getObjid()); + ztree.setpId(baseLineMonitor.getParentId()); + ztree.setName(baseLineMonitor.getMonitorName()); + ztree.setTitle(baseLineMonitor.getMonitorName()); + ztrees.add(ztree); + } + return ztrees; + } + + /** + * 查询计量设备有子集的父级List + * + * @param baseLineMonitor 计量设备信息 + * @return + */ + @Override + @DS("#header.poolName") + public List selectMonitorSubsetList(BaseLineMonitor baseLineMonitor) { + List result = new ArrayList<>(); + try { + List baseMonitorInfoList = baseLineMonitorMapper.selectBaseLineMonitorList(baseLineMonitor); + result = baseMonitorInfoList.stream() + .filter(info -> info.getParentId() == null || baseMonitorInfoList.stream() + .anyMatch(parent -> info.getObjid().equals(parent.getParentId()))) + .collect(Collectors.toList()); + } catch (Exception e) { + System.out.println("查询计量设备有子集的父级List异常:" + e.getMessage()); + } + return result; + } + + /** + * 新增线损对象信息 + * + * @param lineMonitorList + */ + @DS("#header.poolName") + private void insertLineLossList(List lineMonitorList) { + boolean flag = true; + //多路供电线损 + List multipleLosses = baseLineLossMapper.selectMultiplePowerSuppliesList(new BaseLineLoss()); + for (BaseLineLoss multipleLoss : multipleLosses) { + // 删除符合条件的 BaseLineMonitor 对象 + lineMonitorList.removeIf(lineMonitor -> lineMonitor.getMonitorId().equals(multipleLoss.getMonitorId())); + } + Map> multipleMap = multipleLosses.stream().collect(Collectors.groupingBy(BaseLineLoss::getLineLossId)); + for (String multipleId : multipleMap.keySet()) { + List monitorIdList = new ArrayList<>(); + List monitorNameList = new ArrayList<>(); + //父级List + for (BaseLineLoss baseLineLoss : multipleMap.get(multipleId)) { + monitorIdList.add(baseLineLoss.getMonitorId()); + monitorNameList.add(baseLineLoss.getMonitorName()); + } + BaseLineMonitor baseLineMonitor = new BaseLineMonitor(); + baseLineMonitor.setMonitorId(String.join("|", monitorIdList)); + baseLineMonitor.setMonitorName(String.join("|", monitorNameList)); + baseLineMonitor.setMonitorType(2L); + baseLineMonitor.setMonitorStatus(0L); + baseLineMonitor.setIsAmmeter("false"); + lineMonitorList.add(baseLineMonitor); + } + + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(new BaseLineLoss()); + if (lineMonitorList.size() == 0){ + return; + }else if (baseLineLosses.size() == 0){ + flag = false; + } + for (BaseLineMonitor lineMonitor : lineMonitorList) { + boolean isHaveMonitor = true; + if (flag){ + for (BaseLineLoss baseLineLoss : baseLineLosses) { + if (baseLineLoss.getMonitorId().equals(lineMonitor.getMonitorId())){ + isHaveMonitor = false; + break; + } + } + } + if (isHaveMonitor && lineMonitor.getIsAmmeter().equals("false")){ + BaseLineLoss baseLineLoss = new BaseLineLoss(); + baseLineLoss.setMonitorId(lineMonitor.getMonitorId()); + baseLineLoss.setMonitorName(lineMonitor.getMonitorName()); + baseLineLoss.setLineLossId(lineMonitor.getMonitorId()); + baseLineLoss.setLineLossName(lineMonitor.getMonitorName()); + baseLineLoss.setMonitorType(lineMonitor.getMonitorType()); + baseLineLoss.setLineLossStatus(lineMonitor.getMonitorStatus()); + baseLineLoss.setCreateBy(SecurityUtils.getUsername()); + baseLineLoss.setCreateTime(new Date()); + baseLineLossMapper.insertBaseLineLoss(baseLineLoss); + } + } + } + + + /** + * 递归查找所有下级子节点中真表 + * isAmmeter为false的节点 + * + * @param monitors + * @param monitorId + * @return + */ + public static List getNextLevelLineMonitorList(List monitors, String monitorId) { + List result = new ArrayList<>(); + BaseLineMonitor current = null; + for (BaseLineMonitor monitor : monitors) { + if (monitor.getMonitorId().equals(monitorId)) { + current = monitor; + break; + } + } + if (current == null) { + return result; + } + for (BaseLineMonitor child : monitors) { + if (child.getParentId().equals(current.getObjid())) { + if (child.getIsAmmeter().equals("false")) { + result.add(child); + } else { + List subResult = getNextLevelLineMonitorList(monitors, child.getMonitorId()); + result.addAll(subResult); + } + } + } + return result; + } + + /** + * 递归查找monitorId最下级节点中的表 + * @param monitors + * @param monitorId + * @return + */ + public static List getLowestLevelLineMonitorList(List monitors, String monitorId) { + List result = new ArrayList<>(); + HashSet parentIdSet = new HashSet<>(); + BaseLineMonitor current = null; + for (BaseLineMonitor monitor : monitors) { + if (monitor.getMonitorId().equals(monitorId)) { + current = monitor; + } + parentIdSet.add(monitor.getParentId()); + } + if (current == null) { + return result; + } + for (BaseLineMonitor child : monitors) { + if (child.getParentId().equals(current.getObjid())) { + if (parentIdSet.contains(child.getObjid())) { + List subResult = getLowestLevelLineMonitorList(monitors, child.getMonitorId()); + result.addAll(subResult); + }else { + result.add(child); + } + } + } + return result; + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMeterInfoServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMeterInfoServiceImpl.java new file mode 100644 index 000000000..ab0d4fd40 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMeterInfoServiceImpl.java @@ -0,0 +1,97 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.datascope.annotation.DataScope; +import com.op.energy.base.domain.BaseMeterInfo; +import com.op.energy.base.mapper.BaseMeterInfoMapper; +import com.op.energy.base.service.IBaseMeterInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 计量仪表信息Service业务层处理 + * + * @author YinQ + * @date 2023-03-31 + */ +@Service +public class BaseMeterInfoServiceImpl implements IBaseMeterInfoService { + @Autowired + private BaseMeterInfoMapper baseMeterInfoMapper; + + /** + * 查询计量仪表信息 + * + * @param objid 计量仪表信息主键 + * @return 计量仪表信息 + */ + @Override + @DS("#header.poolName") + public BaseMeterInfo selectBaseMeterInfoByObjid(Long objid) { + return baseMeterInfoMapper.selectBaseMeterInfoByObjid(objid); + } + + /** + * 查询计量仪表信息列表 + * + * @param baseMeterInfo 计量仪表信息 + * @return 计量仪表信息 + */ + @Override + @DataScope(deptAlias = "null") + @DS("#header.poolName") + public List selectBaseMeterInfoList(BaseMeterInfo baseMeterInfo) { + return baseMeterInfoMapper.selectBaseMeterInfoList(baseMeterInfo); + } + + /** + * 新增计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseMeterInfo(BaseMeterInfo baseMeterInfo) { + return baseMeterInfoMapper.insertBaseMeterInfo(baseMeterInfo); + } + + /** + * 修改计量仪表信息 + * + * @param baseMeterInfo 计量仪表信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseMeterInfo(BaseMeterInfo baseMeterInfo) { + return baseMeterInfoMapper.updateBaseMeterInfo(baseMeterInfo); + } + + /** + * 批量删除计量仪表信息 + * + * @param objids 需要删除的计量仪表信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMeterInfoByObjids(String objids) { + return baseMeterInfoMapper.deleteBaseMeterInfoByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除计量仪表信息信息 + * + * @param objid 计量仪表信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMeterInfoByObjid(Long objid) { + return baseMeterInfoMapper.deleteBaseMeterInfoByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfo1ServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfo1ServiceImpl.java new file mode 100644 index 000000000..cabaa1424 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfo1ServiceImpl.java @@ -0,0 +1,304 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.exception.ServiceException; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.*; +import com.op.energy.base.mapper.*; +import com.op.energy.base.service.IBaseMonitorInfo1Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + + +/** + * 计量设备信息Service业务层处理 + * + * @author sf + * @date 2023-05-05 + */ +@Service +public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { + @Autowired + private BaseMonitorInfo1Mapper baseMonitorInfoMapper; + + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + @Autowired + private BaseBusinessTypeMapper baseBusinessTypeMapper; + + @Autowired + private BaseSubentryTypeMapper baseSubentryTypeMapper; + + @Autowired + private BaseLineLossMapper baseLineLossMapper; + + @Autowired + private BaseBuildInfoMapper baseBuildInfoMapper; + + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + @Override + @DS("#header.poolName") + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid) { + return baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(objid); + } + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo) { + return baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + } + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { + List baseMonitorInfos = baseMonitorInfoMapper.checkMonitorIdLegal(baseMonitorInfo); + if (baseMonitorInfos.size() != 0) { + throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); + } + try { + BaseMonitorInfo monitor = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); + monitor.setAncestors(monitor.getAncestors() + "," + monitor.getMonitorId()); + String[] split = monitor.getAncestors().split(","); + monitor.setGrade(split.length); + this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), + baseMonitorInfo.getBusinessId(), baseMonitorInfo.getSubentryId()); +// List subsetList = this.selectMonitorSubsetList(new BaseMonitorInfo()); + //添加线损对象 +// this.insertLineLossList(subsetList); + } catch (Exception e) { + System.out.println("新增计量设备信息异常:" + e.getMessage()); + } + + baseMonitorInfo.setCreateTime(DateUtils.getNowDate()); + baseMonitorInfo.setCreateBy(SecurityUtils.getUsername()); + return baseMonitorInfoMapper.insertBaseMonitorInfo(baseMonitorInfo); + } + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { + List baseMonitorInfos = baseMonitorInfoMapper.checkMonitorIdLegal(baseMonitorInfo); + if (baseMonitorInfos.size() > 1){ + throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); + } + try { + BaseMonitorInfo newParenMonitorInfo = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); + BaseMonitorInfo oldDeptMonitorInfo = selectBaseMonitorInfoByObjid(baseMonitorInfo.getObjid()); + if (StringUtils.isNotNull(newParenMonitorInfo) && StringUtils.isNotNull(oldDeptMonitorInfo)) + { + String newAncestors = newParenMonitorInfo.getAncestors() + "," + oldDeptMonitorInfo.getMonitorId(); + String oldAncestors = oldDeptMonitorInfo.getAncestors(); + baseMonitorInfo.setAncestors(newAncestors); + String[] split = baseMonitorInfo.getAncestors().split(","); + baseMonitorInfo.setGrade(split.length); + + updateMonitorChildren(baseMonitorInfo.getMonitorId(), newAncestors, oldAncestors); + } + + this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(),baseMonitorInfo.getBuildId(), + baseMonitorInfo.getBusinessId(),baseMonitorInfo.getSubentryId()); + } catch (Exception e) { + e.printStackTrace(); + } + baseMonitorInfo.setUpdateTime(DateUtils.getNowDate()); + baseMonitorInfo.setUpdateBy(SecurityUtils.getUsername()); + return baseMonitorInfoMapper.updateBaseMonitorInfo(baseMonitorInfo); + } + /** + * 修改子元素关系 + * @param monitorId 被修改的ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + private void updateMonitorChildren(String monitorId, String newAncestors, String oldAncestors) { + List children = baseMonitorInfoMapper.selectChildrenMonitorById(monitorId); + for (BaseMonitorInfo child : children) + { + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + } + if (children.size() > 0) + { + baseMonitorInfoMapper.updateMonitorChildren(children); + } + + } + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的计量设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMonitorInfoByObjids(Long[] objids) { + return baseMonitorInfoMapper.deleteBaseMonitorInfoByObjids(objids); + } + + /** + * 删除计量设备信息信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMonitorInfoByObjid(Long objid) { + return baseMonitorInfoMapper.deleteBaseMonitorInfoByObjid(objid); + } + + /** + * 新增或更新计量与类型对应关系 + * + * @param buildId + * @param businessId + * @param subentryId + */ + private void insertOrUpdateBaseTypeRelation(String monitorId, String buildId, String businessId, String subentryId) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setMonitorId(monitorId); + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(typeRelation); + if (baseTypeRelations.size() > 0) { + String[] objids = baseTypeRelations.stream(). + map(BaseTypeRelation::getObjid).map(String::valueOf).toArray(String[]::new); + baseTypeRelationMapper.deleteBaseTypeRelationByObjids(objids); + } + // type: 0-建筑 1-业态 2-分项 + if (StringUtils.isNotEmpty(buildId)) { + String[] buildIds = buildId.split(","); + for (String id : buildIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(0L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + if (StringUtils.isNotEmpty(businessId)) { + String[] businessIds = businessId.split(","); + for (String id : businessIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(1L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + if (StringUtils.isNotEmpty(subentryId)) { + String[] subentryIds = subentryId.split(","); + for (String id : subentryIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(2L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + } + + /** + * 查询计量设备有子集的父级List + * + * @param baseMonitorInfo 计量设备信息 + * @return + */ + @Override + @DS("#header.poolName") + public List selectMonitorSubsetList(BaseMonitorInfo baseMonitorInfo) { + List result = new ArrayList<>(); + try { + List baseMonitorInfoList = baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + result = baseMonitorInfoList.stream() + .filter(info -> info.getParentId() == null || baseMonitorInfoList.stream() + .anyMatch(parent -> info.getObjid().equals(parent.getParentId()))) + .collect(Collectors.toList()); + } catch (Exception e) { + System.out.println("查询计量设备有子集的父级List异常:" + e.getMessage()); + } + return result; + } + + /** + * 查询类型园区下第一级 + * + * @param type + * @return + */ + @Override + @DS("#header.poolName") + public ArrayList selectTypeSubset(Long type) { + ArrayList typeRelations = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setType(0L); + relation.setRelationId(1L); + relation.setUnitName("全部"); + typeRelations.add(relation); + if (type == 0) { + BaseBuildInfo baseBuildInfo = new BaseBuildInfo(); + baseBuildInfo.setParentId(1L); + List baseBuildInfos = baseBuildInfoMapper.selectBaseBuildInfoList(baseBuildInfo); + for (BaseBuildInfo buildInfo : baseBuildInfos) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(0L); + typeRelation.setRelationId(buildInfo.getObjid()); + typeRelation.setUnitName(buildInfo.getBuildName()); + typeRelations.add(typeRelation); + } + } else if (type == 1L) { + BaseBusinessType businessType = new BaseBusinessType(); + businessType.setParentId(1L); + List baseBusinessTypes = baseBusinessTypeMapper.selectBaseBusinessTypeList(businessType); + for (BaseBusinessType baseBusinessType : baseBusinessTypes) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(1L); + typeRelation.setRelationId(baseBusinessType.getObjid()); + typeRelation.setUnitName(baseBusinessType.getBusinessName()); + typeRelations.add(typeRelation); + } + } else if (type == 2L) { + BaseSubentryType subentryType = new BaseSubentryType(); + subentryType.setParentId(1L); + List baseSubentryTypes = baseSubentryTypeMapper.selectBaseSubentryTypeList(subentryType); + for (BaseSubentryType baseSubentryType : baseSubentryTypes) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(2L); + typeRelation.setRelationId(baseSubentryType.getObjid()); + typeRelation.setUnitName(baseSubentryType.getSubentryName()); + typeRelations.add(typeRelation); + } + } + return typeRelations; + } + + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfoServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfoServiceImpl.java new file mode 100644 index 000000000..bab2f3f08 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseMonitorInfoServiceImpl.java @@ -0,0 +1,519 @@ +package com.op.energy.base.service.impl; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.exception.ServiceException; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.*; +import com.op.energy.base.domain.vo.MonitorVo; +import com.op.energy.base.mapper.*; +import com.op.energy.base.service.IBaseMonitorInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 计量设备信息Service业务层处理 + * + * @author YinQ + * @date 2023-04-06 + */ +@Service +public class BaseMonitorInfoServiceImpl implements IBaseMonitorInfoService { + @Autowired + private BaseMonitorInfoMapper baseMonitorInfoMapper; + + @Autowired + private BaseBusinessTypeMapper baseBusinessTypeMapper; + + @Autowired + private BaseSubentryTypeMapper baseSubentryTypeMapper; + + @Autowired + private BaseBuildInfoMapper baseBuildInfoMapper; + + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + @Autowired + private BaseLineLossMapper baseLineLossMapper; + + @Autowired + private BasePublicUserMapper basePublicUserMapper; + + /** + * 查询计量设备信息 + * + * @param objid 计量设备信息主键 + * @return 计量设备信息 + */ + @Override + @DS("#header.poolName") + public BaseMonitorInfo selectBaseMonitorInfoByObjid(Long objid) { + return baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(objid); + } + + /** + * 查询计量设备信息列表 + * + * @param baseMonitorInfo 计量设备信息 + * @return 计量设备信息 + */ + @Override +// @DataScope(deptAlias = "null") + @DS("#header.poolName") + public List selectBaseMonitorInfoList(BaseMonitorInfo baseMonitorInfo) { + return baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + } + + /** + * 新增计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { + List baseMonitorInfos = baseMonitorInfoMapper.checkMonitorIdLegal(baseMonitorInfo); + if (baseMonitorInfos.size() != 0) { + throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); + } + try { + BaseMonitorInfo monitor = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); + monitor.setAncestors(monitor.getAncestors() + "," + monitor.getMonitorId()); + String[] split = monitor.getAncestors().split(","); + monitor.setGrade(split.length); + this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), + baseMonitorInfo.getBusinessId(), baseMonitorInfo.getSubentryId()); + List subsetList = this.selectMonitorSubsetList(new BaseMonitorInfo()); + //添加线损对象 + this.insertLineLossList(subsetList); + } catch (Exception e) { + System.out.println("新增计量设备信息异常:" + e.getMessage()); + } + baseMonitorInfo.setCreateTime(DateUtils.getNowDate()); + baseMonitorInfo.setCreateBy(SecurityUtils.getUsername()); + return baseMonitorInfoMapper.insertBaseMonitorInfo(baseMonitorInfo); + } + + /** + * 修改计量设备信息 + * + * @param baseMonitorInfo 计量设备信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { + List baseMonitorInfos = baseMonitorInfoMapper.checkMonitorIdLegal(baseMonitorInfo); + if (baseMonitorInfos.size() > 1) { + throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); + } + try { + BaseMonitorInfo newParenMonitorInfo = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); + BaseMonitorInfo oldDeptMonitorInfo = selectBaseMonitorInfoByObjid(baseMonitorInfo.getObjid()); + if (StringUtils.isNotNull(newParenMonitorInfo) && StringUtils.isNotNull(oldDeptMonitorInfo)) { + String newAncestors = newParenMonitorInfo.getAncestors() + "," + oldDeptMonitorInfo.getMonitorId(); + String oldAncestors = oldDeptMonitorInfo.getAncestors(); + baseMonitorInfo.setAncestors(newAncestors); + String[] split = baseMonitorInfo.getAncestors().split(","); + baseMonitorInfo.setGrade(split.length); + + updateMonitorChildren(baseMonitorInfo.getMonitorId(), newAncestors, oldAncestors); + } + + this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), + baseMonitorInfo.getBusinessId(), baseMonitorInfo.getSubentryId()); + } catch (Exception e) { + e.printStackTrace(); + } + baseMonitorInfo.setUpdateTime(DateUtils.getNowDate()); + baseMonitorInfo.setUpdateBy(SecurityUtils.getUsername()); + return baseMonitorInfoMapper.updateBaseMonitorInfo(baseMonitorInfo); + } + + @DS("#header.poolName") + public List selectChildrenMonitorById(String monitorId) { + List children = baseMonitorInfoMapper.selectChildrenMonitorById(monitorId); + return children; + } + + /** + * 修改子元素关系 + * + * @param monitorId 被修改的ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + @DS("#header.poolName") + private void updateMonitorChildren(String monitorId, String newAncestors, String oldAncestors) { + List children = baseMonitorInfoMapper.selectChildrenMonitorById(monitorId); + for (BaseMonitorInfo child : children) { + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + } + if (children.size() > 0) { + baseMonitorInfoMapper.updateMonitorChildren(children); + } + + } + + /** + * 修改子元素关系 + * + * @param deptId 被修改的部门ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ +// public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) +// { +// List children = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(deptId); +// for (SysDept child : children) +// { +// child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); +// } +// if (children.size() > 0) +// { +// deptMapper.updateDeptChildren(children); +// } +// } + + + /** + * 批量删除计量设备信息 + * + * @param objids 需要删除的计量设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMonitorInfoByObjids(String objids) { + return baseMonitorInfoMapper.deleteBaseMonitorInfoByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除计量设备信息信息 + * + * @param objid 计量设备信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseMonitorInfoByObjid(Long objid) { + return baseMonitorInfoMapper.deleteBaseMonitorInfoByObjid(objid); + } + + /** + * 查询计量设备信息树列表 + * + * @return 所有计量设备信息信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseMonitorInfoTree(Long monitorType) { + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setMonitorType(monitorType); + List baseMonitorInfoList = baseMonitorInfoMapper.selectBaseMonitorInfoList(monitorInfo); + List ztrees = new ArrayList<>(); + for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfoList) { + BaseTree ztree = new BaseTree(); + ztree.setId(baseMonitorInfo.getObjid()); + ztree.setpId(baseMonitorInfo.getParentId()); + ztree.setName(baseMonitorInfo.getMonitorName()); + ztree.setTitle(baseMonitorInfo.getMonitorName()); + ztree.setMonitorId(baseMonitorInfo.getMonitorId()); + ztrees.add(ztree); + } + return ztrees; + } + + /** + * 查询计量设备有子集的父级List + * + * @param baseMonitorInfo 计量设备信息 + * @return + */ + @Override + @DS("#header.poolName") + public List selectMonitorSubsetList(BaseMonitorInfo baseMonitorInfo) { + List result = new ArrayList<>(); + try { + List baseMonitorInfoList = baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + result = baseMonitorInfoList.stream() + .filter(info -> info.getParentId() == null || baseMonitorInfoList.stream() + .anyMatch(parent -> info.getObjid().equals(parent.getParentId()))) + .collect(Collectors.toList()); + } catch (Exception e) { + System.out.println("查询计量设备有子集的父级List异常:" + e.getMessage()); + } + return result; + } + + + /** + * monitor获取所有子集 + * + * @param monitorInfoList + * @return + */ + public HashMap> buildMonitorMap(List monitorInfoList) { + HashMap> resultMap = new HashMap<>(); + for (BaseMonitorInfo monitorInfo : monitorInfoList) { + String monitorId = monitorInfo.getMonitorId(); + Long parentId = monitorInfo.getParentId(); + List subList = resultMap.getOrDefault(monitorId, new ArrayList<>()); + subList.add(monitorInfo); + resultMap.put(monitorId, subList); + if (parentId != null) { + List parentSubList = resultMap.getOrDefault(parentId.toString(), new ArrayList<>()); + parentSubList.add(monitorInfo); + resultMap.put(parentId.toString(), parentSubList); + } + } + return buildChildMap(resultMap, null); + } + + private static HashMap> buildChildMap(HashMap> resultMap, String parentId) { + HashMap> childMap = new HashMap<>(); + for (Map.Entry> entry : resultMap.entrySet()) { + String monitorId = entry.getKey(); + BaseMonitorInfo monitorInfo = entry.getValue().get(0); + Long parent = monitorInfo.getParentId(); + if (parentId == null && parent == null || parentId != null && parentId.equals(parent.toString())) { + childMap.put(monitorId, entry.getValue()); + List children = buildChildMap(resultMap, monitorId).get(monitorId); + if (children != null) { + entry.getValue().addAll(children); + } + } + } + return childMap; + } + + + /** + * 新增或更新计量与类型对应关系 + * + * @param buildId + * @param businessId + * @param subentryId + */ + @DS("#header.poolName") + private void insertOrUpdateBaseTypeRelation(String monitorId, String buildId, String businessId, String subentryId) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setMonitorId(monitorId); + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(typeRelation); + if (baseTypeRelations.size() > 0) { + String[] objids = baseTypeRelations.stream(). + map(BaseTypeRelation::getObjid).map(String::valueOf).toArray(String[]::new); + baseTypeRelationMapper.deleteBaseTypeRelationByObjids(objids); + } + // type: 0-建筑 1-业态 2-分项 + if (StringUtils.isNotEmpty(buildId)) { + String[] buildIds = buildId.split(","); + for (String id : buildIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(0L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + if (StringUtils.isNotEmpty(businessId)) { + String[] businessIds = businessId.split(","); + for (String id : businessIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(1L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + if (StringUtils.isNotEmpty(subentryId)) { + String[] subentryIds = subentryId.split(","); + for (String id : subentryIds) { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorId(monitorId); + relation.setType(2L); + relation.setRelationId(Long.parseLong(id)); + baseTypeRelationMapper.insertBaseTypeRelation(relation); + } + } + } + + /** + * 新增线损对象信息 + * + * @param monitorInfoList + */ + @DS("#header.poolName") + private void insertLineLossList(List monitorInfoList) { + boolean flag = true; + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(new BaseLineLoss()); + if (monitorInfoList.size() == 0) { + return; + } else if (baseLineLosses.size() == 0) { + flag = false; + } + for (BaseMonitorInfo monitorInfo : monitorInfoList) { + boolean isHaveMonitor = true; + if (flag) { + for (BaseLineLoss baseLineLoss : baseLineLosses) { + if (baseLineLoss.getMonitorId().equals(monitorInfo.getMonitorId())) { + isHaveMonitor = false; + break; + } + } + } + if (isHaveMonitor) { + BaseLineLoss baseLineLoss = new BaseLineLoss(); + baseLineLoss.setMonitorId(monitorInfo.getMonitorId()); + baseLineLoss.setMonitorName(monitorInfo.getMonitorName()); + baseLineLoss.setLineLossId(monitorInfo.getMonitorId()); + baseLineLoss.setLineLossName(monitorInfo.getMonitorName()); + baseLineLoss.setMonitorType(monitorInfo.getMonitorType()); + baseLineLoss.setLineLossStatus(monitorInfo.getMonitorStatus()); + baseLineLoss.setCreateBy(SecurityUtils.getUsername()); + baseLineLoss.setCreateTime(new Date()); + baseLineLossMapper.insertBaseLineLoss(baseLineLoss); + } + } + } + + /** + * 获取monitorId下一级不为假表的节点 + * + * @param monitors + * @param monitorId + * @return + */ + public static List getNextLevelAmmeter(List monitors, String monitorId) { + List result = new ArrayList<>(); + BaseMonitorInfo current = null; + for (BaseMonitorInfo monitor : monitors) { + if (monitor.getMonitorId().equals(monitorId)) { + current = monitor; + break; + } + } + if (current == null) { + return result; + } + for (BaseMonitorInfo child : monitors) { + if (child.getParentId().equals(current.getObjid()) && child.getMonitorStatus() != 1) { + if (child.getIsAmmeter().equals("true")) { + result.add(child); + } else { + List subResult = getNextLevelAmmeter(monitors, child.getMonitorId()); + result.addAll(subResult); + } + } + } + return result; + } + + /** + * 查询类型园区下第一级 + * @param type + * @return + */ + @Override + @DS("#header.poolName") + public ArrayList selectTypeSubset(Long type) { + ArrayList typeRelations = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setType(0L); + relation.setRelationId(1L); + relation.setUnitName("全部"); + typeRelations.add(relation); + if (type == 0){ + BaseBuildInfo baseBuildInfo = new BaseBuildInfo(); + baseBuildInfo.setParentId(1L); + List baseBuildInfos = baseBuildInfoMapper.selectBaseBuildInfoList(baseBuildInfo); + for (BaseBuildInfo buildInfo : baseBuildInfos) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(0L); + typeRelation.setRelationId(buildInfo.getObjid()); + typeRelation.setUnitName(buildInfo.getBuildName()); + typeRelations.add(typeRelation); + } + }else if (type == 1L){ + BaseBusinessType businessType = new BaseBusinessType(); + businessType.setParentId(1L); + List baseBusinessTypes = baseBusinessTypeMapper.selectBaseBusinessTypeList(businessType); + for (BaseBusinessType baseBusinessType : baseBusinessTypes) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(1L); + typeRelation.setRelationId(baseBusinessType.getObjid()); + typeRelation.setUnitName(baseBusinessType.getBusinessName()); + typeRelations.add(typeRelation); + } + }else if (type == 2L){ + BaseSubentryType subentryType = new BaseSubentryType(); + subentryType.setParentId(1L); + List baseSubentryTypes = baseSubentryTypeMapper.selectBaseSubentryTypeList(subentryType); + for (BaseSubentryType baseSubentryType : baseSubentryTypes) { + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(2L); + typeRelation.setRelationId(baseSubentryType.getObjid()); + typeRelation.setUnitName(baseSubentryType.getSubentryName()); + typeRelations.add(typeRelation); + } + } + return typeRelations; + } + + @Override + @DS("#header.poolName") + public List monitorLedgerList(BaseMonitorInfo baseMonitorInfo) { + return baseMonitorInfoMapper.monitorLedgerList(baseMonitorInfo); + } + + @Override + @DS("#header.poolName") + public List selectMonitor(Long publicShareId) { + /**查询修改本条信息*/ + BasePublicUser basePublicUser = basePublicUserMapper.selectBasePublicUserById(publicShareId); + BaseMonitorInfo baseMonitorInfo=new BaseMonitorInfo(); + baseMonitorInfo.setPublicShareType(1); + List baseMonitorInfoList=baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + List BaseMonitorInfoVOS=new ArrayList<>(); + if (baseMonitorInfoList.size()>0){ + BaseMonitorInfoVOS=baseMonitorInfoList.stream().map(bmil -> { + BaseMonitorInfo b=new BaseMonitorInfo(); + b.setMonitorId(bmil.getMonitorId()); + b.setMonitorName(bmil.getMonitorName()); + for (MonitorVo value : basePublicUser.getMonitors()){ + if (bmil.getMonitorId().equals(value.getMonitorId())){ + b.setFlag(true); + } + } + return b; + }).collect(Collectors.toList()); + + } + return BaseMonitorInfoVOS; + } + + @Override + @DS("#header.poolName") + public List selectDistinctPublicMonitor(String[] ids) { + return basePublicUserMapper.selectDistinctPublicMonitor(ids); + } + + @Override + @DS("#header.poolName") + public BigDecimal queryPublicMonitorExpend(String[] ids, String startTime, String endTime, Long energyType) { + if (energyType == 3L){ + return basePublicUserMapper.queryPublicMonitorWaterExpend(ids,startTime,endTime); + } + return basePublicUserMapper.queryPublicMonitorDnbExpend(ids,startTime,endTime); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicManageServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicManageServiceImpl.java new file mode 100644 index 000000000..320cec481 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicManageServiceImpl.java @@ -0,0 +1,164 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.datascope.annotation.DataScope; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.BasePublicManage; +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.BasePublicUserRecord; +import com.op.energy.base.domain.vo.MonitorVo; +import com.op.energy.base.mapper.BasePublicManageMapper; +import com.op.energy.base.mapper.BasePublicUserRecordMapper; +import com.op.energy.base.service.IBasePublicManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 公摊管理Service业务层处理 + * + * @author ruoyi + * @date 2023-04-27 + */ +@Service +public class BasePublicManageServiceImpl implements IBasePublicManageService { + @Autowired + private BasePublicManageMapper basePublicManageMapper; + + @Autowired + private BasePublicUserRecordMapper basePublicUserRecordMapper; + + /** + * 查询公摊管理 + * + * @param id 公摊管理主键 + * @return 公摊管理 + */ + @Override + @DS("#header.poolName") + public BasePublicManage selectBasePublicManageById(Long id) { + return basePublicManageMapper.selectBasePublicManageById(id); + } + + /** + * 查询公摊管理列表 + * + * @param basePublicManage 公摊管理 + * @return 公摊管理 + */ + @Override + @DataScope(deptAlias = "null") + @DS("#header.poolName") + public List selectBasePublicManageList(BasePublicManage basePublicManage) { + return basePublicManageMapper.selectBasePublicManageList(basePublicManage); + } + + /** + * 新增公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBasePublicManage(BasePublicManage basePublicManage) { + LocalDateTime currentTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + String nowDate = currentTime.format(formatter); + basePublicManage.setId(Long.parseLong(nowDate)); + basePublicManage.setCreateTime(DateUtils.getNowDate()); + this.insertPublicUserRecord(basePublicManage); + return basePublicManageMapper.insertBasePublicManage(basePublicManage); + } + + /** + * 添加公摊用户数据记录 + * @param basePublicManage + */ + @DS("#header.poolName") + private void insertPublicUserRecord(BasePublicManage basePublicManage) { + List basePublicUsers = basePublicManage.getBasePublicUsers(); + try { + for (BasePublicUser basePublicUser : basePublicUsers) { + BasePublicUserRecord publicUserRecord = new BasePublicUserRecord(); + publicUserRecord.setPublicShareId(String.valueOf(basePublicManage.getId())); + publicUserRecord.setPublicUserId(basePublicUser.getId()); + List monitorIdList = basePublicUser.getMonitors().stream().filter(e -> e.getPublicShareType() == 0) + .map(MonitorVo::getMonitorId).collect(Collectors.toList()); + publicUserRecord.setPublicMonitorIds(String.join(",", monitorIdList)); + publicUserRecord.setStartTime(basePublicManage.getBeginTime()); + publicUserRecord.setEndTime(basePublicManage.getEndTime()); + publicUserRecord.setAllocationRatio(basePublicUser.getPercentage()); + publicUserRecord.setPublicEnergyConsumption(basePublicUser.getPublicExpend()); + publicUserRecord.setOwnerEnergyConsumption(basePublicUser.getUserExpend()); + publicUserRecord.setEnergyType(Long.parseLong(basePublicManage.getPublicShareType())); + publicUserRecord.setCreatedBy(SecurityUtils.getUsername()); + publicUserRecord.setCreatedTime(DateUtils.getNowDate()); + basePublicUserRecordMapper.insertBasePublicUserRecord(publicUserRecord); + } + } catch (NumberFormatException e) { + System.out.println("添加公摊用户数据记录异常:" + e.getMessage()); + } + } + + /** + * 修改公摊管理 + * + * @param basePublicManage 公摊管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBasePublicManage(BasePublicManage basePublicManage) { + basePublicManage.setUpdateTime(DateUtils.getNowDate()); + return basePublicManageMapper.updateBasePublicManage(basePublicManage); + } + + /** + * 批量删除公摊管理 + * + * @param ids 需要删除的公摊管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicManageByIds(String ids) { + return basePublicManageMapper.deleteBasePublicManageByIds(Convert.toStrArray(ids)); + } + + /** + * 删除公摊管理信息 + * + * @param id 公摊管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicManageById(Long id) { + return basePublicManageMapper.deleteBasePublicManageById(id); + } + + /** + * 第二步:确认公摊 + * + * @param basePublicManage + * @return + */ + @Override + @DS("#header.poolName") + public List AddStepTwo(BasePublicManage basePublicManage) { + List basePublicManages = new ArrayList<>(); + + + return null; + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserRecordServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserRecordServiceImpl.java new file mode 100644 index 000000000..2c887e6eb --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserRecordServiceImpl.java @@ -0,0 +1,104 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BasePublicUserRecord; +import com.op.energy.base.mapper.BasePublicUserRecordMapper; +import com.op.energy.base.service.IBasePublicUserRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * 公摊用户数据记录Service业务层处理 + * + * @author YinQ + * @date 2023-06-25 + */ +@Service +public class BasePublicUserRecordServiceImpl implements IBasePublicUserRecordService +{ + @Autowired + private BasePublicUserRecordMapper basePublicUserRecordMapper; + + /** + * 查询公摊用户数据记录 + * + * @param objid 公摊用户数据记录主键 + * @return 公摊用户数据记录 + */ + @Override + @DS("#header.poolName") + public BasePublicUserRecord selectBasePublicUserRecordByObjid(Long objid) + { + return basePublicUserRecordMapper.selectBasePublicUserRecordByObjid(objid); + } + + /** + * 查询公摊用户数据记录列表 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 公摊用户数据记录 + */ + @Override + @DS("#header.poolName") + public List selectBasePublicUserRecordList(BasePublicUserRecord basePublicUserRecord) + { + return basePublicUserRecordMapper.selectBasePublicUserRecordList(basePublicUserRecord); + } + + /** + * 新增公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord) + { + return basePublicUserRecordMapper.insertBasePublicUserRecord(basePublicUserRecord); + } + + /** + * 修改公摊用户数据记录 + * + * @param basePublicUserRecord 公摊用户数据记录 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBasePublicUserRecord(BasePublicUserRecord basePublicUserRecord) + { + basePublicUserRecord.setUpdateTime(DateUtils.getNowDate()); + return basePublicUserRecordMapper.updateBasePublicUserRecord(basePublicUserRecord); + } + + /** + * 批量删除公摊用户数据记录 + * + * @param objids 需要删除的公摊用户数据记录主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicUserRecordByObjids(Long[] objids) + { + return basePublicUserRecordMapper.deleteBasePublicUserRecordByObjids(objids); + } + + /** + * 删除公摊用户数据记录信息 + * + * @param objid 公摊用户数据记录主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicUserRecordByObjid(Long objid) + { + return basePublicUserRecordMapper.deleteBasePublicUserRecordByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserServiceImpl.java new file mode 100644 index 000000000..ef6896414 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BasePublicUserServiceImpl.java @@ -0,0 +1,334 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.datascope.annotation.DataScope; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.domain.BaseMonitorPublic; +import com.op.energy.base.domain.BasePublicUser; +import com.op.energy.base.domain.vo.MonitorVo; +import com.op.energy.base.domain.vo.PublicManageVo; +import com.op.energy.base.mapper.BaseMonitorPublicMapper; +import com.op.energy.base.mapper.BasePublicUserMapper; +import com.op.energy.base.service.IBasePublicUserService; +import com.op.energy.report.service.IDataAnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * 公摊用户Service业务层处理 + * + * @author yangwl + * @date 2023-04-24 + */ +@Service +public class BasePublicUserServiceImpl implements IBasePublicUserService { + @Autowired + private BasePublicUserMapper basePublicUserMapper; + + @Autowired + private BaseMonitorPublicMapper baseMonitorPublicMapper; + + @Autowired + private IDataAnalysisService dataAnalysisService; + + /** + * 查询公摊用户 + * + * @param id 公摊用户主键 + * @return 公摊用户 + */ + @Override + @DS("#header.poolName") + public BasePublicUser selectBasePublicUserById(Long id) { + return basePublicUserMapper.selectBasePublicUserById(id); + } + + /** + * 查询公摊用户列表 + * + * @param basePublicUser 公摊用户 + * @return 公摊用户 + */ + @Override + @DataScope(deptAlias = "null") + @DS("#header.poolName") + public List selectBasePublicUserList(BasePublicUser basePublicUser) { + return basePublicUserMapper.selectBasePublicUserList(basePublicUser); + } + + /** + * 新增公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + @DS("#header.poolName") + @Override + public int insertBasePublicUser(BasePublicUser basePublicUser) { + basePublicUser.setCreateBy(SecurityUtils.getUsername()); + basePublicUser.setCreateTime(DateUtils.getNowDate()); + int rows = basePublicUserMapper.insertBasePublicUser(basePublicUser); + insertPublicUserMonitor(basePublicUser); + return rows; + } + + public void insertPublicUserMonitor(BasePublicUser basePublicUser) { + String[] publicShareIds = basePublicUser.getPublicShareIds(); + String[] publicMonitorIds = basePublicUser.getPublicMonitorIds(); + if (StringUtils.isNotNull(publicShareIds)) { + // 新增 + List list = new ArrayList(); + for (String publicShareId : publicShareIds) { + BaseMonitorPublic up = new BaseMonitorPublic(); + up.setPublicShareId(basePublicUser.getId()); + up.setMonitorId(publicShareId); + up.setPublicShareType(1); + list.add(up); + } + for (String publicMonitorId : publicMonitorIds) { + BaseMonitorPublic up = new BaseMonitorPublic(); + up.setPublicShareId(basePublicUser.getId()); + up.setMonitorId(publicMonitorId); + up.setPublicShareType(0); + list.add(up); + } + if (list.size() > 0) { + baseMonitorPublicMapper.batchMonitorPublic(list); + } + } + } + + /** + * 修改公摊用户 + * + * @param basePublicUser 公摊用户 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBasePublicUser(BasePublicUser basePublicUser) { + baseMonitorPublicMapper.deleteBaseMonitorPublicById(basePublicUser.getId()); + String[] publicShareIds = basePublicUser.getPublicShareIds(); + String[] publicMonitorIds = basePublicUser.getPublicMonitorIds(); + if (StringUtils.isNotNull(publicShareIds)) { + // 新增 + List list = new ArrayList(); + for (String publicShareId : publicShareIds) { + BaseMonitorPublic up = new BaseMonitorPublic(); + up.setPublicShareId(basePublicUser.getId()); + up.setMonitorId(publicShareId); + up.setPublicShareType(1); + list.add(up); + } + for (String publicMonitorId : publicMonitorIds) { + BaseMonitorPublic up = new BaseMonitorPublic(); + up.setPublicShareId(basePublicUser.getId()); + up.setMonitorId(publicMonitorId); + up.setPublicShareType(0); + list.add(up); + } + if (list.size() > 0) { + baseMonitorPublicMapper.batchMonitorPublic(list); + } + } + basePublicUser.setUpdateTime(DateUtils.getNowDate()); + return basePublicUserMapper.updateBasePublicUser(basePublicUser); + } + + /** + * 批量删除公摊用户 + * + * @param ids 需要删除的公摊用户主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicUserByIds(String ids) { + return basePublicUserMapper.deleteBasePublicUserByIds(Convert.toStrArray(ids)); + } + + /** + * 删除公摊用户信息 + * + * @param id 公摊用户主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBasePublicUserById(Long id) { + return basePublicUserMapper.deleteBasePublicUserById(id); + } + + @Override + @DS("#header.poolName") + public List selectlistChild(Long id) { + return basePublicUserMapper.selectlistChild(id); + } + + @Override + @DS("#header.poolName") + public List selectPublicUserList(PublicManageVo publicManageVo, BigDecimal sumPublicExpend) { + //面积分摊 + List basePublicUsers = basePublicUserMapper.selectPublicUserList(Convert.toStrArray(publicManageVo.getIds())); + BigDecimal sumExpend = new BigDecimal(0); + //每个公共表下挂所属用户List,根据分摊类型计算公摊比率 + Map> monitorIdMap = new HashMap<>(); + for (BasePublicUser basePublicUser : basePublicUsers) { + if (basePublicUser.getMonitors().size() == 0) { + basePublicUser.setUserExpend(new BigDecimal(0)); + basePublicUser.setPublicExpend(new BigDecimal(0)); + continue; + } + //公摊表与用户存储关系 + String[] monitorIdList = basePublicUser.getMonitors().stream().peek(e -> { + //0-公共表用户存入表具 + if (e.getPublicShareType() == 0) { + if (monitorIdMap.containsKey(e.getMonitorId())) { + List publicUsers = monitorIdMap.get(e.getMonitorId()); + publicUsers.add(basePublicUser); + monitorIdMap.put(e.getMonitorId(), publicUsers); + } else { + ArrayList publicUsers = new ArrayList<>(); + publicUsers.add(basePublicUser); + monitorIdMap.put(e.getMonitorId(), publicUsers); + } + if (publicManageVo.getShareType() == 2L) { + BigDecimal publicExpend = basePublicUserMapper.queryPublicMonitorDnbExpend(new String[]{e.getMonitorId()}, publicManageVo.getStartTime(), publicManageVo.getEndTime()); + e.setMonitorExpend(publicExpend); + } else if (publicManageVo.getShareType() == 3L) { + BigDecimal publicExpend = basePublicUserMapper.queryPublicMonitorWaterExpend(new String[]{e.getMonitorId()}, publicManageVo.getStartTime(), publicManageVo.getEndTime()); + e.setMonitorExpend(publicExpend); + } + } + }).filter(e -> e.getPublicShareType() == 1) + .map(MonitorVo::getMonitorId).toArray(String[]::new); + //计算各用户能耗 + if (publicManageVo.getShareType() == 2L) { + BigDecimal userExpend = basePublicUserMapper.queryPublicMonitorDnbExpend(monitorIdList, publicManageVo.getStartTime(), publicManageVo.getEndTime()); + sumExpend = sumExpend.add(userExpend); + basePublicUser.setUserExpend(userExpend); + } else if (publicManageVo.getShareType() == 3L) { + BigDecimal userExpend = basePublicUserMapper.queryPublicMonitorWaterExpend(monitorIdList, publicManageVo.getStartTime(), publicManageVo.getEndTime()); + sumExpend = sumExpend.add(userExpend); + basePublicUser.setUserExpend(userExpend); + } + } + + //公摊分析 + return basePublicUsersAnalysis(monitorIdMap, basePublicUsers, publicManageVo, sumPublicExpend); + } + + /** + * 分析每个用户下公摊表的能耗 + * + * @param monitorIdMap + * @param basePublicUsers + * @param publicManageVo + * @return + */ + @DS("#header.poolName") + private List basePublicUsersAnalysis(Map> monitorIdMap, List basePublicUsers, PublicManageVo publicManageVo, BigDecimal sumPublicExpend) { + //shareRule 1-能耗分摊 2-面积分摊 4- 综合分摊 + Long shareRule = publicManageVo.getShareRule(); + + //percentage 初步比率:每个用户根据公摊规则下的比率 + if (shareRule == 1L) { + for (String monitorId : monitorIdMap.keySet()) { + List publicUsers = monitorIdMap.get(monitorId); + BigDecimal sumUserExpend = publicUsers.stream().map(BasePublicUser::getUserExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + for (BasePublicUser publicUser : publicUsers) { + BigDecimal monitorExpendRate = publicUser.getUserExpend().divide(sumUserExpend, 6, RoundingMode.HALF_UP); + for (MonitorVo monitor : publicUser.getMonitors()) { + if (monitor.getMonitorId().equals(monitorId)) { + monitor.setMonitorExpendRate(monitorExpendRate); + } + } + } + } + } + + //面积公摊 计算公摊比率 + if (shareRule == 2L || shareRule == 4L) { + for (String monitorId : monitorIdMap.keySet()) { + List publicUsers = monitorIdMap.get(monitorId); + BigDecimal sumArea = publicUsers.stream().map(BasePublicUser::getArea) + .map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + for (BasePublicUser publicUser : publicUsers) { + BigDecimal monitorExpendRate = BigDecimal.valueOf(publicUser.getArea()).divide(sumArea, 6, RoundingMode.HALF_UP); + for (MonitorVo monitor : publicUser.getMonitors()) { + if (monitor.getMonitorId().equals(monitorId)) { + monitor.setMonitorExpendRate(monitorExpendRate); + } + } + } + } + } + //手动分摊 + if (shareRule == 3L) { + return basePublicUsers; + } + + // 客户本月公共能耗(用电) 使用量 = 公共设施设备用电分摊量+公共设施设备用电损耗分摊量 + // 公共设施设备用电量分摊方式: 消防(系统用电) 及安防(监控、电子围栏、道闸等) 设施设备、公共区域照明设备等公共设备用电按照面积分摊。 + // 客户本月公共设施设备用电分摊量 = 园区本月公共设施设备用电总量 X 该客户租赁面积 / 园区总租凭面积 + // 公共设施设备用电损耗量分摊方式: 公共区域设备设施线路损耗、变压器无功损耗电量按客户用电比例分摊 + // 该客户本月公共设施设备用电损耗分摊量 = 园区本月公共设施设备线损总量 X 该客户本月用水量 / 园区各客户本月使用总量 + if (shareRule == 4L) { + BaseLineLoss baseLineLoss = new BaseLineLoss(); + Map lineLossMap = new HashMap<>(); + lineLossMap.put("beginCollectTime", publicManageVo.getStartTime()); + lineLossMap.put("endCollectTime", publicManageVo.getEndTime()); + baseLineLoss.setParams(lineLossMap); + baseLineLoss.setMonitorType(publicManageVo.getShareType()); + List> lossMaps = dataAnalysisService.lineLossAnalysisData(baseLineLoss); + if (lossMaps.size() > 0) { + for (String monitorId : monitorIdMap.keySet()) { + for (Map lossMap : lossMaps) { + String monitorIdLoss = String.valueOf(lossMap.get("monitorId")); + if (monitorId.equals(monitorIdLoss)) { + List publicUsers = monitorIdMap.get(monitorId); + BigDecimal sumUserExpend = publicUsers.stream().map(BasePublicUser::getUserExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + for (BasePublicUser publicUser : publicUsers) { + BigDecimal monitorExpendRate = publicUser.getUserExpend().divide(sumUserExpend, 6, RoundingMode.HALF_UP); + String lossUsage = lossMap.get("lossUsage"); + BigDecimal multiply = monitorExpendRate.multiply(new BigDecimal(lossUsage)); + publicUser.setPublicExpend(publicUser.getPublicExpend().add(multiply).setScale(2, RoundingMode.HALF_UP)); + } + } + } + } + } + } + + // 计算每个用户公共表 耗量比率和耗量 + for (BasePublicUser basePublicUser : basePublicUsers) { + for (MonitorVo monitor : basePublicUser.getMonitors()) { + if (monitor.getPublicShareType() == 0 && Long.valueOf(monitor.getMonitorType()).equals(publicManageVo.getShareType())) { + BigDecimal multiply = monitor.getMonitorExpendRate().multiply(monitor.getMonitorExpend()).setScale(2, RoundingMode.HALF_UP); + BigDecimal publicExpend = basePublicUser.getPublicExpend(); + basePublicUser.setPublicExpend(publicExpend.add(multiply)); + } + } + if (sumPublicExpend.compareTo(new BigDecimal(0)) > 0) { + basePublicUser.setPercentage(basePublicUser.getPublicExpend().multiply(new BigDecimal(100)).divide(sumPublicExpend, 2, RoundingMode.HALF_UP)); + } + } + return basePublicUsers; + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseSubentryTypeServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseSubentryTypeServiceImpl.java new file mode 100644 index 000000000..dee773472 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseSubentryTypeServiceImpl.java @@ -0,0 +1,192 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseSubentryType; +import com.op.energy.base.domain.Ztree; +import com.op.energy.base.domain.vo.TreeSelect; +import com.op.energy.base.mapper.BaseSubentryTypeMapper; +import com.op.energy.base.service.IBaseSubentryTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 分项类型管理Service业务层处理 + * + * @author YinQ + * @date 2023-05-06 + */ +@Service +public class BaseSubentryTypeServiceImpl implements IBaseSubentryTypeService { + @Autowired + private BaseSubentryTypeMapper baseSubentryTypeMapper; + + /** + * 查询分项类型管理 + * + * @param objid 分项类型管理主键 + * @return 分项类型管理 + */ + @Override + @DS("#header.poolName") + public BaseSubentryType selectBaseSubentryTypeByObjid(Long objid) { + return baseSubentryTypeMapper.selectBaseSubentryTypeByObjid(objid); + } + + /** + * 查询分项类型管理列表 + * + * @param baseSubentryType 分项类型管理 + * @return 分项类型管理 + */ + @Override + @DS("#header.poolName") + public List selectBaseSubentryTypeList(BaseSubentryType baseSubentryType) { + return baseSubentryTypeMapper.selectBaseSubentryTypeList(baseSubentryType); + } + + /** + * 新增分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseSubentryType(BaseSubentryType baseSubentryType) { + baseSubentryType.setCreateTime(DateUtils.getNowDate()); + return baseSubentryTypeMapper.insertBaseSubentryType(baseSubentryType); + } + + /** + * 修改分项类型管理 + * + * @param baseSubentryType 分项类型管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseSubentryType(BaseSubentryType baseSubentryType) { + baseSubentryType.setUpdateTime(DateUtils.getNowDate()); + return baseSubentryTypeMapper.updateBaseSubentryType(baseSubentryType); + } + + /** + * 批量删除分项类型管理 + * + * @param objids 需要删除的分项类型管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseSubentryTypeByObjids(Long[] objids) { + return baseSubentryTypeMapper.deleteBaseSubentryTypeByObjids(objids); + } + + /** + * 删除分项类型管理信息 + * + * @param objid 分项类型管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseSubentryTypeByObjid(Long objid) { + return baseSubentryTypeMapper.deleteBaseSubentryTypeByObjid(objid); + } + + @Override + @DS("#header.poolName") + public List selectSubentryList(BaseMonitorInfo baseMonitorInfo) { + BaseSubentryType baseBuildInfo = new BaseSubentryType(); + List menuList = baseSubentryTypeMapper.selectBaseSubentryTypeList(baseBuildInfo); + return menuList; + } + + @Override + @DS("#header.poolName") + public List buildTreeSelect(List subentrys) { + List menuTrees = buildTree(subentrys); + return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + @Override + @DS("#header.poolName") + public List buildTree(List menus) { + List returnList = new ArrayList(); + List tempList = menus.stream().map(BaseSubentryType::getObjid).collect(Collectors.toList()); + for (Iterator iterator = menus.iterator(); iterator.hasNext();) { + BaseSubentryType menu = (BaseSubentryType) iterator.next(); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(menu.getParentId())) { + recursionFn(menus, menu); + returnList.add(menu); + } + } + if (returnList.isEmpty()) { + returnList = menus; + } + return returnList; + } + + @Override + @DS("#header.poolName") + public List selectBaseSubentryTypeTree() { + List baseSubentryTypeList = baseSubentryTypeMapper.selectBaseSubentryTypeList(new BaseSubentryType()); + List ztrees = new ArrayList(); + for (BaseSubentryType baseSubentryType : baseSubentryTypeList) + { + Ztree ztree = new Ztree(); + ztree.setId(baseSubentryType.getObjid()); + ztree.setpId(baseSubentryType.getParentId()); + ztree.setName(baseSubentryType.getSubentryName()); + ztree.setTitle(baseSubentryType.getSubentryName()); + ztrees.add(ztree); + } + return ztrees; + } + + /** + * 递归列表 + * + * @param list + * @param t + */ + private void recursionFn(List list, BaseSubentryType t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (BaseSubentryType tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + /** + * 得到子节点列表 + */ + private List getChildList(List list, BaseSubentryType t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + BaseSubentryType n = (BaseSubentryType) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getObjid().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, BaseSubentryType t) { + return getChildList(list, t).size() > 0; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseTypeRelationServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseTypeRelationServiceImpl.java new file mode 100644 index 000000000..436ea8f1b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseTypeRelationServiceImpl.java @@ -0,0 +1,100 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.mapper.BaseTypeRelationMapper; +import com.op.energy.base.service.IBaseTypeRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * 计量与类型对应关系Service业务层处理 + * + * @author YinQ + * @date 2023-04-07 + */ +@Service +public class BaseTypeRelationServiceImpl implements IBaseTypeRelationService { + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + /** + * 查询计量与类型对应关系 + * + * @param objid 计量与类型对应关系主键 + * @return 计量与类型对应关系 + */ + @Override + @DS("#header.poolName") + public BaseTypeRelation selectBaseTypeRelationByObjid(Long objid) { + return baseTypeRelationMapper.selectBaseTypeRelationByObjid(objid); + } + + /** + * 查询计量与类型对应关系列表 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 计量与类型对应关系 + */ + @Override + @DS("#header.poolName") +// @DataScope(deptAlias = "null") + public List selectBaseTypeRelationList(BaseTypeRelation baseTypeRelation) { + return baseTypeRelationMapper.selectBaseTypeRelationList(baseTypeRelation); + } + + /** + * 新增计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseTypeRelation(BaseTypeRelation baseTypeRelation) { + baseTypeRelation.setCreateTime(DateUtils.getNowDate()); + return baseTypeRelationMapper.insertBaseTypeRelation(baseTypeRelation); + } + + /** + * 修改计量与类型对应关系 + * + * @param baseTypeRelation 计量与类型对应关系 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseTypeRelation(BaseTypeRelation baseTypeRelation) { + baseTypeRelation.setUpdateTime(DateUtils.getNowDate()); + return baseTypeRelationMapper.updateBaseTypeRelation(baseTypeRelation); + } + + /** + * 批量删除计量与类型对应关系 + * + * @param objids 需要删除的计量与类型对应关系主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseTypeRelationByObjids(String objids) { + return baseTypeRelationMapper.deleteBaseTypeRelationByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除计量与类型对应关系信息 + * + * @param objid 计量与类型对应关系主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseTypeRelationByObjid(Long objid) { + return baseTypeRelationMapper.deleteBaseTypeRelationByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseWaterThresholdServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseWaterThresholdServiceImpl.java new file mode 100644 index 000000000..c9190c70a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/BaseWaterThresholdServiceImpl.java @@ -0,0 +1,97 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.BaseWaterThreshold; +import com.op.energy.base.mapper.BaseWaterThresholdMapper; +import com.op.energy.base.service.IBaseWaterThresholdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 水阈值信息Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class BaseWaterThresholdServiceImpl implements IBaseWaterThresholdService { + @Autowired + private BaseWaterThresholdMapper baseWaterThresholdMapper; + + /** + * 查询水阈值信息 + * + * @param objid 水阈值信息主键 + * @return 水阈值信息 + */ + @Override + @DS("#header.poolName") + public BaseWaterThreshold selectBaseWaterThresholdByObjid(Long objid) { + return baseWaterThresholdMapper.selectBaseWaterThresholdByObjid(objid); + } + + /** + * 查询水阈值信息列表 + * + * @param baseWaterThreshold 水阈值信息 + * @return 水阈值信息 + */ + @Override + @DS("#header.poolName") + public List selectBaseWaterThresholdList(BaseWaterThreshold baseWaterThreshold) { + return baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); + } + + /** + * 新增水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold) { + baseWaterThreshold.setCreateTime(DateUtils.getNowDate()); + return baseWaterThresholdMapper.insertBaseWaterThreshold(baseWaterThreshold); + } + + /** + * 修改水阈值信息 + * + * @param baseWaterThreshold 水阈值信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseWaterThreshold(BaseWaterThreshold baseWaterThreshold) { + baseWaterThreshold.setUpdateTime(DateUtils.getNowDate()); + return baseWaterThresholdMapper.updateBaseWaterThreshold(baseWaterThreshold); + } + + /** + * 批量删除水阈值信息 + * + * @param objids 需要删除的水阈值信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseWaterThresholdByObjids(Long[] objids) { + return baseWaterThresholdMapper.deleteBaseWaterThresholdByObjids(objids); + } + + /** + * 删除水阈值信息信息 + * + * @param objid 水阈值信息主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBaseWaterThresholdByObjid(Long objid) { + return baseWaterThresholdMapper.deleteBaseWaterThresholdByObjid(objid); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/CbsMonitorReportServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/CbsMonitorReportServiceImpl.java new file mode 100644 index 000000000..d1c0d071e --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/CbsMonitorReportServiceImpl.java @@ -0,0 +1,132 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.CbsMonitorReport; +import com.op.energy.base.mapper.CbsMonitorReportMapper; +import com.op.energy.base.service.ICbsMonitorReportService; +import com.op.energy.report.domain.EmsApiVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * CBS抄报Service业务层处理 + * + * @author YinQ + * @date 2023-10-20 + */ +@Service +public class CbsMonitorReportServiceImpl implements ICbsMonitorReportService +{ + @Autowired + private CbsMonitorReportMapper cbsMonitorReportMapper; + + /** + * 查询CBS抄报 + * + * @param objId CBS抄报主键 + * @return CBS抄报 + */ + @Override + @DS("#header.poolName") + public CbsMonitorReport selectCbsMonitorReportByObjId(Long objId) + { + return cbsMonitorReportMapper.selectCbsMonitorReportByObjId(objId); + } + + /** + * 查询CBS抄报列表 + * + * @param cbsMonitorReport CBS抄报 + * @return CBS抄报 + */ + @Override + @DS("#header.poolName") + public List selectCbsMonitorReportList(CbsMonitorReport cbsMonitorReport) + { + return cbsMonitorReportMapper.selectCbsMonitorReportList(cbsMonitorReport); + } + + /** + * 新增CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertCbsMonitorReport(CbsMonitorReport cbsMonitorReport) + { + cbsMonitorReport.setCreateTime(DateUtils.getNowDate()); + return cbsMonitorReportMapper.insertCbsMonitorReport(cbsMonitorReport); + } + + /** + * 修改CBS抄报 + * + * @param cbsMonitorReport CBS抄报 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateCbsMonitorReport(CbsMonitorReport cbsMonitorReport) + { + cbsMonitorReport.setUpdateTime(DateUtils.getNowDate()); + return cbsMonitorReportMapper.updateCbsMonitorReport(cbsMonitorReport); + } + + /** + * 批量删除CBS抄报 + * + * @param objIds 需要删除的CBS抄报主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteCbsMonitorReportByObjIds(Long[] objIds) + { + return cbsMonitorReportMapper.deleteCbsMonitorReportByObjIds(objIds); + } + + /** + * 删除CBS抄报信息 + * + * @param objId CBS抄报主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteCbsMonitorReportByObjId(Long objId) + { + return cbsMonitorReportMapper.deleteCbsMonitorReportByObjId(objId); + } + + + /** + * 查询实时数据 + * @param emsApiVo CBS抄报 + * @return + */ + @Override + @DS("#header.poolName") + public List selectRealTimeMonitorList(EmsApiVo emsApiVo) + { + return cbsMonitorReportMapper.selectRealTimeMonitorList(emsApiVo); + } + + /** + * 查询上次CBS抄表数据 + * + * @param cbsMonitorReport CBS抄报主键 + * @return CBS抄报 + */ + @Override + @DS("#header.poolName") + public CbsMonitorReport selectLastTimeCbsMonitorReport(CbsMonitorReport cbsMonitorReport) + { + return cbsMonitorReportMapper.selectLastTimeCbsMonitorReport(cbsMonitorReport); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java new file mode 100644 index 000000000..d0c0d9995 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java @@ -0,0 +1,194 @@ +package com.op.energy.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.constant.CacheConstants; +import com.op.common.core.constant.UserConstants; +import com.op.common.core.exception.ServiceException; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.StringUtils; +import com.op.common.redis.service.RedisService; +import com.op.energy.base.domain.SysConfig; +import com.op.energy.base.mapper.SysConfigMapper; +import com.op.energy.base.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.util.Collection; +import java.util.List; + +/** + * 参数配置 服务层实现 + * + * @author sf + */ +@Service +public class SysConfigServiceImpl implements ISysConfigService { + @Autowired + private SysConfigMapper configMapper; + + @Autowired + private RedisService redisService; + + /** + * 项目启动时,初始化参数到缓存 + */ + @PostConstruct + public void init() { + loadingConfigCache(); + } + + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + @Override + public SysConfig selectConfigById(Long configId) { + SysConfig config = new SysConfig(); + config.setConfigId(configId); + return configMapper.selectConfig(config); + } + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数key + * @return 参数键值 + */ + @Override + public String selectConfigByKey(String configKey) { + String configValue = Convert.toStr(redisService.getCacheObject(getCacheKey(configKey))); + if (StringUtils.isNotEmpty(configValue)) { + return configValue; + } + SysConfig config = new SysConfig(); + config.setConfigKey(configKey); + SysConfig retConfig = configMapper.selectConfig(config); + if (StringUtils.isNotNull(retConfig)) { + redisService.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); + return retConfig.getConfigValue(); + } + return StringUtils.EMPTY; + } + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + @Override + public List selectConfigList(SysConfig config) { + return configMapper.selectConfigList(config); + } + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public int insertConfig(SysConfig config) { + int row = configMapper.insertConfig(config); + if (row > 0) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + return row; + } + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateConfig(SysConfig config) { + SysConfig temp = configMapper.selectConfigById(config.getConfigId()); + if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) { + redisService.deleteObject(getCacheKey(temp.getConfigKey())); + } + + int row = configMapper.updateConfig(config); + if (row > 0) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + return row; + } + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + */ + @Override + public void deleteConfigByIds(Long[] configIds) { + for (Long configId : configIds) { + SysConfig config = selectConfigById(configId); + if (StringUtils.equals(UserConstants.YES, config.getConfigType())) { + throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey())); + } + configMapper.deleteConfigById(configId); + redisService.deleteObject(getCacheKey(config.getConfigKey())); + } + } + + /** + * 加载参数缓存数据 + */ + @Override + public void loadingConfigCache() { + List configsList = configMapper.selectConfigList(new SysConfig()); + for (SysConfig config : configsList) { + redisService.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + } + + /** + * 清空参数缓存数据 + */ + @Override + public void clearConfigCache() { + Collection keys = redisService.keys(CacheConstants.SYS_CONFIG_KEY + "*"); + redisService.deleteObject(keys); + } + + /** + * 重置参数缓存数据 + */ + @Override + public void resetConfigCache() { + clearConfigCache(); + loadingConfigCache(); + } + + /** + * 校验参数键名是否唯一 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public boolean checkConfigKeyUnique(SysConfig config) { + Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); + SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); + if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + private String getCacheKey(String configKey) { + return CacheConstants.SYS_CONFIG_KEY + configKey; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysDatasourceServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysDatasourceServiceImpl.java new file mode 100644 index 000000000..e3af7f3a7 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysDatasourceServiceImpl.java @@ -0,0 +1,104 @@ +package com.op.energy.base.service.impl; + +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.domain.SysDatasource; +import com.op.energy.base.mapper.SysDatasourceMapper; +import com.op.energy.base.service.ISysDatasourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 园区数据库Service业务层处理 + * + * @author sf + * @date 2023-04-20 + */ +@Service +public class SysDatasourceServiceImpl implements ISysDatasourceService { + @Autowired + private SysDatasourceMapper sysDatasourceMapper; + + /** + * 查询园区数据库 + * + * @param id 园区数据库主键 + * @return 园区数据库 + */ + @Override + public SysDatasource selectSysDatasourceById(String id) { + return sysDatasourceMapper.selectSysDatasourceById(id); + } + + /** + * 查询园区数据库列表 + * + * @param sysDatasource 园区数据库 + * @return 园区数据库 + */ + @Override + public List selectSysDatasourceList(SysDatasource sysDatasource) { + return sysDatasourceMapper.selectSysDatasourceList(sysDatasource); + } + + /** + * 新增园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + @Override + public int insertSysDatasource(SysDatasource sysDatasource) { + sysDatasource.setCreateTime(DateUtils.getNowDate()); + return sysDatasourceMapper.insertSysDatasource(sysDatasource); + } + + /** + * 修改园区数据库 + * + * @param sysDatasource 园区数据库 + * @return 结果 + */ + @Override + public int updateSysDatasource(SysDatasource sysDatasource) { + sysDatasource.setUpdateTime(DateUtils.getNowDate()); + return sysDatasourceMapper.updateSysDatasource(sysDatasource); + } + + /** + * 批量删除园区数据库 + * + * @param ids 需要删除的园区数据库主键 + * @return 结果 + */ + @Override + public int deleteSysDatasourceByIds(String[] ids) { + return sysDatasourceMapper.deleteSysDatasourceByIds(ids); + } + + /** + * 删除园区数据库信息 + * + * @param id 园区数据库主键 + * @return 结果 + */ + @Override + public int deleteSysDatasourceById(String id) { + return sysDatasourceMapper.deleteSysDatasourceById(id); + } + + @Override + public SysDatasource selectSysDatasourceByPoolName(String poolName) { + return sysDatasourceMapper.selectSysDatasourceByPoolName(poolName); + } + + @Override + public SysDatasource selectSysDatasourceByCbsParkCode(String cbsParkCode) { + return sysDatasourceMapper.selectSysDatasourceByCbsParkCode(cbsParkCode); + } + @Override + public List selectSysDatasource() { + return sysDatasourceMapper.selectSysDatasource(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/utils/DateUtils.java b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/DateUtils.java new file mode 100644 index 000000000..e143940b6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/DateUtils.java @@ -0,0 +1,382 @@ +package com.op.energy.base.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/** + * 时间工具类 + * + * @author ruoyi + */ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils +{ + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + /** + * 获取当前Date型日期 + * + * @return Date() 当前日期 + */ + public static Date getNowDate() + { + return new Date(); + } + + /** + * 获取当前日期, 默认格式为yyyy-MM-dd + * + * @return String + */ + public static String getDate() + { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() + { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() + { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) + { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) + { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) + { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) + { + try + { + return new SimpleDateFormat(format).parse(ts); + } + catch (ParseException e) + { + throw new RuntimeException(e); + } + } + + /** + * 日期路径 即年/月/日 如2018/08/08 + */ + public static final String datePath() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 日期路径 即年/月/日 如20180808 + */ + public static final String dateTime() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 日期型字符串转化为日期 格式 + */ + public static Date parseDate(Object str) + { + if (str == null) + { + return null; + } + try + { + return parseDate(str.toString(), parsePatterns); + } + catch (ParseException e) + { + return null; + } + } + /** + * 获取服务器启动时间 + */ + public static Date getServerStartDate() + { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 计算相差天数 + */ + public static int differentDaysByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 计算时间差 + * + * @param endTime 最后时间 + * @param startTime 开始时间 + * @return 时间差(天/小时/分钟) + */ + public static String timeDistance(Date endDate, Date startTime) + { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - startTime.getTime(); + // 计算差多少天 + long day = diff / nd; + // 计算差多少小时 + long hour = diff % nd / nh; + // 计算差多少分钟 + long min = diff % nd % nh / nm; + // 计算差多少秒//输出结果 + // long sec = diff % nd % nh % nm / ns; + return day + "天" + hour + "小时" + min + "分钟"; + } + + /** + * 增加 LocalDateTime ==> Date + */ + public static Date toDate(LocalDateTime temporalAccessor) + { + ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** + * 增加 LocalDate ==> Date + */ + public static Date toDate(LocalDate temporalAccessor) + { + LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); + ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** + * 判断String是否为:"yyyy-MM-dd HH:mm:ss" + * @param input + * @return + */ + public static boolean isFormatValid(String input) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + dateFormat.setLenient(false); + try { + dateFormat.parse(input); + return true; + } catch (ParseException e) { + return false; + } + } + + public static List getDatesBetween(String startDateStr, String endDateStr) { + + List dates = new ArrayList<>(); + if(!isFormatValid(startDateStr)){ + startDateStr = startDateStr + " 00:00:00"; + endDateStr = endDateStr + " 23:59:59"; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime startDate = LocalDateTime.parse(startDateStr, formatter); + LocalDateTime endDate = LocalDateTime.parse(endDateStr, formatter); + + LocalDate currentDate = startDate.toLocalDate(); + + while (!currentDate.isAfter(endDate.toLocalDate())) { + dates.add(currentDate.format(DateTimeFormatter.ISO_LOCAL_DATE)); + currentDate = currentDate.plusDays(1); + } + return dates; + } + + public static List getSortedMonthList(List dates, String type) { + List dateList = new ArrayList<>(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + for (String dateStr : dates) { + try { + Date date = dateFormat.parse(dateStr); + dateList.add(date); + } catch (ParseException e) { + e.printStackTrace(); + } + } + Collections.sort(dateList); + List monthList = new ArrayList<>(); + SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM"); + if (type.equals("year")){ + monthFormat = new SimpleDateFormat("yyyy"); + } + for (Date date : dateList) { + String monthStr = monthFormat.format(date); + if (!monthList.contains(monthStr)) { + monthList.add(monthStr); + } + } + return monthList; + } + + /** + * 两个日期之间的每个小时的整点时间 + * @param startDateStr + * @param endDateStr + * @return + */ + public static List getHourlyIntervals(String startDateStr, String endDateStr) { + List intervals = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime startDate = LocalDateTime.parse(startDateStr, formatter); + LocalDateTime endDate = LocalDateTime.parse(endDateStr, formatter); + LocalDateTime currentHour = startDate.withMinute(0).withSecond(0); + while (currentHour.isBefore(endDate)) { + intervals.add(currentHour.format(formatter)); + currentHour = currentHour.plusHours(1); + } + return intervals; + } + + /** + * 获取去年的当前月日时间,格式为"yyyy-MM-dd HH:mm:ss" + * @param inputStr + * @return + */ + public static String getLastYearMonthDayTime(String inputStr) { + // 将字符串转换为LocalDateTime对象 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dt = LocalDateTime.parse(inputStr, formatter); + // 获取去年的同一天 + LocalDateTime lastYearDt = dt.minusYears(1); + // 格式化输出字符串 + return lastYearDt.format(formatter); + } + + + /** + * 按type输出时间间隔List + * 小时 天 月 年 + * @param startTime + * @param endTime + * @param type + * @return + */ + public static List getTimeList(String startTime, String endTime, String type) { + DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:00"); + DateTimeFormatter DAY_FORMATTER = DateTimeFormatter.ofPattern("MM-dd"); + DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("MM"); + DateTimeFormatter YEAR_FORMATTER = DateTimeFormatter.ofPattern("yyyy"); + LocalDateTime startDateTime = LocalDateTime.parse(startTime.substring(0,13) + ":00:00", DATE_TIME_FORMATTER); + LocalDateTime endDateTime = LocalDateTime.parse(endTime.substring(0,13) + ":00:00", DATE_TIME_FORMATTER); + List timeList = new ArrayList<>(); + switch(type) { + case "hour": + while(startDateTime.isBefore(endDateTime)) { + timeList.add(startDateTime.format(DATE_TIME_FORMATTER)); + startDateTime = startDateTime.plusHours(1); + } + break; + case "day": + while(startDateTime.isBefore(endDateTime)) { + timeList.add(startDateTime.format(DAY_FORMATTER)); + startDateTime = startDateTime.plusDays(1); + } + break; + case "month": + while(startDateTime.isBefore(endDateTime)) { + timeList.add(startDateTime.format(MONTH_FORMATTER)); + startDateTime = startDateTime.plusMonths(1); + } + break; + case "year": + while(startDateTime.isBefore(endDateTime)) { + timeList.add(startDateTime.format(YEAR_FORMATTER)); + startDateTime = startDateTime.plusYears(1); + } + break; + default: + throw new IllegalArgumentException("Invalid type: " + type); + } + return timeList; + } + + public static Map getStartAndEndTime() { + Map resultMap = new HashMap<>(); + LocalDateTime now = LocalDateTime.now(); + LocalDate today = LocalDate.now(); + LocalDate lastMonth = now.minusMonths(1).toLocalDate(); + LocalDate lastYear = now.minusYears(1).toLocalDate(); + + resultMap.put("todayStart", now.with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("todayEnd", now.with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("monthStart", now.withDayOfMonth(1).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("monthEnd", now.withDayOfMonth(today.lengthOfMonth()).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("yearStart", now.withDayOfYear(1).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("yearEnd", now.withDayOfYear(today.lengthOfYear()).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("weekStart", now.with(DayOfWeek.MONDAY).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("weekEnd", now.with(DayOfWeek.SUNDAY).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 上月的开始和结束时间 + resultMap.put("lastMonthStart", now.minusMonths(1).withDayOfMonth(1).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("lastMonthEnd", now.withDayOfMonth(1).minusDays(1).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 去年的开始和结束时间 + resultMap.put("lastYearStart", now.minusYears(1).withDayOfYear(1).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("lastYearEnd", now.minusYears(1).withDayOfYear(lastYear.minusYears(1).lengthOfYear()).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 去年当月的开始和结束时间 + LocalDateTime nowNew = LocalDateTime.now(); + LocalDate lastYearMonth = LocalDate.now().minusYears(1).withMonth(nowNew.getMonthValue()); + resultMap.put("lastYearMonthStart", now.minusYears(1).withDayOfMonth(1).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + resultMap.put("lastYearMonthEnd", now.minusYears(1).withDayOfMonth(today.lengthOfMonth()).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + return resultMap; + } + + public static String getYesterday(String timeStr) { + if(!isFormatValid(timeStr)){ + timeStr = timeStr + " 00:00:00"; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(timeStr, formatter); + LocalDate date = dateTime.toLocalDate().minusDays(1); + return date.atTime(dateTime.toLocalTime()).format(formatter); + } + + public static String getLastYear(String timeStr) { + if(!isFormatValid(timeStr)){ + timeStr = timeStr + " 00:00:00"; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(timeStr, formatter); + LocalDateTime lastYearDateTime = dateTime.minusYears(1); + return lastYearDateTime.format(formatter); + } +} + diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/utils/ExportExcelUtil.java b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/ExportExcelUtil.java new file mode 100644 index 000000000..c2f91b66a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/ExportExcelUtil.java @@ -0,0 +1,1347 @@ +package com.op.energy.base.utils; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.annotation.Excel.ColumnType; +import com.op.common.core.annotation.Excel.Type; +import com.op.common.core.annotation.Excels; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.file.FileTypeUtils; +import com.op.common.core.utils.file.ImageUtils; +import com.op.common.core.utils.poi.ExcelHandlerAdapter; +import com.op.common.core.utils.reflect.ReflectUtils; +import com.op.energy.report.domain.ExportReport; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.RegExUtils; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFClientAnchor; +import org.apache.poi.xssf.usermodel.XSSFDataValidation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Excel相关处理 + * + * @author sf + */ +public class ExportExcelUtil { + private static final Logger log = LoggerFactory.getLogger(ExportExcelUtil.class); + + public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; + + public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; + + /** + * Excel sheet最大行数,默认65536 + */ + public static final int sheetSize = 65536; + + /** + * 工作表名称 + */ + private String sheetName; + + /** + * 导出类型(EXPORT:导出数据;IMPORT:导入模板) + */ + private Type type; + + /** + * 工作薄对象 + */ + private Workbook wb; + + /** + * 工作表对象 + */ + private Sheet sheet; + + /** + * 样式列表 + */ + private Map styles; + + /** + * 导入导出数据列表 + */ + private List list; + + private List originalList; + + /** + * 注解列表 + */ + private List fields; + + /** + * 当前行号 + */ + private int rownum; + + /** + * 标题 + */ + private String title; + + /** + * 最大高度 + */ + private short maxHeight; + + /** + * 合并后最后行数 + */ + private int subMergedLastRowNum = 0; + + /** + * 合并后开始行数 + */ + private int subMergedFirstRowNum = 1; + + /** + * 对象的子列表方法 + */ + private Method subMethod; + + /** + * 对象的子列表属性 + */ + private List subFields; + + /** + * 统计列表 + */ + private Map statistics = new HashMap(); + + /** + * 数字格式 + */ + private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00"); + + /** + * 实体对象 + */ + public Class clazz; + + /** + * 需要排除列属性 + */ + public String[] excludeFields; + + public ExportExcelUtil(Class clazz) { + this.clazz = clazz; + } + + /** + * 隐藏Excel中列属性 + * + * @param fields 列属性名 示例[单个"name"/多个"id","name"] + * @throws Exception + */ + public void hideColumn(String... fields) { + this.excludeFields = fields; + } + + public void init(List list, String sheetName, String title, Type type) { + if (list == null) { + list = new ArrayList(); + } + this.list = list; + this.sheetName = sheetName; + this.type = type; + this.title = title; + createExcelField(); + createWorkbook(); + createTitle(); + createSubHead(); + } + + /** + * 创建excel第一行标题 + */ + public void createTitle() { + if (StringUtils.isNotEmpty(title)) { + subMergedFirstRowNum++; + subMergedLastRowNum++; + int titleLastCol = this.fields.size() - 1; + if (isSubList()) { + titleLastCol = titleLastCol + subFields.size() - 1; + } + Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), + titleLastCol)); + } + } + + /** + * 创建对象的子列表名称 + */ + public void createSubHead() { + if (isSubList()) { + subMergedFirstRowNum++; + subMergedLastRowNum++; + Row subRow = sheet.createRow(rownum); + int excelNum = 0; + for (Object[] objects : fields) { + Excel attr = (Excel) objects[1]; + Cell headCell1 = subRow.createCell(excelNum); + headCell1.setCellValue(attr.name()); + headCell1.setCellStyle(styles + .get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + excelNum++; + } + int headFirstRow = excelNum - 1; + int headLastRow = headFirstRow + subFields.size() - 1; + if (headLastRow > headFirstRow) { + sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow)); + } + rownum++; + } + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(InputStream is) throws Exception { + return importExcel(is, 0); + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @param titleNum 标题占用行数 + * @return 转换后集合 + */ + public List importExcel(InputStream is, int titleNum) throws Exception { + return importExcel(StringUtils.EMPTY, is, titleNum); + } + + /** + * 对excel表单指定表格索引名转换成list + * + * @param sheetName 表格索引名 + * @param titleNum 标题占用行数 + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception { + this.type = Type.IMPORT; + this.wb = WorkbookFactory.create(is); + List list = new ArrayList(); + // 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet + Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); + if (sheet == null) { + throw new IOException("文件sheet不存在"); + } + + // 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1 + int rows = sheet.getLastRowNum(); + + if (rows > 0) { + // 定义一个map用于存放excel列的序号和field. + Map cellMap = new HashMap(); + // 获取表头 + Row heard = sheet.getRow(titleNum); + for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { + Cell cell = heard.getCell(i); + if (StringUtils.isNotNull(cell)) { + String value = this.getCellValue(heard, i).toString(); + cellMap.put(value, i); + } else { + cellMap.put(null, i); + } + } + // 有数据时才处理 得到类的所有field. + List fields = this.getFields(); + Map fieldsMap = new HashMap(); + for (Object[] objects : fields) { + Excel attr = (Excel) objects[1]; + Integer column = cellMap.get(attr.name()); + if (column != null) { + fieldsMap.put(column, objects); + } + } + for (int i = titleNum + 1; i <= rows; i++) { + // 从第2行开始取数据,默认第一行是表头. + Row row = sheet.getRow(i); + // 判断当前行是否是空行 + if (isRowEmpty(row)) { + continue; + } + T entity = null; + for (Map.Entry entry : fieldsMap.entrySet()) { + Object val = this.getCellValue(row, entry.getKey()); + + // 如果不存在实例则新建. + entity = (entity == null ? clazz.newInstance() : entity); + // 从map中得到对应列的field. + Field field = (Field) entry.getValue()[0]; + Excel attr = (Excel) entry.getValue()[1]; + // 取得类型,并根据对象类型设置值. + Class fieldType = field.getType(); + if (String.class == fieldType) { + String s = Convert.toStr(val); + if (StringUtils.endsWith(s, ".0")) { + val = StringUtils.substringBefore(s, ".0"); + } else { + String dateFormat = field.getAnnotation(Excel.class).dateFormat(); + if (StringUtils.isNotEmpty(dateFormat)) { + val = parseDateToStr(dateFormat, val); + } else { + val = Convert.toStr(val); + } + } + } else if ((Integer.TYPE == fieldType || Integer.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toInt(val); + } else if ((Long.TYPE == fieldType || Long.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toLong(val); + } else if (Double.TYPE == fieldType || Double.class == fieldType) { + val = Convert.toDouble(val); + } else if (Float.TYPE == fieldType || Float.class == fieldType) { + val = Convert.toFloat(val); + } else if (BigDecimal.class == fieldType) { + val = Convert.toBigDecimal(val); + } else if (Date.class == fieldType) { + if (val instanceof String) { + val = DateUtils.parseDate(val); + } else if (val instanceof Double) { + val = DateUtil.getJavaDate((Double) val); + } + } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) { + val = Convert.toBool(val, false); + } + if (StringUtils.isNotNull(fieldType)) { + String propertyName = field.getName(); + if (StringUtils.isNotEmpty(attr.targetAttr())) { + propertyName = field.getName() + "." + attr.targetAttr(); + } else if (StringUtils.isNotEmpty(attr.readConverterExp())) { + val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + val = dataFormatHandlerAdapter(val, attr); + } + ReflectUtils.invokeSetter(entity, propertyName, val); + } + } + list.add(entity); + } + } + return list; + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName, List originalList) { + this.originalList = originalList; + exportExcel(response, list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(list, sheetName, title, Type.EXPORT); + exportExcel(response); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName) { + importTemplateExcel(response, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(null, sheetName, title, Type.IMPORT); + exportExcel(response); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @return 结果 + */ + public void exportExcel(HttpServletResponse response) { + try { + writeSheet(); + wb.write(response.getOutputStream()); + } catch (Exception e) { + log.error("导出Excel异常{}", e.getMessage()); + } finally { + IOUtils.closeQuietly(wb); + } + } + + /** + * 创建写入数据到Sheet + */ + public void writeSheet() { + // 取出一共有多少个sheet. + int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); + for (int index = 0; index < sheetNo; index++) { + createSheet(sheetNo, index); + + // 产生一行 + Row row = sheet.createRow(rownum); + int column = 0; + // 写入各个字段的列头名称 + for (Object[] os : fields) { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + for (Field subField : subFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + this.createHeadCell(subExcel, row, column++); + } + } else { + this.createHeadCell(excel, row, column++); + } + } + + if (list.size() > 0 && list.get(0).getClass().getName().equals("com.op.energy.report.domain.ExportReport")){ + try { + Field[] declaredFields = list.get(0).getClass().getDeclaredFields(); + for (int i = 0; i < declaredFields.length; i++) { + if (declaredFields[i].getName().equals("serialVersionUID")){ + continue; + } + Field field = declaredFields[i]; + + ArrayList countList = new ArrayList<>(); + for (Object vo : originalList) { + field.setAccessible(true); + String fieldValue = String.valueOf(field.get(vo)); + countList.add(fieldValue); + } + List consecutiveIndices = findConsecutiveIndices(countList); + for (int k = 0; k < consecutiveIndices.size(); k++) { + int num = 1; +// if (declaredFields[i].getName().contains("Expend")){ +// num = 2; +// } + addMergeAddress(sheet, consecutiveIndices.get(k)[0] + 1, consecutiveIndices.get(k)[1] + num, i - 1); + } + } + } catch (IllegalAccessException e) { + log.error("层级报表导出异常:" + e.toString()); + } + } + + if (Type.EXPORT.equals(type)) { + fillExcelData(index, row); + addStatisticsRow(); + } + } + } + + /** + * 填充excel数据 + * + * @param index 序号 + * @param row 单元格行 + */ + @SuppressWarnings("unchecked") + public void fillExcelData(int index, Row row) { + int startNo = index * sheetSize; + int endNo = Math.min(startNo + sheetSize, list.size()); + int rowNo = (1 + rownum) - startNo; + for (int i = startNo; i < endNo; i++) { + rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; + row = sheet.createRow(rowNo); + // 得到导出对象. + T vo = (T) list.get(i); + Collection subList = null; + if (isSubList()) { + if (isSubListValue(vo)) { + subList = getListCellValue(vo); + subMergedLastRowNum = subMergedLastRowNum + subList.size(); + } else { + subMergedFirstRowNum++; + subMergedLastRowNum++; + } + } + int column = 0; + for (Object[] os : fields) { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) { + boolean subFirst = false; + for (Object obj : subList) { + if (subFirst) { + rowNo++; + row = sheet.createRow(rowNo); + } + List subFields = FieldUtils.getFieldsListWithAnnotation(obj.getClass(), Excel.class); + int subIndex = 0; + for (Field subField : subFields) { + if (subField.isAnnotationPresent(Excel.class)) { + subField.setAccessible(true); + Excel attr = subField.getAnnotation(Excel.class); + this.addCell(attr, row, (T) obj, subField, column + subIndex); + } + subIndex++; + } + subFirst = true; + } + this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size(); + } else { + this.addCell(excel, row, vo, field, column++); + } + } + } +// +// if (list.size() > 0 && list.get(0).getClass().getName().equals("com.op.energy.report.domain.ExportReport")){ +// try { +// Field[] declaredFields = list.get(0).getClass().getDeclaredFields(); +// for (int i = 0; i < declaredFields.length; i++) { +// if (declaredFields[i].getName().equals("serialVersionUID")){ +// continue; +// } +// Field field = declaredFields[i]; +// +// ArrayList countList = new ArrayList<>(); +// for (Object vo : list) { +// field.setAccessible(true); +// String fieldValue = String.valueOf(field.get(vo)); +// countList.add(fieldValue); +// } +// List consecutiveIndices = findConsecutiveIndices(countList); +// for (int k = 0; k < consecutiveIndices.size(); k++) { +// int num = 1; +// addMergeAddress(sheet, consecutiveIndices.get(k)[0] + 1, consecutiveIndices.get(k)[1] + num, i - 1); +// } +// } +// } catch (IllegalAccessException e) { +// log.error("层级报表导出异常:" + e.toString()); +// } +// } + } + + /** + * 获取List连续相同数据的开始和结束的下标 + * @param countList + * @return + */ + public static List findConsecutiveIndices(List countList) { + List result = new ArrayList<>(); + + if (countList == null || countList.isEmpty()) { + return result; + } + + int start = 0; + int end = 0; + + for (int i = 1; i < countList.size(); i++) { + if (countList.get(i) == ""){ + continue; + } + if (countList.get(i).equals(countList.get(i - 1))) { + end = i; + } else { + if (start != end) { + result.add(new int[]{start, end}); + } + start = i; + end = i; + } + } + + if (start != end) { + result.add(new int[]{start, end}); + } + + return result; + } + + /** + * 创建表格样式 + * + * @param wb 工作薄对象 + * @return 样式列表 + */ + private Map createStyles(Workbook wb) { + // 写入各条记录,每条记录对应excel表中的一行 + Map styles = new HashMap(); + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font totalFont = wb.createFont(); + totalFont.setFontName("Arial"); + totalFont.setFontHeightInPoints((short) 10); + style.setFont(totalFont); + styles.put("total", style); + + styles.putAll(annotationHeaderStyles(wb, styles)); + + styles.putAll(annotationDataStyles(wb)); + + return styles; + } + + /** + * 根据Excel注解创建表格头样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationHeaderStyles(Workbook wb, Map styles) { + Map headerStyles = new HashMap(); + for (Object[] os : fields) { + Excel excel = (Excel) os[1]; + String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); + if (!headerStyles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + headerStyles.put(key, style); + } + } + return headerStyles; + } + + /** + * 根据Excel注解创建表格列样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationDataStyles(Workbook wb) { + Map styles = new HashMap(); + for (Object[] os : fields) { + Excel excel = (Excel) os[1]; + String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor()); + if (!styles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.setAlignment(excel.align()); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + style.setFillForegroundColor(excel.backgroundColor().getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + dataFont.setColor(excel.color().index); + style.setFont(dataFont); + styles.put(key, style); + } + } + return styles; + } + + /** + * 创建单元格 + */ + public Cell createHeadCell(Excel attr, Row row, int column) { + // 创建列 + Cell cell = row.createCell(column); + // 写入列信息 + cell.setCellValue(attr.name()); + setDataValidation(attr, row, column); + cell.setCellStyle( + styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + if (isSubList()) { + // 填充默认样式,防止合并单元格样式失效 + sheet.setDefaultColumnStyle(column, styles + .get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); + if (attr.needMerge()) { + sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); + } + } + return cell; + } + + /** + * 设置单元格信息 + * + * @param value 单元格值 + * @param attr 注解相关 + * @param cell 单元格信息 + */ + public void setCellVo(Object value, Excel attr, Cell cell) { + if (ColumnType.STRING == attr.cellType()) { + String cellValue = Convert.toStr(value); + // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) { + cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); + } + if (value instanceof Collection && StringUtils.equals("[]", cellValue)) { + cellValue = StringUtils.EMPTY; + } + cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); + } else if (ColumnType.NUMERIC == attr.cellType()) { + if (StringUtils.isNotNull(value)) { + cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) + : Convert.toInt(value)); + } + } else if (ColumnType.IMAGE == attr.cellType()) { + ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), + cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1); + String imagePath = Convert.toStr(value); + if (StringUtils.isNotEmpty(imagePath)) { + byte[] data = ImageUtils.getImage(imagePath); + getDrawingPatriarch(cell.getSheet()).createPicture(anchor, + cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + } + } + } + + /** + * 获取画布 + */ + public static Drawing getDrawingPatriarch(Sheet sheet) { + if (sheet.getDrawingPatriarch() == null) { + sheet.createDrawingPatriarch(); + } + return sheet.getDrawingPatriarch(); + } + + /** + * 获取图片类型,设置图片插入类型 + */ + public int getImageType(byte[] value) { + String type = FileTypeUtils.getFileExtendName(value); + if ("JPG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_JPEG; + } else if ("PNG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_PNG; + } + return Workbook.PICTURE_TYPE_JPEG; + } + + /** + * 创建表格样式 + */ + public void setDataValidation(Excel attr, Row row, int column) { + if (attr.name().indexOf("注:") >= 0) { + sheet.setColumnWidth(column, 6000); + } else { + // 设置列宽 + sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); + } + if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0) { + if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255) { + // 如果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到 + setXSSFValidationWithHidden(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } else { + // 提示信息或只能选择不能输入的列内容. + setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column); + } + } + } + + /** + * 添加单元格 + */ + public Cell addCell(Excel attr, Row row, T vo, Field field, int column) { + Cell cell = null; + try { + // 设置行高 + row.setHeight(maxHeight); + // 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列. + if (attr.isExport()) { + // 创建cell + cell = row.createCell(column); + if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) { + CellRangeAddress cellAddress = new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, + column, column); + sheet.addMergedRegion(cellAddress); + } + cell.setCellStyle(styles + .get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); + + // 用于读取对象中的属性 + Object value = getTargetValue(vo, field, attr); + String dateFormat = attr.dateFormat(); + String readConverterExp = attr.readConverterExp(); + String separator = attr.separator(); + if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { + cell.setCellValue(parseDateToStr(dateFormat, value)); + } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); + } else if (value instanceof BigDecimal && -1 != attr.scale()) { + cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).doubleValue()); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + cell.setCellValue(dataFormatHandlerAdapter(value, attr)); + } else { + // 设置列类型 + setCellVo(value, attr, cell); + } + addStatisticsData(column, Convert.toStr(value), attr); + } + } catch (Exception e) { + log.error("导出Excel失败{}", e); + } + return cell; + } + + /** + * 设置 POI XSSFSheet 单元格提示或选择框 + * + * @param sheet 表单 + * @param textlist 下拉框显示的内容 + * @param promptContent 提示内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + */ + public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, + int firstCol, int endCol) { + DataValidationHelper helper = sheet.getDataValidationHelper(); + DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) + : helper.createCustomConstraint("DD1"); + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); + } + sheet.addValidationData(dataValidation); + } + + /** + * 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框). + * + * @param sheet 要设置的sheet. + * @param textlist 下拉框显示的内容 + * @param promptContent 提示内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + */ + public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, + int endRow, int firstCol, int endCol) { + String hideSheetName = "combo_" + firstCol + "_" + endCol; + Sheet hideSheet = wb.createSheet(hideSheetName); // 用于存储 下拉菜单数据 + for (int i = 0; i < textlist.length; i++) { + hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); + } + // 创建名称,可被其他单元格引用 + Name name = wb.createName(); + name.setNameName(hideSheetName + "_data"); + name.setRefersToFormula(hideSheetName + "!$A$1:$A$" + textlist.length); + DataValidationHelper helper = sheet.getDataValidationHelper(); + // 加载下拉列表内容 + DataValidationConstraint constraint = helper.createFormulaListConstraint(hideSheetName + "_data"); + // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + // 数据有效性对象 + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); + } + + sheet.addValidationData(dataValidation); + // 设置hiddenSheet隐藏 + wb.setSheetHidden(wb.getSheetIndex(hideSheet), true); + } + + /** + * 解析导出值 0=男,1=女,2=未知 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String convertByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[0].equals(value)) { + propertyString.append(itemArray[1] + separator); + break; + } + } + } else { + if (itemArray[0].equals(propertyValue)) { + return itemArray[1]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 反向解析值 男=0,女=1,未知=2 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String reverseByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[1].equals(value)) { + propertyString.append(itemArray[0] + separator); + break; + } + } + } else { + if (itemArray[1].equals(propertyValue)) { + return itemArray[0]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 数据处理器 + * + * @param value 数据值 + * @param excel 数据注解 + * @return + */ + public String dataFormatHandlerAdapter(Object value, Excel excel) { + try { + Object instance = excel.handler().newInstance(); + Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class }); + value = formatMethod.invoke(instance, value, excel.args()); + } catch (Exception e) { + log.error("不能格式化数据 " + excel.handler(), e.getMessage()); + } + return Convert.toStr(value); + } + + /** + * 合计统计信息 + */ + private void addStatisticsData(Integer index, String text, Excel entity) { + if (entity != null && entity.isStatistics()) { + Double temp = 0D; + if (!statistics.containsKey(index)) { + statistics.put(index, temp); + } + try { + temp = Double.valueOf(text); + } catch (NumberFormatException e) { + } + statistics.put(index, statistics.get(index) + temp); + } + } + + /** + * 创建统计行 + */ + public void addStatisticsRow() { + if (statistics.size() > 0) { + Row row = sheet.createRow(sheet.getLastRowNum() + 1); + Set keys = statistics.keySet(); + Cell cell = row.createCell(0); + cell.setCellStyle(styles.get("total")); + cell.setCellValue("合计"); + + for (Integer key : keys) { + cell = row.createCell(key); + cell.setCellStyle(styles.get("total")); + cell.setCellValue(DOUBLE_FORMAT.format(statistics.get(key))); + } + statistics.clear(); + } + } + + /** + * 获取bean中的属性值 + * + * @param vo 实体对象 + * @param field 字段 + * @param excel 注解 + * @return 最终的属性值 + * @throws Exception + */ + private Object getTargetValue(T vo, Field field, Excel excel) throws Exception { + Object o = field.get(vo); + if (StringUtils.isNotEmpty(excel.targetAttr())) { + String target = excel.targetAttr(); + if (target.contains(".")) { + String[] targets = target.split("[.]"); + for (String name : targets) { + o = getValue(o, name); + } + } else { + o = getValue(o, target); + } + } + return o; + } + + /** + * 以类的属性的get方法方法形式获取值 + * + * @param o + * @param name + * @return value + * @throws Exception + */ + private Object getValue(Object o, String name) throws Exception { + if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) { + Class clazz = o.getClass(); + Field field = clazz.getDeclaredField(name); + field.setAccessible(true); + o = field.get(o); + } + return o; + } + + /** + * 得到所有定义字段 + */ + private void createExcelField() { + this.fields = getFields(); + this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())) + .collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** + * 获取字段注解信息 + */ + public List getFields() { + List fields = new ArrayList(); + List tempFields = new ArrayList<>(); + tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); + for (Field field : tempFields) { + if (!ArrayUtils.contains(this.excludeFields, field.getName())) { + // 单注解 + if (field.isAnnotationPresent(Excel.class)) { + Excel attr = field.getAnnotation(Excel.class); + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + if (Collection.class.isAssignableFrom(field.getType())) { + subMethod = getSubMethod(field.getName(), clazz); + ParameterizedType pt = (ParameterizedType) field.getGenericType(); + Class subClass = (Class) pt.getActualTypeArguments()[0]; + this.subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + } + } + + // 多注解 + if (field.isAnnotationPresent(Excels.class)) { + Excels attrs = field.getAnnotation(Excels.class); + Excel[] excels = attrs.value(); + for (Excel attr : excels) { + if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + } + } + } + } + return fields; + } + + /** + * 根据注解获取最大行高 + */ + public short getRowHeight() { + double maxHeight = 0; + for (Object[] os : this.fields) { + Excel excel = (Excel) os[1]; + maxHeight = Math.max(maxHeight, excel.height()); + } + return (short) (maxHeight * 20); + } + + /** + * 创建一个工作簿 + */ + public void createWorkbook() { + this.wb = new SXSSFWorkbook(500); + this.sheet = wb.createSheet(); + wb.setSheetName(0, sheetName); + this.styles = createStyles(wb); + } + + /** + * 创建工作表 + * + * @param sheetNo sheet数量 + * @param index 序号 + */ + public void createSheet(int sheetNo, int index) { + // 设置工作表的名称. + if (sheetNo > 1 && index > 0) { + this.sheet = wb.createSheet(); + this.createTitle(); + wb.setSheetName(index, sheetName + index); + } + } + + /** + * 获取单元格值 + * + * @param row 获取的行 + * @param column 获取单元格列号 + * @return 单元格值 + */ + public Object getCellValue(Row row, int column) { + if (row == null) { + return row; + } + Object val = ""; + try { + Cell cell = row.getCell(column); + if (StringUtils.isNotNull(cell)) { + if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { + val = cell.getNumericCellValue(); + if (DateUtil.isCellDateFormatted(cell)) { + val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换 + } else { + if ((Double) val % 1 != 0) { + val = new BigDecimal(val.toString()); + } else { + val = new DecimalFormat("0").format(val); + } + } + } else if (cell.getCellType() == CellType.STRING) { + val = cell.getStringCellValue(); + } else if (cell.getCellType() == CellType.BOOLEAN) { + val = cell.getBooleanCellValue(); + } else if (cell.getCellType() == CellType.ERROR) { + val = cell.getErrorCellValue(); + } + + } + } catch (Exception e) { + return val; + } + return val; + } + + /** + * 判断是否是空行 + * + * @param row 判断的行 + * @return + */ + private boolean isRowEmpty(Row row) { + if (row == null) { + return true; + } + for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) { + Cell cell = row.getCell(i); + if (cell != null && cell.getCellType() != CellType.BLANK) { + return false; + } + } + return true; + } + + /** + * 格式化不同类型的日期对象 + * + * @param dateFormat 日期格式 + * @param val 被格式化的日期对象 + * @return 格式化后的日期字符 + */ + public String parseDateToStr(String dateFormat, Object val) { + if (val == null) { + return ""; + } + String str; + if (val instanceof Date) { + str = DateUtils.parseDateToStr(dateFormat, (Date) val); + } else if (val instanceof LocalDateTime) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); + } else if (val instanceof LocalDate) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); + } else { + str = val.toString(); + } + return str; + } + + /** + * 是否有对象的子列表 + */ + public boolean isSubList() { + return StringUtils.isNotNull(subFields) && subFields.size() > 0; + } + + /** + * 是否有对象的子列表,集合不为空 + */ + public boolean isSubListValue(T vo) { + return StringUtils.isNotNull(subFields) && subFields.size() > 0 && StringUtils.isNotNull(getListCellValue(vo)) + && getListCellValue(vo).size() > 0; + } + + /** + * 获取集合的值 + */ + public Collection getListCellValue(Object obj) { + Object value; + try { + value = subMethod.invoke(obj, new Object[] {}); + } catch (Exception e) { + return new ArrayList(); + } + return (Collection) value; + } + + /** + * 获取对象的子列表方法 + * + * @param name 名称 + * @param pojoClass 类对象 + * @return 子列表方法 + */ + public Method getSubMethod(String name, Class pojoClass) { + StringBuffer getMethodName = new StringBuffer("get"); + getMethodName.append(name.substring(0, 1).toUpperCase()); + getMethodName.append(name.substring(1)); + Method method = null; + try { + method = pojoClass.getMethod(getMethodName.toString(), new Class[] {}); + } catch (Exception e) { + log.error("获取对象异常{}", e.getMessage()); + } + return method; + } + + /** + * {@code sheet} 添加合并单元格的区域. 合并方式是按列方向合并 + * + * @param sheet 需要添加合并区域的 sheet 页 + * @param rowStart 合并区域起始行 index + * @param rowEnd 合并区域终止行 index + * @param column 合并区域列 + */ + public static void addMergeAddress(Sheet sheet, int rowStart, int rowEnd, int column) { + if (rowStart < rowEnd) { + CellRangeAddress mergeAddress = new CellRangeAddress(rowStart, rowEnd, column, column); + sheet.addMergedRegion(mergeAddress); + } + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/utils/SpringUtils.java b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/SpringUtils.java new file mode 100644 index 000000000..6517889cf --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/SpringUtils.java @@ -0,0 +1,139 @@ +package com.op.energy.base.utils; + +import org.springframework.aop.framework.AopContext; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.stereotype.Component; + +import java.io.*; +import java.util.List; + +/** + * spring工具类 方便在非spring管理环境中获取bean + * + * @author sf + */ +@Component +public final class SpringUtils implements BeanFactoryPostProcessor { + /** Spring应用上下文环境 */ + private static ConfigurableListableBeanFactory beanFactory; + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { + SpringUtils.beanFactory = beanFactory; + } + + /** + * 获取对象 + * + * @param name + * @return Object 一个以所给名字注册的bean的实例 + * @throws BeansException + * + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException { + return (T) beanFactory.getBean(name); + } + + /** + * 获取类型为requiredType的对象 + * + * @param clz + * @return + * @throws BeansException + * + */ + public static T getBean(Class clz) throws BeansException { + T result = (T) beanFactory.getBean(clz); + return result; + } + + /** + * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true + * + * @param name + * @return boolean + */ + public static boolean containsBean(String name) { + return beanFactory.containsBean(name); + } + + /** + * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 + * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) + * + * @param name + * @return boolean + * @throws NoSuchBeanDefinitionException + * + */ + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { + return beanFactory.isSingleton(name); + } + + /** + * @param name + * @return Class 注册对象的类型 + * @throws NoSuchBeanDefinitionException + * + */ + public static Class getType(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getType(name); + } + + /** + * 如果给定的bean名字在bean定义中有别名,则返回这些别名 + * + * @param name + * @return + * @throws NoSuchBeanDefinitionException + * + */ + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { + return beanFactory.getAliases(name); + } + + /** + * 获取aop代理对象 + * + * @param invoker + * @return + */ + @SuppressWarnings("unchecked") + public static T getAopProxy(T invoker) { + return (T) AopContext.currentProxy(); + } + + + /** + * 深拷贝 + * @param originalList + * @param + * @return + */ + @SuppressWarnings("unchecked") + public static List deepCopy(List originalList) { + List newList = null; + + try { + // 将原始列表写入字节数组输出流 + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); + objectOutputStream.writeObject(originalList); + objectOutputStream.flush(); + objectOutputStream.close(); + + // 从字节数组输入流读取新列表 + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); + ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); + newList = (List) objectInputStream.readObject(); + objectInputStream.close(); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + return newList; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/utils/sortReportUitls.java b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/sortReportUitls.java new file mode 100644 index 000000000..5132af4c6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/utils/sortReportUitls.java @@ -0,0 +1,58 @@ +package com.op.energy.base.utils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; + +/** + * @Author YInQ + * @create 2023-04-15 18:35 + */ +public class sortReportUitls { + public static void sortArrayList(ArrayList names, ArrayList values) { + int size = values.size(); + + // 将UnitName和UnitValue打包成一个字符串 + String[] pairs = new String[size]; + for (int i = 0; i < size; i++) { + pairs[i] = names.get(i) + ":" + values.get(i); + } + + // 使用Comparator实现对打包后的字符串的排序 + Arrays.sort(pairs, new Comparator() { + @Override + public int compare(String o1, String o2) { + float value1 = Float.parseFloat(o1.split(":")[1]); + float value2 = Float.parseFloat(o2.split(":")[1]); + return Float.compare(value2, value1); + } + }); + + // 将排序后的字符串解包成UnitName和UnitValue + for (int i = 0; i < size; i++) { + String[] parts = pairs[i].split(":"); + names.set(i, parts[0]); + values.set(i, Float.parseFloat(parts[1])); + } + } + + + /** + * 计算同环比增长率 + * @param currentValue 当前值 + * @param lastValue 同期值 + * @param scale 小数点保留位数 + * @return 同比增长率 + */ + public static BigDecimal calculateMoMYoY(BigDecimal currentValue, BigDecimal lastValue, int scale) { + if (currentValue == null || lastValue == null || lastValue.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } + BigDecimal diff = currentValue.subtract(lastValue); + BigDecimal rate = diff.divide(lastValue, scale + 2, RoundingMode.HALF_UP); + return rate.multiply(BigDecimal.valueOf(100)).setScale(scale, RoundingMode.HALF_UP); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmDataController.java b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmDataController.java new file mode 100644 index 000000000..3168c252f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmDataController.java @@ -0,0 +1,187 @@ +package com.op.energy.record.controller; + +import com.alibaba.fastjson.JSONArray; +import com.op.common.core.domain.R; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.record.domain.RecordAlarmData; +import com.op.energy.record.service.IRecordAlarmDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; + +/** + * 异常数据记录Controller + * + * @author YinQ + * @date 2023-04-09 + */ +@RestController +@RequestMapping("/record/alarmData") +public class RecordAlarmDataController extends BaseController { + private String prefix = "record/alarmData"; + + @Autowired + private IRecordAlarmDataService recordAlarmDataService; + + @RequiresPermissions("record:alarmData:view") + @GetMapping() + public String alarmData() { + return prefix + "/alarmData"; + } + + /** + * 查询异常数据记录列表 + */ +// @RequiresPermissions("record:alarmData:list") + @GetMapping("/list") + @ResponseBody + public TableDataInfo list(RecordAlarmData recordAlarmData) { + startPage(); + List list = recordAlarmDataService.selectRecordAlarmDataList(recordAlarmData); + return getDataTable(list); + } + + /** + * 异常数据记录 + * + * @return + */ + @GetMapping("/alarmRecord") + public String alarmRecord() { + return prefix + "/alarmRecord"; + } + + /** + * 报警数量 + * + * @return + */ + @PostMapping("/alarmCount") + @ResponseBody + public int alarmCount() { + RecordAlarmData recordAlarmData = new RecordAlarmData(); + recordAlarmData.setAlarmStatus(1L); +// recordAlarmData.setNotifyUser(ShiroUtils.getSysUser().getLoginName()); + List list = recordAlarmDataService.selectRecordAlarmDataList(recordAlarmData); + return list.size(); + } + + /** + * 异常处理 + * + * @param objIds + * @return + */ + @PostMapping("/editAlarmStatus") + @ResponseBody + public String editAlarmStatus(@RequestBody RecordAlarmData objIds) { + AjaxResult info = new AjaxResult(); + for (Long id : objIds.getObjIds()) { + RecordAlarmData recordAlarmData = new RecordAlarmData(); + recordAlarmData.setObjId(id); + recordAlarmData.setAlarmStatus(0L); + recordAlarmData.setOperationName(SecurityUtils.getUsername()); + recordAlarmData.setOperationTime(new Date()); + recordAlarmDataService.updateRecordAlarmData(recordAlarmData); + } + return JSONArray.toJSONString(info); + } + + + /** + * 导出异常数据记录列表 + */ + @RequiresPermissions("record:alarmData:export") + @Log(title = "异常数据记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response, RecordAlarmData recordAlarmData) { + List list = recordAlarmDataService.selectRecordAlarmDataList(recordAlarmData); + ExcelUtil util = new ExcelUtil(RecordAlarmData.class); + util.exportExcel(response, list, "异常数据记录数据"); + } + + /** + * 新增异常数据记录 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存异常数据记录 + */ + @RequiresPermissions("record:alarmData:add") + @Log(title = "异常数据记录", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(RecordAlarmData recordAlarmData) { + return toAjax(recordAlarmDataService.insertRecordAlarmData(recordAlarmData)); + } + + /** + * 修改异常数据记录 + */ + @RequiresPermissions("record:alarmData:edit") + @GetMapping("/edit/{objId}") + public String edit(@PathVariable("objId") Long objId, ModelMap mmap) { + RecordAlarmData recordAlarmData = recordAlarmDataService.selectRecordAlarmDataByObjId(objId); + mmap.put("recordAlarmData", recordAlarmData); + return prefix + "/edit"; + } + + /** + * 修改保存异常数据记录 + */ + @RequiresPermissions("record:alarmData:edit") + @Log(title = "异常数据记录", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(RecordAlarmData recordAlarmData) { + return toAjax(recordAlarmDataService.updateRecordAlarmData(recordAlarmData)); + } + + /** + * 删除异常数据记录 + */ + @RequiresPermissions("record:alarmData:remove") + @Log(title = "异常数据记录", businessType = BusinessType.DELETE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(Long[] ids) { + return toAjax(recordAlarmDataService.deleteRecordAlarmDataByObjIds(ids)); + } + + @PostMapping("/deviceOfflineTimingTask") + public R deviceOfflineTimingTask() { + return recordAlarmDataService.deviceOfflineTimingTask(); + } + + @PostMapping("/thresholdTimingTask") + public R thresholdTimingTask() { + return recordAlarmDataService.thresholdTimingTask(); + } + + @PostMapping("/hourLineLossTimingTask") + public R hourLineLossTimingTask() { + return recordAlarmDataService.hourLineLossTimingTask(); + } + + @PostMapping("/dailyConsumptionTimingTask") + public R dailyConsumptionTimingTask() { + return recordAlarmDataService.dailyConsumptionTimingTask(); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmRuleController.java b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmRuleController.java new file mode 100644 index 000000000..769e795b5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordAlarmRuleController.java @@ -0,0 +1,91 @@ +package com.op.energy.record.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.record.domain.RecordAlarmRule; +import com.op.energy.record.service.IRecordAlarmRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 异常告警规则Controller + * + * @author sf + * @date 2023-04-21 + */ +@RestController +@RequestMapping("/record/alarmRule") +public class RecordAlarmRuleController extends BaseController { + @Autowired + private IRecordAlarmRuleService recordAlarmRuleService; + + /** + * 查询异常告警规则列表 + */ + @RequiresPermissions("energy:rule:list") + @GetMapping("/list") + public TableDataInfo list(RecordAlarmRule recordAlarmRule) { + startPage(); + List list = recordAlarmRuleService.selectRecordAlarmRuleList(recordAlarmRule); + return getDataTable(list); + } + + /** + * 导出异常告警规则列表 + */ + @RequiresPermissions("energy:rule:export") + @Log(title = "异常告警规则", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RecordAlarmRule recordAlarmRule) { + List list = recordAlarmRuleService.selectRecordAlarmRuleList(recordAlarmRule); + ExcelUtil util = new ExcelUtil(RecordAlarmRule.class); + util.exportExcel(response, list, "异常告警规则数据"); + } + + /** + * 获取异常告警规则详细信息 + */ + @RequiresPermissions("energy:rule:query") + @GetMapping(value = "/{objId}") + public AjaxResult getInfo(@PathVariable("objId") Long objId) { + return success(recordAlarmRuleService.selectRecordAlarmRuleByObjId(objId)); + } + + /** + * 新增异常告警规则 + */ + @RequiresPermissions("energy:rule:add") + @Log(title = "异常告警规则", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RecordAlarmRule recordAlarmRule) { + return toAjax(recordAlarmRuleService.insertRecordAlarmRule(recordAlarmRule)); + } + + /** + * 修改异常告警规则 + */ + @RequiresPermissions("energy:rule:edit") + @Log(title = "异常告警规则", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RecordAlarmRule recordAlarmRule) { + return toAjax(recordAlarmRuleService.updateRecordAlarmRule(recordAlarmRule)); + } + + /** + * 删除异常告警规则 + */ + @RequiresPermissions("energy:rule:remove") + @Log(title = "异常告警规则", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public AjaxResult remove(@PathVariable Long[] objIds) { + return toAjax(recordAlarmRuleService.deleteRecordAlarmRuleByObjIds(objIds)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordDnbInstantController.java b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordDnbInstantController.java new file mode 100644 index 000000000..ba7430a78 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordDnbInstantController.java @@ -0,0 +1,199 @@ +package com.op.energy.record.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.record.domain.RecordDnbInstant; +import com.op.energy.record.service.IRecordDnbInstantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 电实时数据Controller + * + * @author YinQ + * @date 2023-04-07 + */ +@Controller +@RequestMapping("/record/dnbInstant") +public class RecordDnbInstantController extends BaseController { + private String prefix = "record/dnbInstant"; + + @Autowired + private IRecordDnbInstantService recordDnbInstantService; + + @RequiresPermissions("record:dnbInstant:view") + @GetMapping() + public String dnbInstant() + { + return prefix + "/dnbInstant"; + } + + /** + * 点钞数据 + * @return + */ + @GetMapping("/dnbCountingData") + public String dnbCountingData() + { + return prefix + "/dnbCountingData"; + } + + @GetMapping("/dnbHistoryData") + public String dnbHistoryData() + { + return prefix + "/dnbHistoryData"; + } + + /** + * 手动抄表 + * @return + */ + @GetMapping("/dnbMeterReading") + public String dnbMeterReading() + { + return prefix + "/dnbMeterReading"; + } + + /** + * 查询电实时数据列表 + */ + @RequiresPermissions("record:dnbInstant:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(RecordDnbInstant recordDnbInstant) + { + startPage(); + List list = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); + return getDataTable(list); + } + + /** + * 获取最新实时电数据 + */ + @PostMapping("/selectRealTimeList") + @ResponseBody + public TableDataInfo selectRealTimeParentList(RecordDnbInstant baseDnbInstant) + { + List list = recordDnbInstantService.selectRealTimeParentList(baseDnbInstant); + return getDataTable(list); + } + + /** + * 实时数据 + * @param recordDnbInstant + * @return + */ + @GetMapping("/instantList") + @ResponseBody + public TableDataInfo instantList(RecordDnbInstant recordDnbInstant) + { +// startPage(); + List list = recordDnbInstantService.instantList(recordDnbInstant); + return getDataTable(list); + } + + /** + * 导出电实时数据列表 + */ + @RequiresPermissions("record:dnbInstant:export") + @Log(title = "电实时数据", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response,RecordDnbInstant recordDnbInstant) + { + List list = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); + ExcelUtil util = new ExcelUtil(RecordDnbInstant.class); + util.exportExcel(response,list, "电实时数据数据"); + } + + /** + * 新增电实时数据 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存电实时数据 + */ + @RequiresPermissions("record:dnbInstant:add") + @Log(title = "电实时数据", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(RecordDnbInstant recordDnbInstant) + { + return toAjax(recordDnbInstantService.insertRecordDnbInstant(recordDnbInstant)); + } + + /** + * 修改电实时数据 + */ + @RequiresPermissions("record:dnbInstant:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) + { + RecordDnbInstant recordDnbInstant = recordDnbInstantService.selectRecordDnbInstantByObjid(objid); + mmap.put("recordDnbInstant", recordDnbInstant); + return prefix + "/edit"; + } + + /** + * 修改保存电实时数据 + */ + @RequiresPermissions("record:dnbInstant:edit") + @Log(title = "电实时数据", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(RecordDnbInstant recordDnbInstant) + { + return toAjax(recordDnbInstantService.updateRecordDnbInstant(recordDnbInstant)); + } + + /** + * 删除电实时数据 + */ + @RequiresPermissions("record:dnbInstant:remove") + @Log(title = "电实时数据", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(recordDnbInstantService.deleteRecordDnbInstantByObjids(ids)); + } + + /** + * 表具实时状态 + * @param dnbInstant + * @return + */ + @PostMapping( "/tablewareDetailsInfo") + @ResponseBody + public RecordDnbInstant tablewareDetailsInfo(RecordDnbInstant dnbInstant){ + RecordDnbInstant recordDnbInstants = recordDnbInstantService.tablewareDetailsInfo(dnbInstant); + return recordDnbInstants; + } + + /** + * 实时电压电流曲线 + * @param baseDnbInstant + * @return + */ + @PostMapping("/voltageCurrentCurve") + @ResponseBody + public AjaxResult voltageCurrentCurve(RecordDnbInstant baseDnbInstant) { + return AjaxResult.success(recordDnbInstantService.voltageCurrentCurve(baseDnbInstant)); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordWaterInstantController.java b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordWaterInstantController.java new file mode 100644 index 000000000..016e0a97c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/controller/RecordWaterInstantController.java @@ -0,0 +1,191 @@ +package com.op.energy.record.controller; + + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.record.domain.RecordWaterInstant; +import com.op.energy.record.service.IRecordWaterInstantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 水实时数据Controller + * + * @author YinQ + * @date 2023-04-08 + */ +@Controller +@RequestMapping("/record/waterInstant") +public class RecordWaterInstantController extends BaseController +{ + private String prefix = "record/waterInstant"; + + @Autowired + private IRecordWaterInstantService recordWaterInstantService; + + @RequiresPermissions("record:waterInstant:view") + @GetMapping() + public String waterInstant() + { + return prefix + "/waterInstant"; + } + + /** + * 点钞数据 + * @return + */ + @GetMapping("/waterCountingData") + public String waterCountingData() + { + return prefix + "/waterCountingData"; + } + + + @GetMapping("/waterHistoryData") + public String waterHistoryData() + { + return prefix + "/waterHistoryData"; + } + + /** + * 手动抄表 + * @return + */ + @GetMapping("/waterMeterReading") + public String waterMeterReading() + { + return prefix + "/waterMeterReading"; + } + + + /** + * 查询水实时数据列表 + */ + @RequiresPermissions("record:waterInstant:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(RecordWaterInstant recordWaterInstant) + { + startPage(); + List list = recordWaterInstantService.selectRecordWaterInstantList(recordWaterInstant); + return getDataTable(list); + } + + /** + * 导出水实时数据列表 + */ + @RequiresPermissions("record:waterInstant:export") + @Log(title = "水实时数据", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response,RecordWaterInstant recordWaterInstant) + { + List list = recordWaterInstantService.selectRecordWaterInstantList(recordWaterInstant); + ExcelUtil util = new ExcelUtil(RecordWaterInstant.class); + util.exportExcel(response,list, "水实时数据数据"); + } + + /** + * 新增水实时数据 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存水实时数据 + */ + @RequiresPermissions("record:waterInstant:add") + @Log(title = "水实时数据", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(RecordWaterInstant recordWaterInstant) + { + return toAjax(recordWaterInstantService.insertRecordWaterInstant(recordWaterInstant)); + } + + /** + * 修改水实时数据 + */ + @RequiresPermissions("record:waterInstant:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) + { + RecordWaterInstant recordWaterInstant = recordWaterInstantService.selectRecordWaterInstantByObjid(objid); + mmap.put("recordWaterInstant", recordWaterInstant); + return prefix + "/edit"; + } + + /** + * 修改保存水实时数据 + */ + @RequiresPermissions("record:waterInstant:edit") + @Log(title = "水实时数据", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(RecordWaterInstant recordWaterInstant) + { + return toAjax(recordWaterInstantService.updateRecordWaterInstant(recordWaterInstant)); + } + + /** + * 删除水实时数据 + */ + @RequiresPermissions("record:waterInstant:remove") + @Log(title = "水实时数据", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(recordWaterInstantService.deleteRecordWaterInstantByObjids(ids)); + } + + /** + * 获取最新实时电数据 + */ + @PostMapping("/selectRealTimeList") + @ResponseBody + public TableDataInfo selectRealTimeParentList(RecordWaterInstant recordWaterInstant) + { + List list = recordWaterInstantService.selectRealTimeParentList(recordWaterInstant); + return getDataTable(list); + } + + /** + * 实时数据 + * @param recordWaterInstant + * @return + */ + @GetMapping("/instantList") + @ResponseBody + public TableDataInfo instantList(RecordWaterInstant recordWaterInstant) + { + List list = recordWaterInstantService.instantList(recordWaterInstant); + return getDataTable(list); + } + + /** + * 表具实时状态 + * @param waterInstant + * @return + */ + @PostMapping( "/tablewareDetailsInfo") + @ResponseBody + public RecordWaterInstant tablewareDetailsInfo(RecordWaterInstant waterInstant){ + RecordWaterInstant recordWaterInstant = recordWaterInstantService.tablewareDetailsInfo(waterInstant); + return recordWaterInstant; + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmData.java b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmData.java new file mode 100644 index 000000000..9a85cf0bf --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmData.java @@ -0,0 +1,233 @@ +package com.op.energy.record.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 异常数据记录对象 record_alarm_data + * + * @author sf + * @date 2023-04-21 + */ +public class RecordAlarmData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objId; + Long[] objIds; + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + @Excel(name = "计量设备名称") + private String monitorName; + + /** 采集设备编号 */ + @Excel(name = "采集设备编号") + private String collectDeviceId; + + /** 记录时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date collectTime; + + /** 异常类型 */ + @Excel(name = "异常类型") + private Long alarmType; + + /** 异常状态 */ + @Excel(name = "异常状态") + private Long alarmStatus; + + /** 异常数据 */ + @Excel(name = "异常数据") + private String alarmData; + + /** 操作人员 */ + @Excel(name = "操作人员") + private String operationName; + + /** 操作时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operationTime; + + /** 备注 */ + @Excel(name = "备注") + private String cause; + + /** 通知用户 */ + @Excel(name = "通知用户") + private String notifyUser; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + public Long[] getObjIds() { + return objIds; + } + + public void setObjIds(Long[] objIds) { + this.objIds = objIds; + } + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjId(Long objId) + { + this.objId = objId; + } + + public Long getObjId() + { + return objId; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setCollectDeviceId(String collectDeviceId) + { + this.collectDeviceId = collectDeviceId; + } + + public String getCollectDeviceId() + { + return collectDeviceId; + } + public void setCollectTime(Date collectTime) + { + this.collectTime = collectTime; + } + + public Date getCollectTime() + { + return collectTime; + } + public void setAlarmType(Long alarmType) + { + this.alarmType = alarmType; + } + + public Long getAlarmType() + { + return alarmType; + } + public void setAlarmStatus(Long alarmStatus) + { + this.alarmStatus = alarmStatus; + } + + public Long getAlarmStatus() + { + return alarmStatus; + } + public void setAlarmData(String alarmData) + { + this.alarmData = alarmData; + } + + public String getAlarmData() + { + return alarmData; + } + public void setOperationName(String operationName) + { + this.operationName = operationName; + } + + public String getOperationName() + { + return operationName; + } + public void setOperationTime(Date operationTime) + { + this.operationTime = operationTime; + } + + public Date getOperationTime() + { + return operationTime; + } + public void setCause(String cause) + { + this.cause = cause; + } + + public String getCause() + { + return cause; + } + public void setNotifyUser(String notifyUser) + { + this.notifyUser = notifyUser; + } + + public String getNotifyUser() + { + return notifyUser; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objId", getObjId()) + .append("monitorId", getMonitorId()) + .append("collectDeviceId", getCollectDeviceId()) + .append("collectTime", getCollectTime()) + .append("alarmType", getAlarmType()) + .append("alarmStatus", getAlarmStatus()) + .append("alarmData", getAlarmData()) + .append("operationName", getOperationName()) + .append("operationTime", getOperationTime()) + .append("cause", getCause()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("notifyUser", getNotifyUser()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmRule.java b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmRule.java new file mode 100644 index 000000000..90b8fbd1b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordAlarmRule.java @@ -0,0 +1,227 @@ +package com.op.energy.record.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 异常告警规则对象 record_alarm_rule + * + * @author sf + * @date 2023-04-21 + */ +public class RecordAlarmRule extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objId; + + /** 规则编号 */ + @Excel(name = "规则编号") + private String ruleId; + + /** 规则名称 */ + @Excel(name = "规则名称") + private String ruleName; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 记录时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date collectTime; + + /** 能源类型 */ + @Excel(name = "能源类型") + private Long energyType; + + /** 触发规则 */ + @Excel(name = "触发规则") + private Long triggerRule; + + /** 触发阈值次数 */ + @Excel(name = "触发阈值次数") + private Long triggerNumber; + + /** 时间范围(分) */ + @Excel(name = "时间范围(分)") + private Long timeRange; + + /** 设备离线时间(分) */ + @Excel(name = "设备离线时间(分)") + private Long deviceOfflineTime; + + /** 通知用户 */ + @Excel(name = "通知用户") + private String notifyUser; + + /** 备注 */ + @Excel(name = "备注") + private String cause; + + /** 权限标识(部门) */ + @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ + @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + public void setObjId(Long objId) + { + this.objId = objId; + } + + public Long getObjId() + { + return objId; + } + public void setRuleId(String ruleId) + { + this.ruleId = ruleId; + } + + public String getRuleId() + { + return ruleId; + } + public void setRuleName(String ruleName) + { + this.ruleName = ruleName; + } + + public String getRuleName() + { + return ruleName; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setCollectTime(Date collectTime) + { + this.collectTime = collectTime; + } + + public Date getCollectTime() + { + return collectTime; + } + public void setEnergyType(Long energyType) + { + this.energyType = energyType; + } + + public Long getEnergyType() + { + return energyType; + } + public void setTriggerRule(Long triggerRule) + { + this.triggerRule = triggerRule; + } + + public Long getTriggerRule() + { + return triggerRule; + } + public void setTriggerNumber(Long triggerNumber) + { + this.triggerNumber = triggerNumber; + } + + public Long getTriggerNumber() + { + return triggerNumber; + } + public void setTimeRange(Long timeRange) + { + this.timeRange = timeRange; + } + + public Long getTimeRange() + { + return timeRange; + } + public void setDeviceOfflineTime(Long deviceOfflineTime) + { + this.deviceOfflineTime = deviceOfflineTime; + } + + public Long getDeviceOfflineTime() + { + return deviceOfflineTime; + } + public void setNotifyUser(String notifyUser) + { + this.notifyUser = notifyUser; + } + + public String getNotifyUser() + { + return notifyUser; + } + public void setCause(String cause) + { + this.cause = cause; + } + + public String getCause() + { + return cause; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objId", getObjId()) + .append("ruleId", getRuleId()) + .append("ruleName", getRuleName()) + .append("monitorId", getMonitorId()) + .append("collectTime", getCollectTime()) + .append("energyType", getEnergyType()) + .append("triggerRule", getTriggerRule()) + .append("triggerNumber", getTriggerNumber()) + .append("timeRange", getTimeRange()) + .append("deviceOfflineTime", getDeviceOfflineTime()) + .append("notifyUser", getNotifyUser()) + .append("cause", getCause()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordDnbInstant.java b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordDnbInstant.java new file mode 100644 index 000000000..8e2ef59db --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordDnbInstant.java @@ -0,0 +1,349 @@ +package com.op.energy.record.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 电实时数据对象 record_dnb_instant + * + * @author YinQ + * @date 2023-04-07 + */ +public class RecordDnbInstant extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 编号 */ + private Long objid; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备地址 */ + @Excel(name = "计量设备地址") + private String address; + + /** 采集时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date collectTime; + + /** A项电压 */ + @Excel(name = "A项电压") + private BigDecimal vA; + + /** B项电压 */ + @Excel(name = "B项电压") + private BigDecimal vB; + + /** C项电压 */ + @Excel(name = "C项电压") + private BigDecimal vC; + + /** A项电流 */ + @Excel(name = "A项电流") + private BigDecimal iA; + + /** B项电流 */ + @Excel(name = "B项电流") + private BigDecimal iB; + + /** C项电流 */ + @Excel(name = "C项电流") + private BigDecimal iC; + + /** 记录时间 */ + private Date recordTime; + + /** 功率因数 */ + @Excel(name = "功率因数") + private BigDecimal glys; + + /** 正向有功 */ + @Excel(name = "正向有功") + private BigDecimal zxyg; + + /** 有功功率 */ + @Excel(name = "有功功率") + private BigDecimal activePower; + + /** 无功功率 */ + @Excel(name = "无功功率") + private BigDecimal reactivePower; + + /** 电耗量 */ + @Excel(name = "电耗量") + private BigDecimal consumption; + + /** 采集方式 */ + @Excel(name = "采集方式") + private Long collectType; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + + /** + * 查询子集 + */ + private String monitorSubset; + + /** + * 在线状态 + */ + private Integer onlineState; + + private String startTime; + private String endTime; + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public Integer getOnlineState() { + return onlineState; + } + + public void setOnlineState(Integer onlineState) { + this.onlineState = onlineState; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setCollectTime(Date collectTime) + { + this.collectTime = collectTime; + } + + public Date getCollectTime() + { + return collectTime; + } + public void setVA(BigDecimal vA) + { + this.vA = vA; + } + + public BigDecimal getVA() + { + return vA; + } + public void setVB(BigDecimal vB) + { + this.vB = vB; + } + + public BigDecimal getVB() + { + return vB; + } + public void setVC(BigDecimal vC) + { + this.vC = vC; + } + + public BigDecimal getVC() + { + return vC; + } + public void setIA(BigDecimal iA) + { + this.iA = iA; + } + + public BigDecimal getIA() + { + return iA; + } + public void setIB(BigDecimal iB) + { + this.iB = iB; + } + + public BigDecimal getIB() + { + return iB; + } + public void setIC(BigDecimal iC) + { + this.iC = iC; + } + + public BigDecimal getIC() + { + return iC; + } + public void setRecordTime(Date recordTime) + { + this.recordTime = recordTime; + } + + public Date getRecordTime() + { + return recordTime; + } + public void setGlys(BigDecimal glys) + { + this.glys = glys; + } + + public BigDecimal getGlys() + { + return glys; + } + public void setZxyg(BigDecimal zxyg) + { + this.zxyg = zxyg; + } + + public BigDecimal getZxyg() + { + return zxyg; + } + public void setActivePower(BigDecimal activePower) + { + this.activePower = activePower; + } + + public BigDecimal getActivePower() + { + return activePower; + } + public void setReactivePower(BigDecimal reactivePower) + { + this.reactivePower = reactivePower; + } + + public BigDecimal getReactivePower() + { + return reactivePower; + } + public void setConsumption(BigDecimal consumption) + { + this.consumption = consumption; + } + + public BigDecimal getConsumption() + { + return consumption; + } + public void setCollectType(Long collectType) + { + this.collectType = collectType; + } + + public Long getCollectType() + { + return collectType; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("collectTime", getCollectTime()) + .append("vA", getVA()) + .append("vB", getVB()) + .append("vC", getVC()) + .append("iA", getIA()) + .append("iB", getIB()) + .append("iC", getIC()) + .append("recordTime", getRecordTime()) + .append("glys", getGlys()) + .append("zxyg", getZxyg()) + .append("activePower", getActivePower()) + .append("reactivePower", getReactivePower()) + .append("consumption", getConsumption()) + .append("collectType", getCollectType()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordWaterInstant.java b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordWaterInstant.java new file mode 100644 index 000000000..9a472b3a3 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/domain/RecordWaterInstant.java @@ -0,0 +1,230 @@ +package com.op.energy.record.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 水实时数据对象 record_water_instant + * + * @author YinQ + * @date 2023-04-08 + */ +public class RecordWaterInstant extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 自增标识 + */ + private Long objid; + + /** + * 计量设备编号 + */ + @Excel(name = "计量设备编号") + private String monitorId; + + + /** + * 计量设备名称 + */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** + * 采集时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date collectTime; + + /** + * 计量设备地址 + */ + @Excel(name = "计量设备地址") + private String address; + + /** + * 瞬时流量 + */ + @Excel(name = "瞬时流量") + private BigDecimal fluxFlow; + + /** + * 累计流量 + */ + @Excel(name = "累计流量") + private BigDecimal waterFlow; + + /** + * 记录时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date recordTime; + + /** + * 采集方式 + */ + @Excel(name = "采集方式") + private Long collectType; + + /** + * 权限标识(部门) + */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** + * 权限标识(用户) + */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** + * 耗量 + */ + private String consumption; + + /** + * 查询子集 + */ + private String monitorSubset; + + /** + * 在线状态 + */ + private Integer onlineState; + + public Integer getOnlineState() { + return onlineState; + } + + public void setOnlineState(Integer onlineState) { + this.onlineState = onlineState; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getConsumption() { + return consumption; + } + + public void setConsumption(String consumption) { + this.consumption = consumption; + } + + public String getMonitorName() { + return monitorName; + } + + public void setMonitorName(String monitorName) { + this.monitorName = monitorName; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public void setObjid(Long objid) { + this.objid = objid; + } + + public Long getObjid() { + return objid; + } + + public void setMonitorId(String monitorId) { + this.monitorId = monitorId; + } + + public String getMonitorId() { + return monitorId; + } + + public void setCollectTime(Date collectTime) { + this.collectTime = collectTime; + } + + public Date getCollectTime() { + return collectTime; + } + + public void setFluxFlow(BigDecimal fluxFlow) { + this.fluxFlow = fluxFlow; + } + + public BigDecimal getFluxFlow() { + return fluxFlow; + } + + public void setWaterFlow(BigDecimal waterFlow) { + this.waterFlow = waterFlow; + } + + public BigDecimal getWaterFlow() { + return waterFlow; + } + + public void setRecordTime(Date recordTime) { + this.recordTime = recordTime; + } + + public Date getRecordTime() { + return recordTime; + } + + public void setCollectType(Long collectType) { + this.collectType = collectType; + } + + public Long getCollectType() { + return collectType; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getDeptId() { + return deptId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getUserId() { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("collectTime", getCollectTime()) + .append("fluxFlow", getFluxFlow()) + .append("waterFlow", getWaterFlow()) + .append("recordTime", getRecordTime()) + .append("collectType", getCollectType()) + .append("deptId", getDeptId()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmDataMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmDataMapper.java new file mode 100644 index 000000000..eb3236b65 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmDataMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.record.mapper; + +import com.op.energy.record.domain.RecordAlarmData; + +import java.util.List; + +/** + * 异常数据记录Mapper接口 + * + * @author sf + * @date 2023-04-21 + */ +public interface RecordAlarmDataMapper +{ + /** + * 查询异常数据记录 + * + * @param objId 异常数据记录主键 + * @return 异常数据记录 + */ + public RecordAlarmData selectRecordAlarmDataByObjId(Long objId); + + /** + * 查询异常数据记录列表 + * + * @param recordAlarmData 异常数据记录 + * @return 异常数据记录集合 + */ + public List selectRecordAlarmDataList(RecordAlarmData recordAlarmData); + + /** + * 新增异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + public int insertRecordAlarmData(RecordAlarmData recordAlarmData); + + /** + * 修改异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + public int updateRecordAlarmData(RecordAlarmData recordAlarmData); + + /** + * 删除异常数据记录 + * + * @param objId 异常数据记录主键 + * @return 结果 + */ + public int deleteRecordAlarmDataByObjId(Long objId); + + /** + * 批量删除异常数据记录 + * + * @param objIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRecordAlarmDataByObjIds(Long[] objIds); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmRuleMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmRuleMapper.java new file mode 100644 index 000000000..6498218c3 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordAlarmRuleMapper.java @@ -0,0 +1,62 @@ +package com.op.energy.record.mapper; + +import com.op.energy.record.domain.RecordAlarmRule; + +import java.util.List; + +/** + * 异常告警规则Mapper接口 + * + * @author sf + * @date 2023-04-21 + */ +public interface RecordAlarmRuleMapper +{ + /** + * 查询异常告警规则 + * + * @param objId 异常告警规则主键 + * @return 异常告警规则 + */ + public RecordAlarmRule selectRecordAlarmRuleByObjId(Long objId); + + /** + * 查询异常告警规则列表 + * + * @param recordAlarmRule 异常告警规则 + * @return 异常告警规则集合 + */ + public List selectRecordAlarmRuleList(RecordAlarmRule recordAlarmRule); + + /** + * 新增异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + public int insertRecordAlarmRule(RecordAlarmRule recordAlarmRule); + + /** + * 修改异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + public int updateRecordAlarmRule(RecordAlarmRule recordAlarmRule); + + /** + * 删除异常告警规则 + * + * @param objId 异常告警规则主键 + * @return 结果 + */ + public int deleteRecordAlarmRuleByObjId(Long objId); + + /** + * 批量删除异常告警规则 + * + * @param objIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRecordAlarmRuleByObjIds(Long[] objIds); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordDnbInstantMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordDnbInstantMapper.java new file mode 100644 index 000000000..d6e8437dd --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordDnbInstantMapper.java @@ -0,0 +1,78 @@ +package com.op.energy.record.mapper; + +import com.op.energy.record.domain.RecordDnbInstant; + +import java.util.List; + + + +/** + * 电实时数据Mapper接口 + * + * @author YinQ + * @date 2023-04-07 + */ +public interface RecordDnbInstantMapper +{ + /** + * 查询电实时数据 + * + * @param objid 电实时数据主键 + * @return 电实时数据 + */ + public RecordDnbInstant selectRecordDnbInstantByObjid(Long objid); + + /** + * 查询电实时数据列表 + * + * @param recordDnbInstant 电实时数据 + * @return 电实时数据集合 + */ + public List selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant); + + /** + * 新增电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + public int insertRecordDnbInstant(RecordDnbInstant recordDnbInstant); + + /** + * 修改电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + public int updateRecordDnbInstant(RecordDnbInstant recordDnbInstant); + + /** + * 删除电实时数据 + * + * @param objid 电实时数据主键 + * @return 结果 + */ + public int deleteRecordDnbInstantByObjid(Long objid); + + /** + * 批量删除电实时数据 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRecordDnbInstantByObjids(String[] objids); + + /** + * 实时数据 + * @param recordDnbInstant + * @return + */ + List instantList(RecordDnbInstant recordDnbInstant); + + /** + * 获取最新实时电数据 + * @param baseDnbInstant + * @return + */ + List selectRealTimeParentList(RecordDnbInstant baseDnbInstant); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordWaterInstantMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordWaterInstantMapper.java new file mode 100644 index 000000000..f64bacc20 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/mapper/RecordWaterInstantMapper.java @@ -0,0 +1,86 @@ +package com.op.energy.record.mapper; + +import com.op.energy.record.domain.RecordWaterInstant; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 水实时数据Mapper接口 + * + * @author YinQ + * @date 2023-04-08 + */ +@Mapper +public interface RecordWaterInstantMapper { + /** + * 查询水实时数据 + * + * @param objid 水实时数据主键 + * @return 水实时数据 + */ + public RecordWaterInstant selectRecordWaterInstantByObjid(Long objid); + + /** + * 查询水实时数据列表 + * + * @param recordWaterInstant 水实时数据 + * @return 水实时数据集合 + */ + public List selectRecordWaterInstantList(RecordWaterInstant recordWaterInstant); + + /** + * 新增水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + public int insertRecordWaterInstant(RecordWaterInstant recordWaterInstant); + + /** + * 修改水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + public int updateRecordWaterInstant(RecordWaterInstant recordWaterInstant); + + /** + * 删除水实时数据 + * + * @param objid 水实时数据主键 + * @return 结果 + */ + public int deleteRecordWaterInstantByObjid(Long objid); + + /** + * 批量删除水实时数据 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRecordWaterInstantByObjids(String[] objids); + + /** + * 实时数据 + * + * @param recordWaterInstant + * @return + */ + List instantList(RecordWaterInstant recordWaterInstant); + + /** + * 获取最新实时电数据 + * + * @param recordWaterInstant + * @return + */ + List selectRealTimeParentList(RecordWaterInstant recordWaterInstant); + + /** + * 水 瞬时报警 + * @param recordWaterInstant + * @return + */ + List fluxFlowAlarm(RecordWaterInstant recordWaterInstant); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmDataService.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmDataService.java new file mode 100644 index 000000000..2edf1aa81 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmDataService.java @@ -0,0 +1,71 @@ +package com.op.energy.record.service; + +import com.op.common.core.domain.R; +import com.op.energy.record.domain.RecordAlarmData; + +import java.util.List; + +/** + * 异常数据记录Service接口 + * + * @author sf + * @date 2023-04-21 + */ +public interface IRecordAlarmDataService { + /** + * 查询异常数据记录 + * + * @param objId 异常数据记录主键 + * @return 异常数据记录 + */ + public RecordAlarmData selectRecordAlarmDataByObjId(Long objId); + + /** + * 查询异常数据记录列表 + * + * @param recordAlarmData 异常数据记录 + * @return 异常数据记录集合 + */ + public List selectRecordAlarmDataList(RecordAlarmData recordAlarmData); + + /** + * 新增异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + public int insertRecordAlarmData(RecordAlarmData recordAlarmData); + + /** + * 修改异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + public int updateRecordAlarmData(RecordAlarmData recordAlarmData); + + /** + * 批量删除异常数据记录 + * + * @param objIds 需要删除的异常数据记录主键集合 + * @return 结果 + */ + public int deleteRecordAlarmDataByObjIds(Long[] objIds); + + /** + * 删除异常数据记录信息 + * + * @param objId 异常数据记录主键 + * @return 结果 + */ + public int deleteRecordAlarmDataByObjId(Long objId); + + R deviceOfflineTimingTask(); + + R thresholdTimingTask(); + + R hourLineLossTimingTask(); + + R dailyConsumptionTimingTask(); + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmRuleService.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmRuleService.java new file mode 100644 index 000000000..0f66d72cd --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordAlarmRuleService.java @@ -0,0 +1,61 @@ +package com.op.energy.record.service; + +import com.op.energy.record.domain.RecordAlarmRule; + +import java.util.List; + +/** + * 异常告警规则Service接口 + * + * @author sf + * @date 2023-04-21 + */ +public interface IRecordAlarmRuleService { + /** + * 查询异常告警规则 + * + * @param objId 异常告警规则主键 + * @return 异常告警规则 + */ + public RecordAlarmRule selectRecordAlarmRuleByObjId(Long objId); + + /** + * 查询异常告警规则列表 + * + * @param recordAlarmRule 异常告警规则 + * @return 异常告警规则集合 + */ + public List selectRecordAlarmRuleList(RecordAlarmRule recordAlarmRule); + + /** + * 新增异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + public int insertRecordAlarmRule(RecordAlarmRule recordAlarmRule); + + /** + * 修改异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + public int updateRecordAlarmRule(RecordAlarmRule recordAlarmRule); + + /** + * 批量删除异常告警规则 + * + * @param objIds 需要删除的异常告警规则主键集合 + * @return 结果 + */ + public int deleteRecordAlarmRuleByObjIds(Long[] objIds); + + /** + * 删除异常告警规则信息 + * + * @param objId 异常告警规则主键 + * @return 结果 + */ + public int deleteRecordAlarmRuleByObjId(Long objId); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordDnbInstantService.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordDnbInstantService.java new file mode 100644 index 000000000..640bb7524 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordDnbInstantService.java @@ -0,0 +1,88 @@ +package com.op.energy.record.service; + + +import com.op.energy.record.domain.RecordDnbInstant; + +import java.util.List; + +/** + * 电实时数据Service接口 + * + * @author YinQ + * @date 2023-04-07 + */ +public interface IRecordDnbInstantService { + /** + * 查询电实时数据 + * + * @param objid 电实时数据主键 + * @return 电实时数据 + */ + public RecordDnbInstant selectRecordDnbInstantByObjid(Long objid); + + /** + * 查询电实时数据列表 + * + * @param recordDnbInstant 电实时数据 + * @return 电实时数据集合 + */ + public List selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant); + + /** + * 新增电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + public int insertRecordDnbInstant(RecordDnbInstant recordDnbInstant); + + /** + * 修改电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + public int updateRecordDnbInstant(RecordDnbInstant recordDnbInstant); + + /** + * 批量删除电实时数据 + * + * @param objids 需要删除的电实时数据主键集合 + * @return 结果 + */ + public int deleteRecordDnbInstantByObjids(String objids); + + /** + * 删除电实时数据信息 + * + * @param objid 电实时数据主键 + * @return 结果 + */ + public int deleteRecordDnbInstantByObjid(Long objid); + + /** + * 实时数据 + * + * @param recordDnbInstant + * @return + */ + List instantList(RecordDnbInstant recordDnbInstant); + + /** + * 获取最新实时电数据 + * + * @param baseDnbInstant + * @return + */ + List selectRealTimeParentList(RecordDnbInstant baseDnbInstant); + + /** + * 表具实时状态 + * + * @param dnbInstant + * @return + */ + RecordDnbInstant tablewareDetailsInfo(RecordDnbInstant dnbInstant); + + List voltageCurrentCurve(RecordDnbInstant baseDnbInstant); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordWaterInstantService.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordWaterInstantService.java new file mode 100644 index 000000000..527766a53 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/IRecordWaterInstantService.java @@ -0,0 +1,84 @@ +package com.op.energy.record.service; + +import com.op.energy.record.domain.RecordWaterInstant; + +import java.util.List; + + +/** + * 水实时数据Service接口 + * + * @author YinQ + * @date 2023-04-08 + */ +public interface IRecordWaterInstantService +{ + /** + * 查询水实时数据 + * + * @param objid 水实时数据主键 + * @return 水实时数据 + */ + public RecordWaterInstant selectRecordWaterInstantByObjid(Long objid); + + /** + * 查询水实时数据列表 + * + * @param recordWaterInstant 水实时数据 + * @return 水实时数据集合 + */ + public List selectRecordWaterInstantList(RecordWaterInstant recordWaterInstant); + + /** + * 新增水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + public int insertRecordWaterInstant(RecordWaterInstant recordWaterInstant); + + /** + * 修改水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + public int updateRecordWaterInstant(RecordWaterInstant recordWaterInstant); + + /** + * 批量删除水实时数据 + * + * @param objids 需要删除的水实时数据主键集合 + * @return 结果 + */ + public int deleteRecordWaterInstantByObjids(String objids); + + /** + * 删除水实时数据信息 + * + * @param objid 水实时数据主键 + * @return 结果 + */ + public int deleteRecordWaterInstantByObjid(Long objid); + + /** + * 实时数据 + * @param recordWaterInstant + * @return + */ + List instantList(RecordWaterInstant recordWaterInstant); + + /** + * 获取最新实时电数据 + * @param recordWaterInstant + * @return + */ + List selectRealTimeParentList(RecordWaterInstant recordWaterInstant); + + /** + * 表具实时状态 + * @param waterInstant + * @return + */ + RecordWaterInstant tablewareDetailsInfo(RecordWaterInstant waterInstant); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java new file mode 100644 index 000000000..a4f715cf4 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java @@ -0,0 +1,570 @@ +package com.op.energy.record.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.domain.R; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.*; +import com.op.energy.base.mapper.BaseCollectDeviceInfoMapper; +import com.op.energy.base.mapper.BaseDnbThresholdMapper; +import com.op.energy.base.mapper.BaseWaterThresholdMapper; +import com.op.energy.base.service.ISysDatasourceService; +import com.op.energy.record.domain.RecordAlarmData; +import com.op.energy.record.domain.RecordAlarmRule; +import com.op.energy.record.domain.RecordDnbInstant; +import com.op.energy.record.domain.RecordWaterInstant; +import com.op.energy.record.mapper.RecordAlarmDataMapper; +import com.op.energy.record.mapper.RecordAlarmRuleMapper; +import com.op.energy.record.mapper.RecordDnbInstantMapper; +import com.op.energy.record.mapper.RecordWaterInstantMapper; +import com.op.energy.record.service.IRecordAlarmDataService; +import com.op.energy.report.service.IDataAnalysisService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.stream.Collectors; + + +/** + * 异常数据记录Service业务层处理 + * + * @author sf + * @date 2023-04-21 + */ + +@Service("recordAlarmDataService") +public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { + protected Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private RecordAlarmDataMapper recordAlarmDataMapper; + + @Autowired + private RecordDnbInstantMapper recordDnbInstantMapper; + + @Autowired + private RecordWaterInstantMapper recordWaterInstantMapper; + + @Autowired + private BaseDnbThresholdMapper baseDnbThresholdMapper; + + @Autowired + private BaseWaterThresholdMapper baseWaterThresholdMapper; + + @Autowired + private BaseCollectDeviceInfoMapper baseCollectDeviceInfoMapper; + + @Autowired + private RecordAlarmRuleMapper recordAlarmRuleMapper; + + @Autowired + private ISysDatasourceService datasourceService; + + @Autowired + private IDataAnalysisService dataAnalysisService; + /** + * 查询异常数据记录 + * + * @param objId 异常数据记录主键 + * @return 异常数据记录 + */ + @Override + @DS("#header.poolName") + public RecordAlarmData selectRecordAlarmDataByObjId(Long objId) { + return recordAlarmDataMapper.selectRecordAlarmDataByObjId(objId); + } + + /** + * 查询异常数据记录列表 + * + * @param recordAlarmData 异常数据记录 + * @return 异常数据记录 + */ + @Override + @DS("#header.poolName") + public List selectRecordAlarmDataList(RecordAlarmData recordAlarmData) { + return recordAlarmDataMapper.selectRecordAlarmDataList(recordAlarmData); + } + + /** + * 新增异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertRecordAlarmData(RecordAlarmData recordAlarmData) { + recordAlarmData.setCreateTime(DateUtils.getNowDate()); + return recordAlarmDataMapper.insertRecordAlarmData(recordAlarmData); + } + + /** + * 修改异常数据记录 + * + * @param recordAlarmData 异常数据记录 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateRecordAlarmData(RecordAlarmData recordAlarmData) { + recordAlarmData.setUpdateTime(DateUtils.getNowDate()); + return recordAlarmDataMapper.updateRecordAlarmData(recordAlarmData); + } + + /** + * 批量删除异常数据记录 + * + * @param objIds 需要删除的异常数据记录主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordAlarmDataByObjIds(Long[] objIds) { + return recordAlarmDataMapper.deleteRecordAlarmDataByObjIds(objIds); + } + + /** + * 删除异常数据记录信息 + * + * @param objId 异常数据记录主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordAlarmDataByObjId(Long objId) { + return recordAlarmDataMapper.deleteRecordAlarmDataByObjId(objId); + } + + /** + * 超过电阈值 对比记录 + * @param baseDnbThresholds + * @param recordDnbInstants + * @return + */ + public Map compareThresholdAndRecord(List baseDnbThresholds, List recordDnbInstants) { + Map resultMap = new HashMap<>(); + + for (RecordDnbInstant recordDnbInstant : recordDnbInstants) { + String monitorId = recordDnbInstant.getMonitorId(); + BaseDnbThreshold baseDnbThreshold = getThresholdByMonitorId(monitorId, baseDnbThresholds); + if (baseDnbThreshold != null) { + String reason = compare(recordDnbInstant, baseDnbThreshold); + if (reason != null) { + resultMap.put(monitorId, reason); + } + } + } + + return resultMap; + } + + private BaseDnbThreshold getThresholdByMonitorId(String monitorId, List baseDnbThresholds) { + for (BaseDnbThreshold baseDnbThreshold : baseDnbThresholds) { + if (baseDnbThreshold.getMonitorId().equals(monitorId)) { + return baseDnbThreshold; + } + } + return null; + } + + private String compare(RecordDnbInstant recordDnbInstant, BaseDnbThreshold baseDnbThreshold) { + if (StringUtils.isNull(recordDnbInstant.getIA())){ + return null; + } + BigDecimal zero = new BigDecimal("0.00"); + if (recordDnbInstant.getVA().compareTo(zero) == 0 || recordDnbInstant.getVB().compareTo(zero) == 0 + || recordDnbInstant.getVC().compareTo(zero) == 0) { + return "缺项报警"; + } + if (recordDnbInstant.getIA().compareTo(baseDnbThreshold.getiAMax()) > 0) { + return "超过A相电流最大值"; + } + if (recordDnbInstant.getIB().compareTo(baseDnbThreshold.getiBMax()) > 0) { + return "超过B相电流最大值"; + } + if (recordDnbInstant.getIC().compareTo(baseDnbThreshold.getiCMax()) > 0) { + return "超过C相电流最大值"; + } + if (recordDnbInstant.getVA().compareTo(baseDnbThreshold.getvAMax()) > 0) { + return "超过A相电压最大值"; + } + if (recordDnbInstant.getVB().compareTo(baseDnbThreshold.getvBMax()) > 0) { + return "超过B相电压最大值"; + } + if (recordDnbInstant.getVC().compareTo(baseDnbThreshold.getvCMax()) > 0) { + return "超过C相电压最大值"; + } + if (recordDnbInstant.getIA().compareTo(baseDnbThreshold.getiAMin()) < 0) { + return "小于A相电流最小值"; + } + if (recordDnbInstant.getIB().compareTo(baseDnbThreshold.getiBMin()) < 0) { + return "小于B相电流最小值"; + } + if (recordDnbInstant.getIC().compareTo(baseDnbThreshold.getiCMin()) < 0) { + return "小于C相电流最小值"; + } + if (recordDnbInstant.getVA().compareTo(baseDnbThreshold.getvAMin()) < 0) { + return "小于A相电压最小值"; + } + if (recordDnbInstant.getVB().compareTo(baseDnbThreshold.getvBMin()) < 0) { + return "小于B相电压最小值"; + } + if (recordDnbInstant.getVC().compareTo(baseDnbThreshold.getvCMin()) < 0) { + return "小于C相电压最小值"; + } + return null; + } + + + /** + * 超过阈值告警 + */ + @Override + public R thresholdTimingTask() { + + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + + ExecutorService executorService = Executors.newFixedThreadPool(dateSources.size()); + try{ + dateSources.forEach(dateSource ->{ + logger.info("++++++++++++"+dateSource.getPoolName() +"++++开始++++++++++"); + Runnable run = () -> thresholdTimingTaskDetail(dateSource.getPoolName()); + executorService.execute(run); + }); + }catch (Exception e){ + logger.error("service == thresholdTimingTask == exception", e); + return R.fail("service == thresholdTimingTask == exception"); + }finally { + executorService.shutdown(); + } + return R.ok(true); + } + + public void thresholdTimingTaskDetail(String poolName){ + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + //电阈值 + BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + List recordDnbInstants = recordDnbInstantMapper.instantList(new RecordDnbInstant()); + Map thresholdMap = compareThresholdAndRecord(baseDnbThresholds, recordDnbInstants); + //防止多次存入异常数据 + RecordAlarmData recordAlarmData = new RecordAlarmData(); + recordAlarmData.setAlarmType(0L); + recordAlarmData.setAlarmStatus(1L); + List alarmDataList = recordAlarmDataMapper.selectRecordAlarmDataList(recordAlarmData); + List monitorIdList = alarmDataList.stream().map(RecordAlarmData::getMonitorId).collect(Collectors.toList()); + for (String monitorId : thresholdMap.keySet()) { + if (monitorIdList.contains(monitorId)) { + continue; + } + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(0L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData(thresholdMap.get(monitorId)); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + + //水 瞬时报警 + try { + List recordWaterInstants = recordWaterInstantMapper.fluxFlowAlarm(new RecordWaterInstant()); + if (recordWaterInstants.size() > 0){ + for (RecordWaterInstant waterInstant : recordWaterInstants) { + String monitorId = waterInstant.getMonitorId(); + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(2L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("瞬时流量异常"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } catch (Exception e) { + logger.error("service == 水瞬时报警 == exception", e); + } + } + + /** + * 设备离线告警(定时任务) + */ + @Override + public R deviceOfflineTimingTask() { + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + + ExecutorService executorService = Executors.newFixedThreadPool(dateSources.size()); + try{ + dateSources.forEach(dateSource ->{ + logger.info("++++++++++++"+dateSource.getPoolName() +"++++开始++++++++++"); + Runnable run = () -> deviceOfflineTimingTaskDetail(dateSource.getPoolName()); + executorService.execute(run); + }); + }catch (Exception e){ + logger.error("service == deviceOfflineTimingTask == exception", e); + return R.fail("service == deviceOfflineTimingTask == exception"); + }finally { + executorService.shutdown(); + } + return R.ok(true); + } + + public void deviceOfflineTimingTaskDetail(String poolName) { + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + Date date = new Date(); + RecordAlarmRule alarmRule = new RecordAlarmRule(); + alarmRule.setTriggerRule(1L); + List recordAlarmRules = recordAlarmRuleMapper.selectRecordAlarmRuleList(alarmRule); + Long minuteValue = 1000 * 60L; + if (recordAlarmRules.size() > 0) { + if (recordAlarmRules.get(0).getDeviceOfflineTime() != null) { + minuteValue = minuteValue * recordAlarmRules.get(0).getDeviceOfflineTime(); + } + } else { + return; + } + BaseCollectDeviceInfo collectDeviceInfo = new BaseCollectDeviceInfo(); + collectDeviceInfo.setOnlineState(0L); + List baseCollectDeviceInfos = baseCollectDeviceInfoMapper.selectBaseCollectDeviceInfoList(collectDeviceInfo); + if (baseCollectDeviceInfos.size() > 0) { + RecordAlarmData recordAlarmData = new RecordAlarmData(); + recordAlarmData.setAlarmType(1L); + recordAlarmData.setAlarmStatus(1L); + List alarmDataList = recordAlarmDataMapper.selectRecordAlarmDataList(recordAlarmData); + List collectDeviceIdList = alarmDataList.stream().map(RecordAlarmData::getCollectDeviceId).collect(Collectors.toList()); + for (BaseCollectDeviceInfo deviceInfo : baseCollectDeviceInfos) { + if (collectDeviceIdList.contains(deviceInfo.getCollectDeviceId())) { + continue; + } + if ((deviceInfo.getUpdateTime().getTime() + minuteValue) < date.getTime()) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setCollectDeviceId(deviceInfo.getCollectDeviceId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(1L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("设备离线已超过" + recordAlarmRules.get(0).getDeviceOfflineTime() + "分钟"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + } + + /** + * 小时线损告警 + * @return + */ + @Override + public R hourLineLossTimingTask() { + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + + ExecutorService executorService = Executors.newFixedThreadPool(dateSources.size()); + try{ + dateSources.forEach(dateSource ->{ + logger.info("++++++++++++"+dateSource.getPoolName() +"++++开始++++++++++"); + Runnable run = () -> hourLineLossTimingTask(dateSource.getPoolName()); + executorService.execute(run); + }); + }catch (Exception e){ + logger.error("service == thresholdTimingTask == exception", e); + return R.fail("service == thresholdTimingTask == exception"); + }finally { + executorService.shutdown(); + } + return R.ok(true); + } + + /** + * 水电 线损告警 + * @param poolName + */ + public void hourLineLossTimingTask(String poolName){ + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + BaseLineLoss baseLineLoss = new BaseLineLoss(); + Date nowDate = DateUtils.getNowDate(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(nowDate); + calendar.add(Calendar.HOUR_OF_DAY, -1); + Date hourAgoTime = calendar.getTime(); + Map lineLossMap = new HashMap<>(); + lineLossMap.put("beginCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", hourAgoTime)); + lineLossMap.put("endCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", nowDate)); + baseLineLoss.setParams(lineLossMap); + //电告警 + baseLineLoss.setMonitorType(2L); + List> lineLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); + //电阈值 + BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + if (lineLossList.size() > 0){ + for (Map map : lineLossList) { + String monitorId = String.valueOf(map.get("monitorId")); + for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { + if (monitorId.equals(dnbThreshold.getMonitorId())){ + BigDecimal lineLossRate = dnbThreshold.getLineLossRate(); + if (StringUtils.isNull(lineLossRate)){ + continue; + } + String substring = String.valueOf(map.get("lossRate")); + BigDecimal lossRate = new BigDecimal(substring); + if (lineLossRate.compareTo(lossRate) < 0){ + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(3L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过线损电阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + } + } + + //水线损 + baseLineLoss.setMonitorType(3L); + List> waterLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); + //水阈值 + BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); + baseWaterThreshold.setThresholdStatus(0L); + List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); + if (waterLossList.size() > 0){ + for (Map map : waterLossList) { + String monitorId = String.valueOf(map.get("monitorId")); + for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { + if (monitorId.equals(waterThreshold.getMonitorId())){ + BigDecimal lineLossRate = waterThreshold.getLineLossRate(); + if (StringUtils.isNull(lineLossRate)){ + continue; + } + String substring = String.valueOf(map.get("lossRate")); + BigDecimal lossRate = new BigDecimal(substring); + if (lineLossRate.compareTo(lossRate) < 0){ + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(3L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过线损水阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + } + } + } + + /** + * 日耗量告警 + * @return + */ + @Override + public R dailyConsumptionTimingTask() { + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + + ExecutorService executorService = Executors.newFixedThreadPool(dateSources.size()); + try{ + dateSources.forEach(dateSource ->{ + logger.info("++++++++++++"+dateSource.getPoolName() +"++++开始++++++++++"); + Runnable run = () -> dailyConsumptionTimingTask(dateSource.getPoolName()); + executorService.execute(run); + }); + }catch (Exception e){ + logger.error("service == dailyConsumptionTimingTask == exception", e); + return R.fail("service == dailyConsumptionTimingTask == exception"); + }finally { + executorService.shutdown(); + } + return R.ok(true); + } + + + /** + * 水电日耗量 + * @param poolName + */ + public void dailyConsumptionTimingTask(String poolName){ + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + HashMap map = new HashMap<>(); + map.put("timeSub", null); + Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String yesterday = simpleDateFormat.format(today);//获取昨天日期 + map.put("startDay", yesterday); + map.put("endDay", yesterday); + + //电阈值 + BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + if (baseDnbThresholds.size() > 0){ + for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { + if (StringUtils.isNull(dnbThreshold.getDayConsumption())){ + continue; + } + map.put("energyType", 2L); + map.put("monitorId", dnbThreshold.getMonitorId()); + List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); + if (dnbConsumptionList.size() == 0){ + continue; + } + BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); + if (expend.compareTo(dnbThreshold.getDayConsumption()) > 0){ + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(dnbThreshold.getMonitorId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(4L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过日耗量电阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + //水阈值 + BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); + if (baseWaterThresholds.size() > 0){ + for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { + if (StringUtils.isNull(waterThreshold.getDayConsumption())){ + continue; + } + map.put("energyType", 3L); + map.put("monitorId", waterThreshold.getMonitorId()); + List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); + if (dnbConsumptionList.size() == 0){ + continue; + } + BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); + if (expend.compareTo(waterThreshold.getDayConsumption()) > 0){ + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(waterThreshold.getMonitorId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(4L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过日耗量水阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + + } + + + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmRuleServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmRuleServiceImpl.java new file mode 100644 index 000000000..97e236f34 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmRuleServiceImpl.java @@ -0,0 +1,97 @@ +package com.op.energy.record.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.energy.record.domain.RecordAlarmRule; +import com.op.energy.record.mapper.RecordAlarmRuleMapper; +import com.op.energy.record.service.IRecordAlarmRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 异常告警规则Service业务层处理 + * + * @author sf + * @date 2023-04-21 + */ +@Service +public class RecordAlarmRuleServiceImpl implements IRecordAlarmRuleService { + @Autowired + private RecordAlarmRuleMapper recordAlarmRuleMapper; + + /** + * 查询异常告警规则 + * + * @param objId 异常告警规则主键 + * @return 异常告警规则 + */ + @Override + @DS("#header.poolName") + public RecordAlarmRule selectRecordAlarmRuleByObjId(Long objId) { + return recordAlarmRuleMapper.selectRecordAlarmRuleByObjId(objId); + } + + /** + * 查询异常告警规则列表 + * + * @param recordAlarmRule 异常告警规则 + * @return 异常告警规则 + */ + @Override + @DS("#header.poolName") + public List selectRecordAlarmRuleList(RecordAlarmRule recordAlarmRule) { + return recordAlarmRuleMapper.selectRecordAlarmRuleList(recordAlarmRule); + } + + /** + * 新增异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertRecordAlarmRule(RecordAlarmRule recordAlarmRule) { + recordAlarmRule.setCreateTime(DateUtils.getNowDate()); + return recordAlarmRuleMapper.insertRecordAlarmRule(recordAlarmRule); + } + + /** + * 修改异常告警规则 + * + * @param recordAlarmRule 异常告警规则 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateRecordAlarmRule(RecordAlarmRule recordAlarmRule) { + recordAlarmRule.setUpdateTime(DateUtils.getNowDate()); + return recordAlarmRuleMapper.updateRecordAlarmRule(recordAlarmRule); + } + + /** + * 批量删除异常告警规则 + * + * @param objIds 需要删除的异常告警规则主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordAlarmRuleByObjIds(Long[] objIds) { + return recordAlarmRuleMapper.deleteRecordAlarmRuleByObjIds(objIds); + } + + /** + * 删除异常告警规则信息 + * + * @param objId 异常告警规则主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordAlarmRuleByObjId(Long objId) { + return recordAlarmRuleMapper.deleteRecordAlarmRuleByObjId(objId); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordDnbInstantServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordDnbInstantServiceImpl.java new file mode 100644 index 000000000..4d091ba5b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordDnbInstantServiceImpl.java @@ -0,0 +1,240 @@ +package com.op.energy.record.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.record.domain.RecordDnbInstant; +import com.op.energy.record.mapper.RecordDnbInstantMapper; +import com.op.energy.record.service.IRecordDnbInstantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 电实时数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-07 + */ +@Service +public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { + @Autowired + private RecordDnbInstantMapper recordDnbInstantMapper; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + /** + * 查询电实时数据 + * + * @param objid 电实时数据主键 + * @return 电实时数据 + */ + @Override + @DS("#header.poolName") + public RecordDnbInstant selectRecordDnbInstantByObjid(Long objid) { + return recordDnbInstantMapper.selectRecordDnbInstantByObjid(objid); + } + + /** + * 查询电实时数据列表 + * + * @param recordDnbInstant 电实时数据 + * @return 电实时数据 + */ + @Override + @DS("#header.poolName") +// @DataScope(deptAlias = "null") + public List selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant) { + return recordDnbInstantMapper.selectRecordDnbInstantList(recordDnbInstant); + } + + /** + * 新增电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertRecordDnbInstant(RecordDnbInstant recordDnbInstant) { + /*if (StringUtils.isNotEmpty(recordDnbInstant.getMonitorId())){ + RecordDnbInstant dnbInstant = new RecordDnbInstant(); + dnbInstant.setMonitorId(recordDnbInstant.getMonitorId()); + List recordDnbInstants = recordDnbInstantMapper.instantList(dnbInstant); + if (recordDnbInstants.size() > 0){ + for (RecordDnbInstant instant : recordDnbInstants) { + if (instant.getZxyg().compareTo(recordDnbInstant.getZxyg()) > 0){ + return 0; + } + } + } + }*/ + recordDnbInstant.setRecordTime(new Date()); + recordDnbInstant.setCollectType(0L); + return recordDnbInstantMapper.insertRecordDnbInstant(recordDnbInstant); + } + + /** + * 修改电实时数据 + * + * @param recordDnbInstant 电实时数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateRecordDnbInstant(RecordDnbInstant recordDnbInstant) { + recordDnbInstant.setRecordTime(new Date()); + return recordDnbInstantMapper.updateRecordDnbInstant(recordDnbInstant); + } + + /** + * 批量删除电实时数据 + * + * @param objids 需要删除的电实时数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordDnbInstantByObjids(String objids) { + return recordDnbInstantMapper.deleteRecordDnbInstantByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除电实时数据信息 + * + * @param objid 电实时数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordDnbInstantByObjid(Long objid) { + return recordDnbInstantMapper.deleteRecordDnbInstantByObjid(objid); + } + + /** + * 实时数据 + * + * @param recordDnbInstant + * @return + */ + @Override + @DS("#header.poolName") + public List instantList(RecordDnbInstant recordDnbInstant) { + if (StringUtils.isEmpty(recordDnbInstant.getMonitorSubset())) { + return recordDnbInstantMapper.instantList(new RecordDnbInstant()); + } + List dnbInstantList = new ArrayList<>(); + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setParentId(Long.valueOf(recordDnbInstant.getMonitorSubset())); + monitorInfo.setParams(null); + recordDnbInstant.setParams(null); + List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(monitorInfo); + for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { + RecordDnbInstant dnbInstant = new RecordDnbInstant(); + dnbInstant.setMonitorId(baseMonitorInfo.getMonitorId()); + dnbInstant.setMonitorName(baseMonitorInfo.getMonitorName()); + RecordDnbInstant baseDnbInstant = new RecordDnbInstant(); + baseDnbInstant.setMonitorSubset(baseMonitorInfo.getMonitorId()); + List dnbInstantListOld = recordDnbInstantMapper.instantList(baseDnbInstant); + if (dnbInstantListOld.size() > 0) { + BigDecimal zxyg = dnbInstantListOld.stream().map(RecordDnbInstant::getZxyg).reduce(BigDecimal.ZERO, BigDecimal::add); + Date collectTime = dnbInstantListOld.stream().map(RecordDnbInstant::getCollectTime).max(Date::compareTo).orElse(null); + dnbInstant.setZxyg(zxyg); + dnbInstant.setCollectTime(collectTime); + } + dnbInstantList.add(dnbInstant); + } + return dnbInstantList; + } + + /** + * 获取最新实时电数据 + * + * @param baseDnbInstant + * @return + */ + @Override + @DS("#header.poolName") + public List selectRealTimeParentList(RecordDnbInstant baseDnbInstant) { + List dnbInstantList = new ArrayList<>(); + if (StringUtils.isEmpty(baseDnbInstant.getMonitorSubset())) { + return recordDnbInstantMapper.instantList(new RecordDnbInstant()); + } + RecordDnbInstant dnbInstant = new RecordDnbInstant(); + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setMonitorId(baseDnbInstant.getMonitorSubset()); + baseDnbInstant.setParams(null); + List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(monitorInfo); + if (baseMonitorInfos.size() > 0) { + List dnbInstantListOld = recordDnbInstantMapper.instantList(baseDnbInstant); + dnbInstant.setMonitorId(baseMonitorInfos.get(0).getMonitorId()); + dnbInstant.setMonitorName(baseMonitorInfos.get(0).getMonitorName()); + if (dnbInstantListOld.size() > 0) { + BigDecimal zxyg = dnbInstantListOld.stream().map(RecordDnbInstant::getZxyg).reduce(BigDecimal.ZERO, BigDecimal::add); + Date collectTime = dnbInstantListOld.stream().map(RecordDnbInstant::getCollectTime).max(Date::compareTo).orElse(null); + dnbInstant.setZxyg(zxyg); + dnbInstant.setCollectTime(collectTime); + } + } +// HashMap> childrenMonitorInfoMap = baseMonitorInfoService.buildMonitorMap(baseMonitorInfos); +// List baseMonitorList = childrenMonitorInfoMap.get(baseDnbInstant.getMonitorSubset()); +// List monitorList = baseMonitorList.stream().map(BaseMonitorInfo::getMonitorId).collect(Collectors.toList()); +// HashMap paramMap = new HashMap<>(); +// paramMap.put("monitorList", monitorList); +// baseDnbInstant.setParams(paramMap); +// +// List collect = baseMonitorInfos.stream().filter(e -> e.getMonitorId().equals(baseDnbInstant.getMonitorSubset())).collect(Collectors.toList()); +// + dnbInstantList.add(dnbInstant); + return dnbInstantList; + } + + + /** + * 表具实时状态 + * + * @param dnbInstant + * @return + */ + @Override + @DS("#header.poolName") + public RecordDnbInstant tablewareDetailsInfo(RecordDnbInstant dnbInstant) { + if (StringUtils.isEmpty(dnbInstant.getMonitorId())) { + return null; + } + List recordDnbInstants = recordDnbInstantMapper.instantList(dnbInstant); + if (recordDnbInstants.size() == 0) { + return null; + } + return recordDnbInstants.get(0); + } + + @Override + @DS("#header.poolName") + public List voltageCurrentCurve(RecordDnbInstant dnbInstant) { + if (StringUtils.isEmpty(dnbInstant.getMonitorId())){ + return null; + } + if (StringUtils.isEmpty(dnbInstant.getStartTime()) || StringUtils.isEmpty(dnbInstant.getEndTime())){ + String nowTime = DateUtils.getTime(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime modifiedDateTime = LocalDateTime.parse(nowTime, formatter).minusMinutes(30); + String thirtyTime = modifiedDateTime.format(formatter); + dnbInstant.setStartTime(thirtyTime); + dnbInstant.setEndTime(nowTime); + } + return recordDnbInstantMapper.selectRecordDnbInstantList(dnbInstant); + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordWaterInstantServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordWaterInstantServiceImpl.java new file mode 100644 index 000000000..487a4bf2b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordWaterInstantServiceImpl.java @@ -0,0 +1,192 @@ +package com.op.energy.record.service.impl; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.record.domain.RecordWaterInstant; +import com.op.energy.record.mapper.RecordWaterInstantMapper; +import com.op.energy.record.service.IRecordWaterInstantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 水实时数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-08 + */ +@Service +public class RecordWaterInstantServiceImpl implements IRecordWaterInstantService { + @Autowired + private RecordWaterInstantMapper recordWaterInstantMapper; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + /** + * 查询水实时数据 + * + * @param objid 水实时数据主键 + * @return 水实时数据 + */ + @Override + @DS("#header.poolName") + public RecordWaterInstant selectRecordWaterInstantByObjid(Long objid) { + return recordWaterInstantMapper.selectRecordWaterInstantByObjid(objid); + } + + /** + * 查询水实时数据列表 + * + * @param recordWaterInstant 水实时数据 + * @return 水实时数据 + */ + @Override + @DS("#header.poolName") +// @DataScope(deptAlias = "null") + public List selectRecordWaterInstantList(RecordWaterInstant recordWaterInstant) { + return recordWaterInstantMapper.selectRecordWaterInstantList(recordWaterInstant); + } + + /** + * 新增水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertRecordWaterInstant(RecordWaterInstant recordWaterInstant) { + recordWaterInstant.setRecordTime(new Date()); + recordWaterInstant.setCollectType(0L); + return recordWaterInstantMapper.insertRecordWaterInstant(recordWaterInstant); + } + + /** + * 修改水实时数据 + * + * @param recordWaterInstant 水实时数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateRecordWaterInstant(RecordWaterInstant recordWaterInstant) { + recordWaterInstant.setRecordTime(new Date()); + return recordWaterInstantMapper.updateRecordWaterInstant(recordWaterInstant); + } + + /** + * 批量删除水实时数据 + * + * @param objids 需要删除的水实时数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordWaterInstantByObjids(String objids) { + return recordWaterInstantMapper.deleteRecordWaterInstantByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除水实时数据信息 + * + * @param objid 水实时数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteRecordWaterInstantByObjid(Long objid) { + return recordWaterInstantMapper.deleteRecordWaterInstantByObjid(objid); + } + + /** + * 实时数据 + * + * @param recordWaterInstant + * @return + */ + @Override + @DS("#header.poolName") + public List instantList(RecordWaterInstant recordWaterInstant) { + if (StringUtils.isEmpty(recordWaterInstant.getMonitorSubset())) { + return recordWaterInstantMapper.instantList(new RecordWaterInstant()); + } + List waterInstants = new ArrayList<>(); + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setParentId(Long.valueOf(recordWaterInstant.getMonitorSubset())); + monitorInfo.setParams(null); + recordWaterInstant.setParams(null); + List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(monitorInfo); + for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { + RecordWaterInstant waterInstant = new RecordWaterInstant(); + waterInstant.setMonitorId(baseMonitorInfo.getMonitorId()); + waterInstant.setMonitorName(baseMonitorInfo.getMonitorName()); + RecordWaterInstant waterInstant1 = new RecordWaterInstant(); + waterInstant1.setMonitorSubset(baseMonitorInfo.getMonitorId()); + List recordWaterInstants = recordWaterInstantMapper.instantList(waterInstant1); + if (recordWaterInstants.size() > 0) { + BigDecimal waterFlow = recordWaterInstants.stream().map(RecordWaterInstant::getWaterFlow).reduce(BigDecimal.ZERO, BigDecimal::add); + Date collectTime = recordWaterInstants.stream().map(RecordWaterInstant::getCollectTime).max(Date::compareTo).orElse(null); + waterInstant.setWaterFlow(waterFlow); + waterInstant.setCollectTime(collectTime); + } + waterInstants.add(waterInstant); + } + return waterInstants; + } + + /** + * 获取最新实时电数据 + * + * @param recordWaterInstant + * @return + */ + @Override + @DS("#header.poolName") + public List selectRealTimeParentList(RecordWaterInstant recordWaterInstant) { + List waterInstantList = new ArrayList<>(); + if (StringUtils.isEmpty(recordWaterInstant.getMonitorSubset())) { + return recordWaterInstantMapper.instantList(new RecordWaterInstant()); + } + RecordWaterInstant waterInstant = new RecordWaterInstant(); + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setMonitorId(recordWaterInstant.getMonitorSubset()); + recordWaterInstant.setParams(null); + List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(monitorInfo); + if (baseMonitorInfos.size() > 0) { + List waterInstantListOld = recordWaterInstantMapper.instantList(recordWaterInstant); + waterInstant.setMonitorId(baseMonitorInfos.get(0).getMonitorId()); + waterInstant.setMonitorName(baseMonitorInfos.get(0).getMonitorName()); + if (waterInstantListOld.size() > 0) { + BigDecimal waterFlow = waterInstantListOld.stream().map(RecordWaterInstant::getWaterFlow).reduce(BigDecimal.ZERO, BigDecimal::add); + Date collectTime = waterInstantListOld.stream().map(RecordWaterInstant::getCollectTime).max(Date::compareTo).orElse(null); + waterInstant.setWaterFlow(waterFlow); + waterInstant.setCollectTime(collectTime); + } + } + waterInstantList.add(waterInstant); + return waterInstantList; + } + + @Override + @DS("#header.poolName") + public RecordWaterInstant tablewareDetailsInfo(RecordWaterInstant waterInstant) { + if (StringUtils.isEmpty(waterInstant.getMonitorId())) { + return null; + } + List recordWaterInstants = recordWaterInstantMapper.instantList(waterInstant); + if (recordWaterInstants.size() == 0) { + return null; + } + return recordWaterInstants.get(0); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/BoardController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/BoardController.java new file mode 100644 index 000000000..790bad906 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/BoardController.java @@ -0,0 +1,260 @@ +package com.op.energy.report.controller; + +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.energy.report.service.IBoardService; +import com.op.energy.report.service.IDataAnalysisService; +import com.op.energy.report.service.IEnergyPreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * 首页看板数据接口Controller + * + * @author YinQ + * @date 2023-04-05 + */ +@Controller +@RequestMapping("/report/board") +public class BoardController extends BaseController +{ + private String prefix = "report/board"; + + @Autowired + private IEnergyPreviewService energyPreviewService; + + @Autowired + private IDataAnalysisService dataAnalysisService; + + @Autowired + private IBoardService boardService; + + /** + * 首页看板 + * @return + */ + @GetMapping("/index") + public String index() + { + return prefix + "/index"; + } + + + /** + * 能耗预览看板 + * @return + */ + @GetMapping("/energyPreview") + public String energyPreview() + { + return prefix + "/energyPreview"; + } + + /** + * 表具状态看板 + * @return + */ + @GetMapping("/tablewareState") + public String tablewareState() + { + return prefix + "/tablewareState"; + } + /** + * 园区看板 + * @return + */ + @GetMapping("/parkPage") + public String parkPage() + { + return prefix + "/page"; + } + + + /** + * 首页能耗曲线图 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/indexCurveChart") + public AjaxResult indexCurveChart(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.indexBarChart(paramMap); + return AjaxResult.success(result); + } + + /** + * 首页今日、本周、当月、当年耗量 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/fourEnergy") + public AjaxResult fourEnergy(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.fourEnergy(paramMap); + return AjaxResult.success(result); + } + + /** + * 首页建筑、业态、分项饼图 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/threePieChart") + public AjaxResult threePieChart(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.threePieChart(paramMap); + return AjaxResult.success(result); + } + + /** + * 首页建筑、业态、分项柱图 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/columnarChart") + public AjaxResult columnarChart(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.columnarChart(paramMap); + return AjaxResult.success(result); + } + + /** + * 点抄数据柱状图 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/dnbCountingData") + public AjaxResult dnbCountingData(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.dnbCountingData(paramMap); + return AjaxResult.success(result); + } + + + /** + * 预览看板耗量折线 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/previewPolyline") + public AjaxResult previewPolyline(@RequestParam(required = false) Map paramMap){ + Map result = dataAnalysisService.previewPolyline(paramMap); + return AjaxResult.success(result); + } + + + /** + * 能耗排名 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/energyRanking") + public AjaxResult energyRanking(@RequestParam(required = false) Map paramMap){ + Map result = energyPreviewService.energyRanking(paramMap); + return AjaxResult.success(result); + } + + /** + * 线损排名 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/lineLossRanking") + public AjaxResult lineLossRanking(@RequestParam(required = false) Map paramMap){ + Map result = dataAnalysisService.lineLossRanking(paramMap); + return AjaxResult.success(result); + } + + /** + * 预览看板线损折线 + * 传参:monitorId + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/previewLineLossLine") + public AjaxResult previewLineLossLine(@RequestParam(required = false) Map paramMap){ + Map result = dataAnalysisService.previewLineLossLine(paramMap); + return AjaxResult.success(result); + } + + /** + * 表具状态信息 + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/tablewareInfo") + public AjaxResult tablewareInfo(@RequestParam(required = false) Map paramMap){ + Map result = boardService.tablewareInfo(paramMap); + return AjaxResult.success(result); + } + + /** + * 园区概览 + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/parkHomepageOverview") + public AjaxResult parkHomepageOverview(@RequestParam(required = false) Map paramMap){ + Map result = boardService.parkHomepageOverview(paramMap); + return AjaxResult.success(result); + } + + /** + * 分项业态占比图 + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/categoryBusinessChart") + public AjaxResult categoryBusinessChart(@RequestParam(required = false) Map paramMap){ + Map result = boardService.categoryBusinessChart(paramMap); + return AjaxResult.success(result); + } + + /** + * 接入园区、设备数量 + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/parkEquipmentNumber") + public AjaxResult parkEquipmentNumber(@RequestParam(required = false) Map paramMap){ + Map result = boardService.parkEquipmentNumber(paramMap); + return AjaxResult.success(result); + } + + /** + * 各园区能耗排名 + * @param paramMap + * @return + */ + @ResponseBody + @GetMapping("/parkEnergyRanking") + public AjaxResult parkEnergyRanking(@RequestParam(required = false) Map paramMap){ + ArrayList> result = boardService.parkEnergyRanking(paramMap); + return AjaxResult.success(result); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/EmsApiController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/EmsApiController.java new file mode 100644 index 000000000..7eadfe10d --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/EmsApiController.java @@ -0,0 +1,85 @@ +package com.op.energy.report.controller; + +import com.op.common.core.domain.R; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.energy.report.domain.EmsApiVo; +import com.op.energy.report.service.IEmsApiService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * EMS与SF业态接口 + * @Author Yinq + * @create 2023-07-26 17:58 + */ +@RestController +@RequestMapping("/emsApi") +public class EmsApiController extends BaseController { + + @Autowired + private IEmsApiService emsApiService; + + + /** + * cbs获取抄表数据 + * @param emsApiVo + * @return + */ + @PostMapping("/getMeterReadingData") + @Log(title = "CBS获取抄表数据", businessType = BusinessType.OTHER) + public AjaxResult getMeterReadingData(@RequestBody EmsApiVo emsApiVo) + { + return success(emsApiService.getMeterReadingData(emsApiVo)); + } + + /** + * cbs获取抄表数据返回接口 + * @param emsApiVo + * @return + */ + @PostMapping("/getMeterReadingDataInterface") + @Log(title = "cbs获取抄表数据返回接口", businessType = BusinessType.OTHER) + public AjaxResult getMeterReadingDataInterface(@RequestBody EmsApiVo emsApiVo) + { + return success(emsApiService.getMeterReadingDataInterface(emsApiVo)); + } + + + /** + * CBS获取抄表数据定时任务 + * @return + */ + @PostMapping("/meterReadingDataTimingTask") + @Log(title = "CBS获取抄表数据定时任务", businessType = BusinessType.OTHER) + public R meterReadingDataTimingTask() { + return emsApiService.meterReadingDataTimingTask(); + } + + /** + * 增删改cbs设备信息 + * @param emsApiVo + * @return + */ + @PostMapping("/modifyDeviceInformation") + @Log(title = "cbs获取抄表数据返回接口", businessType = BusinessType.OTHER) + public AjaxResult modifyDeviceInformation(@RequestBody EmsApiVo emsApiVo) + { + if (StringUtils.isNull(emsApiVo.getModifyType())){ + return error("service == modifyDeviceInformation == exception:请传修改类型(0-新增;1-删除;2-修改)!"); + } + if (StringUtils.isNull(emsApiVo.getPhysicalCode())){ + return error("service == modifyDeviceInformation == exception:请传物理编号!"); + } + return success(emsApiService.modifyDeviceInformation(emsApiVo)); + } + + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointDnbController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointDnbController.java new file mode 100644 index 000000000..2074d9ff5 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointDnbController.java @@ -0,0 +1,146 @@ +package com.op.energy.report.controller; + + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.report.domain.ReportPointDnb; +import com.op.energy.report.domain.ReportPointDnbDTO; +import com.op.energy.report.service.IReportPointDnbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 电整点数据Controller + * + * @author YinQ + * @date 2023-04-05 + */ +@Controller +@RequestMapping("/report/pointDnb") +public class ReportPointDnbController extends BaseController { + private String prefix = "report/pointDnb"; + + @Autowired + private IReportPointDnbService reportPointDnbService; + + @RequiresPermissions("report:pointDnb:view") + @GetMapping() + public String pointDnb() + { + return prefix + "/pointDnb"; + } + + /** + * 查询电整点数据列表 + */ + @RequiresPermissions("report:pointDnb:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(ReportPointDnb reportPointDnb) + { + startPage(); + List list = reportPointDnbService.selectReportPointDnbList(reportPointDnb); + return getDataTable(list); + } + + /** + * 日月年电数据List + * @param reportPointDnb + * @return + */ + @PostMapping("/datePointDnbList") + @ResponseBody + public TableDataInfo datePointDnbList(ReportPointDnb reportPointDnb) + { + startPage(); + List list = reportPointDnbService.datePointDnbList(reportPointDnb); + return getDataTable(list); + } + + /** + * 导出电整点数据列表 + */ + @RequiresPermissions("report:pointDnb:export") + @Log(title = "电整点数据", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response,ReportPointDnb reportPointDnb) + { + if (reportPointDnb.getDateType().equals("hour")){ + List list = reportPointDnbService.selectReportPointDnbList(reportPointDnb); + ExcelUtil util = new ExcelUtil(ReportPointDnb.class); + util.exportExcel(response,list, "电整点数据数据"); + } else { + List list = reportPointDnbService.datePointDnbList(reportPointDnb); + ExcelUtil util = new ExcelUtil(ReportPointDnbDTO.class); + util.exportExcel(response,list, "电整点数据数据"); + } + } + + /** + * 新增电整点数据 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存电整点数据 + */ + @RequiresPermissions("report:pointDnb:add") + @Log(title = "电整点数据", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(ReportPointDnb reportPointDnb) + { + return toAjax(reportPointDnbService.insertReportPointDnb(reportPointDnb)); + } + + /** + * 修改电整点数据 + */ + @RequiresPermissions("report:pointDnb:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) + { + ReportPointDnb reportPointDnb = reportPointDnbService.selectReportPointDnbByObjid(objid); + mmap.put("reportPointDnb", reportPointDnb); + return prefix + "/edit"; + } + + /** + * 修改保存电整点数据 + */ + @RequiresPermissions("report:pointDnb:edit") + @Log(title = "电整点数据", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(ReportPointDnb reportPointDnb) + { + return toAjax(reportPointDnbService.updateReportPointDnb(reportPointDnb)); + } + + /** + * 删除电整点数据 + */ + @RequiresPermissions("report:pointDnb:remove") + @Log(title = "电整点数据", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(reportPointDnbService.deleteReportPointDnbByObjids(ids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointWaterController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointWaterController.java new file mode 100644 index 000000000..b7fbfdbe2 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/ReportPointWaterController.java @@ -0,0 +1,147 @@ +package com.op.energy.report.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.energy.report.domain.ReportPointWater; +import com.op.energy.report.domain.ReportPointWaterDTO; +import com.op.energy.report.service.IReportPointWaterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 水整点数据Controller + * + * @author YinQ + * @date 2023-04-09 + */ +@Controller +@RequestMapping("/report/pointWater") +public class ReportPointWaterController extends BaseController +{ + private String prefix = "report/pointWater"; + + @Autowired + private IReportPointWaterService reportPointWaterService; + + @RequiresPermissions("report:pointWater:view") + @GetMapping() + public String pointWater() + { + return prefix + "/pointWater"; + } + + /** + * 查询水整点数据列表 + */ + @RequiresPermissions("report:pointWater:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(ReportPointWater reportPointWater) + { + startPage(); + List list = reportPointWaterService.selectReportPointWaterList(reportPointWater); + return getDataTable(list); + } + + /** + * 日月年电数据List + * @param reportPointWater + * @return + */ + @PostMapping("/datePointWaterList") + @ResponseBody + public TableDataInfo datePointWaterList(ReportPointWater reportPointWater) + { + startPage(); + List list = reportPointWaterService.datePointWaterList(reportPointWater); + return getDataTable(list); + } + + + /** + * 导出水整点数据列表 + */ + @RequiresPermissions("report:pointWater:export") + @Log(title = "水整点数据", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public void export(HttpServletResponse response,ReportPointWater reportPointWater) + { + if (reportPointWater.getDateType().equals("hour")){ + List list = reportPointWaterService.selectReportPointWaterList(reportPointWater); + ExcelUtil util = new ExcelUtil(ReportPointWater.class); + util.exportExcel(response,list, "水整点数据数据"); + }else { + List list = reportPointWaterService.datePointWaterList(reportPointWater); + ExcelUtil util = new ExcelUtil(ReportPointWaterDTO.class); + util.exportExcel(response,list, "水整点数据数据"); + } + } + + /** + * 新增水整点数据 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存水整点数据 + */ + @RequiresPermissions("report:pointWater:add") + @Log(title = "水整点数据", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(ReportPointWater reportPointWater) + { + return toAjax(reportPointWaterService.insertReportPointWater(reportPointWater)); + } + + /** + * 修改水整点数据 + */ + @RequiresPermissions("report:pointWater:edit") + @GetMapping("/edit/{objid}") + public String edit(@PathVariable("objid") Long objid, ModelMap mmap) + { + ReportPointWater reportPointWater = reportPointWaterService.selectReportPointWaterByObjid(objid); + mmap.put("reportPointWater", reportPointWater); + return prefix + "/edit"; + } + + /** + * 修改保存水整点数据 + */ + @RequiresPermissions("report:pointWater:edit") + @Log(title = "水整点数据", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(ReportPointWater reportPointWater) + { + return toAjax(reportPointWaterService.updateReportPointWater(reportPointWater)); + } + + /** + * 删除水整点数据 + */ + @RequiresPermissions("report:pointWater:remove") + @Log(title = "水整点数据", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(reportPointWaterService.deleteReportPointWaterByObjids(ids)); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/dataAnalysisController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/dataAnalysisController.java new file mode 100644 index 000000000..af77063d1 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/dataAnalysisController.java @@ -0,0 +1,242 @@ +package com.op.energy.report.controller; + +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.utils.ExportExcelUtil; +import com.op.energy.base.utils.SpringUtils; +import com.op.energy.report.domain.ExportReport; +import com.op.energy.report.service.IDataAnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.op.energy.base.utils.ExportExcelUtil.findConsecutiveIndices; + + +/** + * 数据分析Controller + * + * @author YinQ + * @date 2023-04-05 + */ +@Controller +@RequestMapping("/report/analysis") +public class dataAnalysisController extends BaseController +{ + private String prefix = "report/dataAnalysis"; + + @Autowired + private IDataAnalysisService dataAnalysisService; + + /** + * 环比分析 + * @return + */ + @GetMapping("/momAnalysis/{energyType}") + public String momAnalysis(@PathVariable("energyType") Long energyType, ModelMap mmap) + { + mmap.put("energyType", energyType); + return prefix + "/momAnalysis"; + } + + + /** + * 环比分析返回数据 + * @return + */ + @ResponseBody + @GetMapping("/energyMomAnalysisData") + public AjaxResult energyMomAnalysisData(@RequestParam(required = false) Map paramMap){ + Map result = dataAnalysisService.energyMomAnalysisData(paramMap); + return AjaxResult.success(result); + } + + /** + * 同比分析 + * @return + */ + @GetMapping("/yoyAnalysis/{energyType}") + public String yoyAnalysis(@PathVariable("energyType") Long energyType, ModelMap mmap) + { + mmap.put("energyType", energyType); + return prefix + "/yoyAnalysis"; + } + + /** + * 同比分析返回数据 + * @return + */ + @ResponseBody + @GetMapping("/energyYoyAnalysisData") + public AjaxResult energyYoyAnalysisData(@RequestParam(required = false) Map paramMap){ + Map result = dataAnalysisService.energyYoyAnalysisData(paramMap); + return AjaxResult.success(result); + } + + /** + * 线损分析 + * @return + */ + @GetMapping("/lineLossAnalysis/{energyType}") + public String lineLossAnalysis(@PathVariable("energyType") Long energyType, ModelMap mmap) + { + mmap.put("energyType", energyType); + return prefix + "/lineLossAnalysis"; + } + + /** + * 线损分析返回数据 + * @return + */ + @ResponseBody + @PostMapping("/lineLossAnalysisData") + public TableDataInfo lineLossAnalysisData(BaseLineLoss baseLineLoss){ + List> result = dataAnalysisService.lineLossAnalysisData(baseLineLoss); + return getDataTable(result); + } + + /** + * 线损分析详情页面 + * @return + */ + @GetMapping("/lineLossAnalysisDetails") + public String lineLossAnalysisDetails(ModelMap mmap) + { +// mmap.put("energyType", energyType); + return prefix + "/lineLossAnalysisDetails"; + } + + /** + * 能耗统计 + * @return + */ + @GetMapping("/energyStatistics/{energyType}") + public String energyStatistics(@PathVariable("energyType") Long energyType, ModelMap mmap) + { + mmap.put("energyType", energyType); + return prefix + "/energyStatistics"; + } + + /** + * 能耗统计返回数据 + * @param paramMap + * @return + */ + @PostMapping("/energyStatisticsData") + @ResponseBody + public TableDataInfo energyStatisticsData(@RequestParam(required = false) Map paramMap) + { + List> list = dataAnalysisService.energyStatisticsData(paramMap); + return getDataTable(list); + } + + /** + * 线损分析详情页面返回数据 + * @return + */ + @ResponseBody + @PostMapping("/lineLossAnalysisDetailsData") + public TableDataInfo lineLossAnalysisDetailsData(BaseLineLoss baseLineLoss){ + List> result = dataAnalysisService.lineLossAnalysisDetailsData(baseLineLoss); + return getDataTable(result); + } + + /** + * 线损分析详情页面图表 + * @param baseLineLoss + * @return + */ + @ResponseBody + @PostMapping("/lineLossAnalysisDetailsCharts") + public AjaxResult lineLossAnalysisDetailsCharts(BaseLineLoss baseLineLoss){ + Map result = dataAnalysisService.lineLossAnalysisDetailsCharts(baseLineLoss); + return AjaxResult.success(result); + } + + + /** + * 层级导出报表 + * @param paramMap + * @return + */ + @PostMapping("/classificationExportReport") + @ResponseBody + public TableDataInfo classificationExportReport(@RequestParam(required = false) Map paramMap) + { + List list = dataAnalysisService.classificationExportReport(paramMap); + return getDataTable(list); + } + + @PostMapping("/classificationExport") + @ResponseBody + public void classificationExport(HttpServletResponse response, @RequestParam(required = false) Map paramMap) + { + List list = dataAnalysisService.classificationExportReport(paramMap); + + List originalList = SpringUtils.deepCopy(list); + + try { + ArrayList oneList = new ArrayList<>(); + ArrayList twoList = new ArrayList<>(); + ArrayList threeList = new ArrayList<>(); + ArrayList fourList = new ArrayList<>(); + ArrayList fiveList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + oneList.add(list.get(i).getOneExpend() == null ? "" : list.get(i).getOneExpend().toPlainString()); + twoList.add(list.get(i).getTwoExpend() == null ? "" : list.get(i).getTwoExpend().toPlainString()); + threeList.add(list.get(i).getThreeExpend() == null ? "" : list.get(i).getThreeExpend().toPlainString()); + fourList.add(list.get(i).getFourExpend() == null ? "" : list.get(i).getFourExpend().toPlainString()); + fiveList.add(list.get(i).getFiveExpend() == null ? "" : list.get(i).getFiveExpend().toPlainString()); + } + List oneListIndices = findConsecutiveIndices(oneList); + for (int[] consecutiveIndex : oneListIndices) { + for (int i = consecutiveIndex[0] + 1; i < consecutiveIndex[1] + 1; i++) { + list.get(i).setOneExpend(null); + } + } + List twoListIndices = findConsecutiveIndices(twoList); + for (int[] consecutiveIndex : twoListIndices) { + for (int i = consecutiveIndex[0] + 1; i < consecutiveIndex[1] + 1; i++) { + list.get(i).setTwoExpend(null); + } + } + List threeListIndices = findConsecutiveIndices(threeList); + for (int[] consecutiveIndex : threeListIndices) { + for (int i = consecutiveIndex[0] + 1; i < consecutiveIndex[1] + 1; i++) { + list.get(i).setThreeExpend(null); + } + } + List fourListIndices = findConsecutiveIndices(fourList); + for (int[] consecutiveIndex : fourListIndices) { + if(consecutiveIndex[1] - consecutiveIndex[0] < 2){ + continue; + } + for (int i = consecutiveIndex[0] + 1; i < consecutiveIndex[1] + 1; i++) { + list.get(i).setFourExpend(null); + } + } + List fiveListIndices = findConsecutiveIndices(fiveList); + for (int[] consecutiveIndex : fiveListIndices) { + if(consecutiveIndex[1] - consecutiveIndex[0] < 2){ + continue; + } + for (int i = consecutiveIndex[0] + 1; i < consecutiveIndex[1] + 1; i++) { + list.get(i).setFiveExpend(null); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + ExportExcelUtil util = new ExportExcelUtil(ExportReport.class); + util.exportExcel(response, list, "层级导出报表", originalList); + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/controller/energyPreviewController.java b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/energyPreviewController.java new file mode 100644 index 000000000..519fefafe --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/controller/energyPreviewController.java @@ -0,0 +1,67 @@ +package com.op.energy.report.controller; + +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.page.TableDataInfo; +import com.op.energy.report.service.IEnergyPreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 能源预览Controller + * + * @author YinQ + * @date 2023-04-05 + */ +@Controller +@RequestMapping("/report/preview") +public class energyPreviewController extends BaseController { + private String prefix = "report/preview"; + + @Autowired + private IEnergyPreviewService energyPreviewService; + + + /** + * 电能源预览 + * + * @return + */ + @GetMapping("/dnbIndex/{energyType}") + public String dnbIndex(@PathVariable("energyType") Long energyType, ModelMap mmap) { + mmap.put("energyType", energyType); + return prefix + "/dnbIndex"; + } + + + /** + * 能源预览返回数据 + * + * @param map + * @return + */ + @PostMapping("/consumptionReport/{monitorType}") + @ResponseBody + public TableDataInfo indexDataReport(@RequestParam(required = false) Map map, @PathVariable("monitorType") Long energyType) { + List> list = energyPreviewService.indexDataReport(map, energyType); + return getDataTable(list); + } + + + /** + * 水能源预览 + * + * @return + */ + @GetMapping("/waterIndex/{energyType}") + public String energyPreview(@PathVariable("energyType") Long energyType, ModelMap mmap) { + mmap.put("energyType", energyType); + return prefix + "/waterIndex"; + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/EmsApiVo.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/EmsApiVo.java new file mode 100644 index 000000000..5c0accedc --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/EmsApiVo.java @@ -0,0 +1,138 @@ +package com.op.energy.report.domain; + +import com.op.common.core.web.domain.BaseEntity; + +import java.util.List; + +/** + * cbs接口传参 EmsApiVo + * + * @author YinQ + * @date 2023-09-13 + */ +public class EmsApiVo extends BaseEntity +{ + + private static final long serialVersionUID = 1L; + + + /** + * 抄表时间(时间为空则默认当前时间) + */ + private String meterReadingTime; + + /** + * cbs园区编号 + */ + private String parkCode; + + /** + * cbs单一抄表 + */ + private String roomCode; + + + /** + * cbs房间名称 + */ + private String roomName; + + /** + * ems园区编号 + */ + private String poolName; + + /** + * cbs单一抄表List + */ + private List monitorIdList; + + /** + * 修改类型(0-新增;1-删除;2-修改) + */ + private Long modifyType; + + /** + * CBS物理编号 + */ + private String physicalCode; + + public String getRoomName() { + return roomName; + } + + public void setRoomName(String roomName) { + this.roomName = roomName; + } + + public String getPhysicalCode() { + return physicalCode; + } + + public void setPhysicalCode(String physicalCode) { + this.physicalCode = physicalCode; + } + + public Long getModifyType() { + return modifyType; + } + + public void setModifyType(Long modifyType) { + this.modifyType = modifyType; + } + + @Override + public String getPoolName() { + return poolName; + } + + @Override + public void setPoolName(String poolName) { + this.poolName = poolName; + } + + public List getMonitorIdList() { + return monitorIdList; + } + + public void setMonitorIdList(List monitorIdList) { + this.monitorIdList = monitorIdList; + } + + public String getMeterReadingTime() { + return meterReadingTime; + } + + public void setMeterReadingTime(String meterReadingTime) { + this.meterReadingTime = meterReadingTime; + } + + public String getParkCode() { + return parkCode; + } + + public void setParkCode(String parkCode) { + this.parkCode = parkCode; + } + + public String getRoomCode() { + return roomCode; + } + + public void setRoomCode(String roomCode) { + this.roomCode = roomCode; + } + + @Override + public String toString() { + return "EmsApiVo{" + + "meterReadingTime='" + meterReadingTime + '\'' + + ", parkCode='" + parkCode + '\'' + + ", roomCode='" + roomCode + '\'' + + ", poolName='" + poolName + '\'' + + ", monitorIdList=" + monitorIdList + + ", modifyType=" + modifyType + + ", physicalCode='" + physicalCode + '\'' + + '}'; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ExportReport.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ExportReport.java new file mode 100644 index 000000000..e261ef489 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ExportReport.java @@ -0,0 +1,247 @@ +package com.op.energy.report.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +import java.math.BigDecimal; + +/** + * 层级导出报表 exportReport + * + * @author YinQ + * @date 2023-09-13 + */ +public class ExportReport extends BaseEntity +{ + + private static final long serialVersionUID = 1L; + + + /** + * 时间范围 + */ + @Excel(name = "时间范围") + private String timeRange; + + /** + * 一级计量设备编号 + */ + @Excel(name = "一级计量设备编号") + private String oneMonitorId; + + /** + * 一级计量设备名称 + */ + @Excel(name = "一级计量设备名称") + private String oneMonitorName; + + /** + * 一级耗量 + */ + @Excel(name = "一级耗量",cellType = Excel.ColumnType.NUMERIC) + private BigDecimal oneExpend; + + /** + * 二级计量设备编号 + */ + @Excel(name = "二级计量设备编号") + private String twoMonitorId; + + /** + * 二级计量设备名称 + */ + @Excel(name = "二级计量设备名称") + private String twoMonitorName; + + /** + * 二级耗量 + */ + @Excel(name = "二级耗量", cellType = Excel.ColumnType.NUMERIC) + private BigDecimal twoExpend; + + /** + * 三级计量设备编号 + */ + @Excel(name = "三级计量设备编号") + private String threeMonitorId; + + /** + * 三级计量设备名称 + */ + @Excel(name = "三级计量设备名称") + private String threeMonitorName; + + /** + * 三级耗量 + */ + @Excel(name = "三级耗量", cellType = Excel.ColumnType.NUMERIC) + private BigDecimal threeExpend; + + /** + * 四级计量设备编号 + */ + @Excel(name = "四级计量设备编号") + private String fourMonitorId; + + /** + * 四级计量设备名称 + */ + @Excel(name = "四级计量设备名称") + private String fourMonitorName; + + /** + * 四级耗量 + */ + @Excel(name = "四级耗量", cellType = Excel.ColumnType.NUMERIC) + private BigDecimal fourExpend; + + /** + * 五级计量设备编号 + */ + @Excel(name = "五级计量设备编号") + private String fiveMonitorId; + + /** + * 五级计量设备名称 + */ + @Excel(name = "五级计量设备名称") + private String fiveMonitorName; + + /** + * 五级耗量 + */ + @Excel(name = "五级耗量", cellType = Excel.ColumnType.NUMERIC) + private BigDecimal fiveExpend; + + + public String getTimeRange() { + return timeRange; + } + + public void setTimeRange(String timeRange) { + this.timeRange = timeRange; + } + + public String getOneMonitorId() { + return oneMonitorId; + } + + public void setOneMonitorId(String oneMonitorId) { + this.oneMonitorId = oneMonitorId; + } + + public String getOneMonitorName() { + return oneMonitorName; + } + + public void setOneMonitorName(String oneMonitorName) { + this.oneMonitorName = oneMonitorName; + } + + public BigDecimal getOneExpend() { + return oneExpend; + } + + public void setOneExpend(BigDecimal oneExpend) { + this.oneExpend = oneExpend; + } + + public String getTwoMonitorId() { + return twoMonitorId; + } + + public void setTwoMonitorId(String twoMonitorId) { + this.twoMonitorId = twoMonitorId; + } + + public String getTwoMonitorName() { + return twoMonitorName; + } + + public void setTwoMonitorName(String twoMonitorName) { + this.twoMonitorName = twoMonitorName; + } + + public BigDecimal getTwoExpend() { + return twoExpend; + } + + public void setTwoExpend(BigDecimal twoExpend) { + this.twoExpend = twoExpend; + } + + public String getThreeMonitorId() { + return threeMonitorId; + } + + public void setThreeMonitorId(String threeMonitorId) { + this.threeMonitorId = threeMonitorId; + } + + public String getThreeMonitorName() { + return threeMonitorName; + } + + public void setThreeMonitorName(String threeMonitorName) { + this.threeMonitorName = threeMonitorName; + } + + public BigDecimal getThreeExpend() { + return threeExpend; + } + + public void setThreeExpend(BigDecimal threeExpend) { + this.threeExpend = threeExpend; + } + + public String getFourMonitorId() { + return fourMonitorId; + } + + public void setFourMonitorId(String fourMonitorId) { + this.fourMonitorId = fourMonitorId; + } + + public String getFourMonitorName() { + return fourMonitorName; + } + + public void setFourMonitorName(String fourMonitorName) { + this.fourMonitorName = fourMonitorName; + } + + public BigDecimal getFourExpend() { + return fourExpend; + } + + public void setFourExpend(BigDecimal fourExpend) { + this.fourExpend = fourExpend; + } + + public String getFiveMonitorId() { + return fiveMonitorId; + } + + public void setFiveMonitorId(String fiveMonitorId) { + this.fiveMonitorId = fiveMonitorId; + } + + public String getFiveMonitorName() { + return fiveMonitorName; + } + + public void setFiveMonitorName(String fiveMonitorName) { + this.fiveMonitorName = fiveMonitorName; + } + + public BigDecimal getFiveExpend() { + return fiveExpend; + } + + public void setFiveExpend(BigDecimal fiveExpend) { + this.fiveExpend = fiveExpend; + } + + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnb.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnb.java new file mode 100644 index 000000000..90e679717 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnb.java @@ -0,0 +1,306 @@ +package com.op.energy.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; +/** + * 电整点数据对象 report_point_dnb + * + * @author YinQ + * @date 2023-04-05 + */ +public class ReportPointDnb extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 园区名称 */ +// @Excel(name = "园区名称") + private String deptName; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备编号父级 */ +// @Excel(name = "计量设备编号父级") + private String pMonitorId; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String address; + + /** 耗量 */ + @Excel(name = "耗量") + private BigDecimal expend; + + /** 价格 */ + @Excel(name = "价格") + private BigDecimal price; + + /** 整点 */ +// @Excel(name = "整点") + private String pointTime; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date beginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + /** 记录时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date recordTime; + + /** 修改标识 */ +// @Excel(name = "修改标识") + private Long updateFlag; + + /** 仪表值 */ + @Excel(name = "仪表值") + private BigDecimal meterValue; + + /** 采集方式 */ +// @Excel(name = "采集方式") + private Long collectType; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** + * 查询子集 + */ + private String monitorSubset; + + /** + * 日期类型 + */ + private String dateType; + + /** 公摊表类型 */ + private Integer publicShareType; + + public Integer getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(Integer publicShareType) { + this.publicShareType = publicShareType; + } + + public String getDateType() { + return dateType; + } + + public void setDateType(String dateType) { + this.dateType = dateType; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setpMonitorId(String pMonitorId) + { + this.pMonitorId = pMonitorId; + } + + public String getpMonitorId() + { + return pMonitorId; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setExpend(BigDecimal expend) + { + this.expend = expend; + } + + public BigDecimal getExpend() + { + return expend; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setPointTime(String pointTime) + { + this.pointTime = pointTime; + } + + public String getPointTime() + { + return pointTime; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setRecordTime(Date recordTime) + { + this.recordTime = recordTime; + } + + public Date getRecordTime() + { + return recordTime; + } + public void setUpdateFlag(Long updateFlag) + { + this.updateFlag = updateFlag; + } + + public Long getUpdateFlag() + { + return updateFlag; + } + public void setMeterValue(BigDecimal meterValue) + { + this.meterValue = meterValue; + } + + public BigDecimal getMeterValue() + { + return meterValue; + } + public void setCollectType(Long collectType) + { + this.collectType = collectType; + } + + public Long getCollectType() + { + return collectType; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("deptId", getDeptId()) + .append("deptName", getDeptName()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("pMonitorId", getpMonitorId()) + .append("address", getAddress()) + .append("expend", getExpend()) + .append("price", getPrice()) + .append("pointTime", getPointTime()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .append("recordTime", getRecordTime()) + .append("updateFlag", getUpdateFlag()) + .append("meterValue", getMeterValue()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("collectType", getCollectType()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnbDTO.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnbDTO.java new file mode 100644 index 000000000..99587f2d8 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointDnbDTO.java @@ -0,0 +1,296 @@ +package com.op.energy.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 电整点数据对象 report_point_dnb + * + * @author YinQ + * @date 2023-04-05 + */ +public class ReportPointDnbDTO extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 园区名称 */ +// @Excel(name = "园区名称") + private String deptName; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备编号父级 */ +// @Excel(name = "计量设备编号父级") + private String pMonitorId; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String address; + + /** 耗量 */ + @Excel(name = "耗量") + private BigDecimal expend; + + /** 价格 */ +// @Excel(name = "价格") + private BigDecimal price; + + /** 整点 */ +// @Excel(name = "整点") + private String pointTime; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date beginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 记录时间 */ +// @JsonFormat(pattern = "yyyy-MM-dd") +// @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date recordTime; + + /** 修改标识 */ +// @Excel(name = "修改标识") + private Long updateFlag; + + /** 仪表值 */ + @Excel(name = "仪表值") + private BigDecimal meterValue; + + /** 采集方式 */ +// @Excel(name = "采集方式") + private Long collectType; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** + * 查询子集 + */ + private String monitorSubset; + + /** + * 日期类型 + */ + private String dateType; + + public String getDateType() { + return dateType; + } + + public void setDateType(String dateType) { + this.dateType = dateType; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setpMonitorId(String pMonitorId) + { + this.pMonitorId = pMonitorId; + } + + public String getpMonitorId() + { + return pMonitorId; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setExpend(BigDecimal expend) + { + this.expend = expend; + } + + public BigDecimal getExpend() + { + return expend; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setPointTime(String pointTime) + { + this.pointTime = pointTime; + } + + public String getPointTime() + { + return pointTime; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setRecordTime(Date recordTime) + { + this.recordTime = recordTime; + } + + public Date getRecordTime() + { + return recordTime; + } + public void setUpdateFlag(Long updateFlag) + { + this.updateFlag = updateFlag; + } + + public Long getUpdateFlag() + { + return updateFlag; + } + public void setMeterValue(BigDecimal meterValue) + { + this.meterValue = meterValue; + } + + public BigDecimal getMeterValue() + { + return meterValue; + } + public void setCollectType(Long collectType) + { + this.collectType = collectType; + } + + public Long getCollectType() + { + return collectType; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("deptId", getDeptId()) + .append("deptName", getDeptName()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("pMonitorId", getpMonitorId()) + .append("address", getAddress()) + .append("expend", getExpend()) + .append("price", getPrice()) + .append("pointTime", getPointTime()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .append("recordTime", getRecordTime()) + .append("updateFlag", getUpdateFlag()) + .append("meterValue", getMeterValue()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("collectType", getCollectType()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWater.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWater.java new file mode 100644 index 000000000..5e8bdbb40 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWater.java @@ -0,0 +1,338 @@ +package com.op.energy.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 水整点数据对象 report_point_water + * + * @author YinQ + * @date 2023-04-09 + */ +public class ReportPointWater extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备编号父级 */ +// @Excel(name = "计量设备编号父级") + private String pMonitorId; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String address; + + /** 耗量 */ + @Excel(name = "耗量") + private BigDecimal expend; + + /** 价格 */ + @Excel(name = "价格") + private BigDecimal price; + + /** 整点 */ +// @Excel(name = "整点") + private String pointTime; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date beginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + /** 记录时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date recordTime; + + /** 修改标识:0-未修改;1-已修改 */ + @Excel(name = "修改标识:0-未修改;1-已修改") + private Long updateFlag; + + /** 抄见值 */ + @Excel(name = "抄见值") + private BigDecimal meterValue; + + /** 操作人员 */ +// @Excel(name = "操作人员") + private String operationName; + + /** 操作时间 */ +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operationTime; + + /** 采集方式 */ +// @Excel(name = "采集方式") + private Long collectType; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 园区名称 */ +// @Excel(name = "园区名称") + private String deptName; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** + * 查询子集 + */ + private String monitorSubset; + + /** + * 日期类型 + */ + private String dateType; + + /** 公摊表类型 */ + private Integer publicShareType; + + public Integer getPublicShareType() { + return publicShareType; + } + + public void setPublicShareType(Integer publicShareType) { + this.publicShareType = publicShareType; + } + + public String getDateType() { + return dateType; + } + + public void setDateType(String dateType) { + this.dateType = dateType; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setpMonitorId(String pMonitorId) + { + this.pMonitorId = pMonitorId; + } + + public String getpMonitorId() + { + return pMonitorId; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setExpend(BigDecimal expend) + { + this.expend = expend; + } + + public BigDecimal getExpend() + { + return expend; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setPointTime(String pointTime) + { + this.pointTime = pointTime; + } + + public String getPointTime() + { + return pointTime; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setRecordTime(Date recordTime) + { + this.recordTime = recordTime; + } + + public Date getRecordTime() + { + return recordTime; + } + public void setUpdateFlag(Long updateFlag) + { + this.updateFlag = updateFlag; + } + + public Long getUpdateFlag() + { + return updateFlag; + } + public void setMeterValue(BigDecimal meterValue) + { + this.meterValue = meterValue; + } + + public BigDecimal getMeterValue() + { + return meterValue; + } + public void setOperationName(String operationName) + { + this.operationName = operationName; + } + + public String getOperationName() + { + return operationName; + } + public void setOperationTime(Date operationTime) + { + this.operationTime = operationTime; + } + + public Date getOperationTime() + { + return operationTime; + } + public void setCollectType(Long collectType) + { + this.collectType = collectType; + } + + public Long getCollectType() + { + return collectType; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("pMonitorId", getpMonitorId()) + .append("address", getAddress()) + .append("expend", getExpend()) + .append("price", getPrice()) + .append("pointTime", getPointTime()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .append("recordTime", getRecordTime()) + .append("updateFlag", getUpdateFlag()) + .append("meterValue", getMeterValue()) + .append("operationName", getOperationName()) + .append("operationTime", getOperationTime()) + .append("collectType", getCollectType()) + .append("deptId", getDeptId()) + .append("deptName", getDeptName()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWaterDTO.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWaterDTO.java new file mode 100644 index 000000000..d4f6d4b4f --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportPointWaterDTO.java @@ -0,0 +1,326 @@ +package com.op.energy.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 水整点数据对象 report_point_water + * + * @author YinQ + * @date 2023-04-09 + */ +public class ReportPointWaterDTO extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增标识 */ + private Long objid; + + /** 计量设备编号 */ + @Excel(name = "计量设备编号") + private String monitorId; + + /** 计量设备名称 */ + @Excel(name = "计量设备名称") + private String monitorName; + + /** 计量设备编号父级 */ +// @Excel(name = "计量设备编号父级") + private String pMonitorId; + + /** 计量设备位置 */ + @Excel(name = "计量设备位置") + private String address; + + /** 耗量 */ + @Excel(name = "耗量") + private BigDecimal expend; + + /** 价格 */ +// @Excel(name = "价格") + private BigDecimal price; + + /** 整点 */ +// @Excel(name = "整点") + private String pointTime; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date beginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 记录时间 */ +// @JsonFormat(pattern = "yyyy-MM-dd") +// @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date recordTime; + + /** 修改标识:0-未修改;1-已修改 */ +// @Excel(name = "修改标识:0-未修改;1-已修改") + private Long updateFlag; + + /** 抄见值 */ + @Excel(name = "抄见值") + private BigDecimal meterValue; + + /** 操作人员 */ +// @Excel(name = "操作人员") + private String operationName; + + /** 操作时间 */ +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operationTime; + + /** 采集方式 */ +// @Excel(name = "采集方式") + private Long collectType; + + /** 权限标识(部门) */ +// @Excel(name = "权限标识", readConverterExp = "部=门") + private Long deptId; + + /** 园区名称 */ +// @Excel(name = "园区名称") + private String deptName; + + /** 权限标识(用户) */ +// @Excel(name = "权限标识", readConverterExp = "用=户") + private Long userId; + + /** + * 查询子集 + */ + private String monitorSubset; + /** + * 日期类型 + */ + private String dateType; + + public String getDateType() { + return dateType; + } + + public void setDateType(String dateType) { + this.dateType = dateType; + } + + public String getMonitorSubset() { + return monitorSubset; + } + + public void setMonitorSubset(String monitorSubset) { + this.monitorSubset = monitorSubset; + } + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMonitorId(String monitorId) + { + this.monitorId = monitorId; + } + + public String getMonitorId() + { + return monitorId; + } + public void setMonitorName(String monitorName) + { + this.monitorName = monitorName; + } + + public String getMonitorName() + { + return monitorName; + } + public void setpMonitorId(String pMonitorId) + { + this.pMonitorId = pMonitorId; + } + + public String getpMonitorId() + { + return pMonitorId; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setExpend(BigDecimal expend) + { + this.expend = expend; + } + + public BigDecimal getExpend() + { + return expend; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setPointTime(String pointTime) + { + this.pointTime = pointTime; + } + + public String getPointTime() + { + return pointTime; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setRecordTime(Date recordTime) + { + this.recordTime = recordTime; + } + + public Date getRecordTime() + { + return recordTime; + } + public void setUpdateFlag(Long updateFlag) + { + this.updateFlag = updateFlag; + } + + public Long getUpdateFlag() + { + return updateFlag; + } + public void setMeterValue(BigDecimal meterValue) + { + this.meterValue = meterValue; + } + + public BigDecimal getMeterValue() + { + return meterValue; + } + public void setOperationName(String operationName) + { + this.operationName = operationName; + } + + public String getOperationName() + { + return operationName; + } + public void setOperationTime(Date operationTime) + { + this.operationTime = operationTime; + } + + public Date getOperationTime() + { + return operationTime; + } + public void setCollectType(Long collectType) + { + this.collectType = collectType; + } + + public Long getCollectType() + { + return collectType; + } + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("monitorId", getMonitorId()) + .append("monitorName", getMonitorName()) + .append("pMonitorId", getpMonitorId()) + .append("address", getAddress()) + .append("expend", getExpend()) + .append("price", getPrice()) + .append("pointTime", getPointTime()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .append("recordTime", getRecordTime()) + .append("updateFlag", getUpdateFlag()) + .append("meterValue", getMeterValue()) + .append("operationName", getOperationName()) + .append("operationTime", getOperationTime()) + .append("collectType", getCollectType()) + .append("deptId", getDeptId()) + .append("deptName", getDeptName()) + .append("userId", getUserId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointDnbMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointDnbMapper.java new file mode 100644 index 000000000..fbe07d346 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointDnbMapper.java @@ -0,0 +1,80 @@ +package com.op.energy.report.mapper; + + +import com.op.energy.report.domain.ReportPointDnb; +import com.op.energy.report.domain.ReportPointDnbDTO; + +import java.util.List; +import java.util.Map; + +/** + * 电整点数据Mapper接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface ReportPointDnbMapper +{ + /** + * 查询电整点数据 + * + * @param objid 电整点数据主键 + * @return 电整点数据 + */ + public ReportPointDnb selectReportPointDnbByObjid(Long objid); + + /** + * 查询电整点数据列表 + * + * @param reportPointDnb 电整点数据 + * @return 电整点数据集合 + */ + public List selectReportPointDnbList(ReportPointDnb reportPointDnb); + + /** + * 新增电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + public int insertReportPointDnb(ReportPointDnb reportPointDnb); + + /** + * 修改电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + public int updateReportPointDnb(ReportPointDnb reportPointDnb); + + /** + * 删除电整点数据 + * + * @param objid 电整点数据主键 + * @return 结果 + */ + public int deleteReportPointDnbByObjid(Long objid); + + /** + * 批量删除电整点数据 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteReportPointDnbByObjids(String[] objids); + + + List> energyConsumptionReportByTime(Map map); + + + List> energyConsumptionAnalysisDetails(Map map); + + List datePointDnbList(ReportPointDnb reportPointDnb); + + /** + * 能耗统计返回数据 + * @param map + * @return + */ + List> energyStatisticsData(Map map); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointWaterMapper.java b/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointWaterMapper.java new file mode 100644 index 000000000..f2a58c801 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/mapper/ReportPointWaterMapper.java @@ -0,0 +1,84 @@ +package com.op.energy.report.mapper; + + + +import com.op.energy.report.domain.ReportPointWater; +import com.op.energy.report.domain.ReportPointWaterDTO; + +import java.util.List; +import java.util.Map; + +/** + * 水整点数据Mapper接口 + * + * @author YinQ + * @date 2023-04-09 + */ +public interface ReportPointWaterMapper +{ + /** + * 查询水整点数据 + * + * @param objid 水整点数据主键 + * @return 水整点数据 + */ + public ReportPointWater selectReportPointWaterByObjid(Long objid); + + /** + * 查询水整点数据列表 + * + * @param reportPointWater 水整点数据 + * @return 水整点数据集合 + */ + public List selectReportPointWaterList(ReportPointWater reportPointWater); + + /** + * 新增水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + public int insertReportPointWater(ReportPointWater reportPointWater); + + /** + * 修改水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + public int updateReportPointWater(ReportPointWater reportPointWater); + + /** + * 删除水整点数据 + * + * @param objid 水整点数据主键 + * @return 结果 + */ + public int deleteReportPointWaterByObjid(Long objid); + + /** + * 批量删除水整点数据 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteReportPointWaterByObjids(String[] objids); + + List> energyConsumptionReportByTime(Map map); + + /** + * 线损分析详情页面返回数据 + * @param map + * @return + */ + List> energyConsumptionAnalysisDetails(Map map); + + List datePointWaterList(ReportPointWater reportPointWater); + + /** + * 能耗统计返回数据 + * @param paramMap + * @return + */ + List> energyStatisticsData(Map paramMap); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IBoardService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IBoardService.java new file mode 100644 index 000000000..ba00eadc4 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IBoardService.java @@ -0,0 +1,54 @@ +package com.op.energy.report.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * 能源分析Service接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface IBoardService { + + /** + * 表具信息 + * + * @param paramMap + * @return + */ + Map tablewareInfo(Map paramMap); + + + /** + * 园区首页概览 + * + * @param paramMap + * @return + */ + Map parkHomepageOverview(Map paramMap); + + /** + * 30天分项业态占比图 + * + * @param paramMap + * @return + */ + Map categoryBusinessChart(Map paramMap); + + /** + * 接入园区、设备数量 + * @param paramMap + * @return + */ + Map parkEquipmentNumber(Map paramMap); + + + /** + * 各园区能耗排名 + * @param paramMap + * @return + */ + ArrayList> parkEnergyRanking(Map paramMap); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IDataAnalysisService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IDataAnalysisService.java new file mode 100644 index 000000000..ba15b387b --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IDataAnalysisService.java @@ -0,0 +1,107 @@ +package com.op.energy.report.service; + +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.report.domain.ExportReport; + +import java.util.List; +import java.util.Map; + +/** + * 能源分析Service接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface IDataAnalysisService { + + + /** + * 环比分析返回数据 + * + * @param paramMap + * @return + */ + Map energyMomAnalysisData(Map paramMap); + + + /** + * 同比分析返回数据 + * + * @param paramMap + * @return + */ + Map energyYoyAnalysisData(Map paramMap); + + /** + * 线损分析返回数据 + * + * @param + * @return + */ + List> lineLossAnalysisData(BaseLineLoss baseLineLoss); + + /** + * 线损分析详情页面返回数据 + * + * @param baseLineLoss + * @return + */ + List> lineLossAnalysisDetailsData(BaseLineLoss baseLineLoss); + + /** + * 线损分析详情页面图表 + * + * @param baseLineLoss + * @return + */ + Map lineLossAnalysisDetailsCharts(BaseLineLoss baseLineLoss); + + /** + * 预览看板折线 + * + * @param paramMap + * @return + */ + Map previewPolyline(Map paramMap); + + /** + * 线损排名 + * + * @param paramMap + * @return + */ + Map lineLossRanking(Map paramMap); + + /** + * 预览看板线损折线 + * + * @param paramMap + * @return + */ + Map previewLineLossLine(Map paramMap); + + public List> energyConsumptionByTime(Map paramMap); + + /** + * 能耗统计返回数据 + * + * @param paramMap + * @return + */ + List> energyStatisticsData(Map paramMap); + + /** + * 定时任务用:线损分析返回数据 + * + * @param + * @return + */ + List> lineLossAnalysisDataTimedTasks(BaseLineLoss baseLineLoss); + + /** + * 层级导出报表 + * @param paramMap + * @return + */ + List classificationExportReport(Map paramMap); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEmsApiService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEmsApiService.java new file mode 100644 index 000000000..bde2d6471 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEmsApiService.java @@ -0,0 +1,47 @@ +package com.op.energy.report.service; + + +import com.op.common.core.domain.R; +import com.op.energy.base.domain.vo.CbsMonitorReportVo; +import com.op.energy.report.domain.EmsApiVo; + +import java.util.List; + +/** + * EMS与SF业态Service接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface IEmsApiService { + + + /** + * cbs获取抄表数据 + * @param emsApiVo + * @return + */ + List getMeterReadingData(EmsApiVo emsApiVo); + + + /** + * CBS获取抄表数据定时任务 + * @return + */ + R meterReadingDataTimingTask(); + + + /** + * cbs获取抄表数据返回接口 + * @param emsApiVo + * @return + */ + List getMeterReadingDataInterface(EmsApiVo emsApiVo); + + /** + * 增删改cbs设备信息 + * @param emsApiVo + * @return + */ + String modifyDeviceInformation(EmsApiVo emsApiVo); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEnergyPreviewService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEnergyPreviewService.java new file mode 100644 index 000000000..ab3d90b1a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IEnergyPreviewService.java @@ -0,0 +1,80 @@ +package com.op.energy.report.service; + +import java.util.List; +import java.util.Map; + +/** + * 能源分析Service接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface IEnergyPreviewService { + + + /** + * 电能源预览返回数据 + * + * @param map + * @return + */ + List> indexDataReport(Map map, Long energyType); + + /** + * 首页能耗曲线图 + * + * @param paramMap + * @return + */ + Map indexBarChart(Map paramMap); + + + /** + * 首页今日、本周、当月、当年耗量 + * + * @param paramMap + * @return + */ + Map fourEnergy(Map paramMap); + + /** + * 首页建筑、业态、分项饼图 + * + * @param paramMap + * @return + */ + Map threePieChart(Map paramMap); + + /** + * 首页建筑、业态、分项柱图 + * + * @param paramMap + * @return + */ + Map columnarChart(Map paramMap); + + + /** + * 点抄数据柱状图 + * + * @param paramMap + * @return + */ + Map dnbCountingData(Map paramMap); + + /** + * 能耗排名 + * + * @param paramMap + * @return + */ + Map energyRanking(Map paramMap); + + /** + * 查询能源耗量 + * + * @param paramMap + * @return + */ + public List> energyConsumptionByTime(Map paramMap); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointDnbService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointDnbService.java new file mode 100644 index 000000000..f7808c6e6 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointDnbService.java @@ -0,0 +1,70 @@ +package com.op.energy.report.service; + +import com.op.energy.report.domain.ReportPointDnb; +import com.op.energy.report.domain.ReportPointDnbDTO; + +import java.util.List; + +/** + * 电整点数据Service接口 + * + * @author YinQ + * @date 2023-04-05 + */ +public interface IReportPointDnbService +{ + /** + * 查询电整点数据 + * + * @param objid 电整点数据主键 + * @return 电整点数据 + */ + public ReportPointDnb selectReportPointDnbByObjid(Long objid); + + /** + * 查询电整点数据列表 + * + * @param reportPointDnb 电整点数据 + * @return 电整点数据集合 + */ + public List selectReportPointDnbList(ReportPointDnb reportPointDnb); + + /** + * 新增电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + public int insertReportPointDnb(ReportPointDnb reportPointDnb); + + /** + * 修改电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + public int updateReportPointDnb(ReportPointDnb reportPointDnb); + + /** + * 批量删除电整点数据 + * + * @param objids 需要删除的电整点数据主键集合 + * @return 结果 + */ + public int deleteReportPointDnbByObjids(String objids); + + /** + * 删除电整点数据信息 + * + * @param objid 电整点数据主键 + * @return 结果 + */ + public int deleteReportPointDnbByObjid(Long objid); + + /** + * 日月年电数据List + * @param reportPointDnb + * @return + */ + List datePointDnbList(ReportPointDnb reportPointDnb); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointWaterService.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointWaterService.java new file mode 100644 index 000000000..e0812734e --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/IReportPointWaterService.java @@ -0,0 +1,71 @@ +package com.op.energy.report.service; + + +import com.op.energy.report.domain.ReportPointWater; +import com.op.energy.report.domain.ReportPointWaterDTO; + +import java.util.List; + +/** + * 水整点数据Service接口 + * + * @author YinQ + * @date 2023-04-09 + */ +public interface IReportPointWaterService +{ + /** + * 查询水整点数据 + * + * @param objid 水整点数据主键 + * @return 水整点数据 + */ + public ReportPointWater selectReportPointWaterByObjid(Long objid); + + /** + * 查询水整点数据列表 + * + * @param reportPointWater 水整点数据 + * @return 水整点数据集合 + */ + public List selectReportPointWaterList(ReportPointWater reportPointWater); + + /** + * 新增水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + public int insertReportPointWater(ReportPointWater reportPointWater); + + /** + * 修改水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + public int updateReportPointWater(ReportPointWater reportPointWater); + + /** + * 批量删除水整点数据 + * + * @param objids 需要删除的水整点数据主键集合 + * @return 结果 + */ + public int deleteReportPointWaterByObjids(String objids); + + /** + * 删除水整点数据信息 + * + * @param objid 水整点数据主键 + * @return 结果 + */ + public int deleteReportPointWaterByObjid(Long objid); + + /** + * 日月年电数据List + * @param reportPointWater + * @return + */ + List datePointWaterList(ReportPointWater reportPointWater); +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/BoardServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/BoardServiceImpl.java new file mode 100644 index 000000000..4a5118db3 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/BoardServiceImpl.java @@ -0,0 +1,349 @@ +package com.op.energy.report.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.energy.base.domain.BaseCollectDeviceInfo; +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.domain.SysDatasource; +import com.op.energy.base.mapper.BaseCollectDeviceInfoMapper; +import com.op.energy.base.mapper.BaseLineMonitorMapper; +import com.op.energy.base.mapper.BaseTypeRelationMapper; +import com.op.energy.base.service.IBaseLineMonitorService; +import com.op.energy.base.service.ISysDatasourceService; +import com.op.energy.base.utils.DateUtils; +import com.op.energy.base.utils.sortReportUitls; +import com.op.energy.record.domain.RecordDnbInstant; +import com.op.energy.record.domain.RecordWaterInstant; +import com.op.energy.record.mapper.RecordDnbInstantMapper; +import com.op.energy.record.mapper.RecordWaterInstantMapper; +import com.op.energy.report.service.IBoardService; +import com.op.energy.report.service.IDataAnalysisService; +import com.op.energy.report.service.IEnergyPreviewService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.op.energy.base.service.impl.BaseLineMonitorServiceImpl.getNextLevelLineMonitorList; + + +/** + * 看板Service业务层处理 + * + * @author YinQ + * @date 2023-04-09 + */ +@Service +public class BoardServiceImpl implements IBoardService { + + protected Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + @Autowired + private RecordDnbInstantMapper recordDnbInstantMapper; + + @Autowired + private RecordWaterInstantMapper recordWaterInstantMapper; + + @Autowired + private BaseLineMonitorMapper baseLineMonitorMapper; + + @Autowired + private IDataAnalysisService dataAnalysisService; + + @Autowired + private IBaseLineMonitorService baseLineMonitorService; + + @Autowired + private ISysDatasourceService datasourceService; + + @Autowired + private BaseCollectDeviceInfoMapper collectDeviceInfoMapper; + + @Autowired + private IEnergyPreviewService energyPreviewService; + + /** + * 表具信息 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map tablewareInfo(Map paramMap) { + HashMap result = new HashMap<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); + Long relationId; + if (String.valueOf(paramMap.get("relationId")).equals("")){ + relationId = null; + }else { + relationId = Long.valueOf(String.valueOf(paramMap.get("relationId"))); + } + BaseTypeRelation typeRelation = new BaseTypeRelation(); + typeRelation.setType(0L); + typeRelation.setRelationId(relationId); + typeRelation.setMonitorType(energyType); + List typeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(typeRelation); + if (typeRelations.size() == 0){ + return result; + } + List monitorIdList = typeRelations.stream().map(BaseTypeRelation::getMonitorId).collect(Collectors.toList()); + HashMap params = new HashMap<>(); + +// params.put("beginCollectTime",String.valueOf(paramMap.get("beginCollectTime"))); +// params.put("endCollectTime",String.valueOf(paramMap.get("endCollectTime"))); + ArrayList> energyList = new ArrayList<>(); + //查询有子集的父级设备List + BaseLineMonitor baseLineMonitor = new BaseLineMonitor(); + baseLineMonitor.setMonitorType(energyType); + List baseLineMonitorList = baseLineMonitorService.selectBaseLineMonitorList(baseLineMonitor); + List baseLineMonitors = baseLineMonitorService.selectMonitorSubsetList(baseLineMonitor); + List monitorIdParentList = baseLineMonitors.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + + if (energyType == 2) { + RecordDnbInstant recordDnbInstant = new RecordDnbInstant(); + params.put("monitorIdList",monitorIdList); + recordDnbInstant.setParams(params); + List recordDnbInstants = recordDnbInstantMapper.instantList(recordDnbInstant); + for (RecordDnbInstant dnbInstant : recordDnbInstants) { + HashMap map = new HashMap<>(); + map.put("monitorId",dnbInstant.getMonitorId()); + map.put("monitorName",dnbInstant.getMonitorName()); + map.put("consumption",dnbInstant.getConsumption()); + map.put("onlineState",dnbInstant.getOnlineState()); + ArrayList> childEnergyList = new ArrayList<>(); + if (monitorIdParentList.contains(dnbInstant.getMonitorId())){ + List nextLevelLineMonitorList = getNextLevelLineMonitorList(baseLineMonitorList, dnbInstant.getMonitorId()); + List monitorIdChildList = nextLevelLineMonitorList.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + params.put("monitorIdList",monitorIdChildList); + recordDnbInstant.setParams(params); + List recordDnbInstantList = recordDnbInstantMapper.instantList(recordDnbInstant); + for (RecordDnbInstant instant : recordDnbInstantList) { + HashMap instantMap = new HashMap<>(); + instantMap.put("monitorId",instant.getMonitorId()); + instantMap.put("monitorName",instant.getMonitorName()); + instantMap.put("consumption",instant.getConsumption()); + instantMap.put("onlineState",instant.getOnlineState()); + childEnergyList.add(instantMap); + } + map.put("childMap",childEnergyList); + }else { + map.put("childMap",childEnergyList); + } + energyList.add(map); + } + } else if (energyType == 3) { + RecordWaterInstant recordWaterInstant = new RecordWaterInstant(); + params.put("monitorIdList",monitorIdList); + recordWaterInstant.setParams(params); + List recordWaterInstants = recordWaterInstantMapper.instantList(recordWaterInstant); + for (RecordWaterInstant waterInstant : recordWaterInstants) { + HashMap map = new HashMap<>(); + map.put("monitorId",waterInstant.getMonitorId()); + map.put("monitorName",waterInstant.getMonitorName()); + map.put("consumption",waterInstant.getConsumption()); + map.put("onlineState",waterInstant.getOnlineState()); + ArrayList> childEnergyList = new ArrayList<>(); + if (monitorIdParentList.contains(waterInstant.getMonitorId())){ + List nextLevelLineMonitorList = getNextLevelLineMonitorList(baseLineMonitorList, waterInstant.getMonitorId()); + List monitorIdChildList = nextLevelLineMonitorList.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + params.put("monitorIdList",monitorIdChildList); + recordWaterInstant.setParams(params); + List recordWaterInstantList = recordWaterInstantMapper.instantList(recordWaterInstant); + for (RecordWaterInstant waterInstant1 : recordWaterInstantList) { + HashMap instantMap = new HashMap<>(); + instantMap.put("monitorId",waterInstant1.getMonitorId()); + instantMap.put("monitorName",waterInstant1.getMonitorName()); + instantMap.put("consumption",waterInstant1.getConsumption()); + instantMap.put("onlineState",waterInstant1.getOnlineState()); + childEnergyList.add(instantMap); + } + map.put("childMap",childEnergyList); + }else { + map.put("childMap",childEnergyList); + } + energyList.add(map); + } + } + result.put("energyList",energyList); + return result; + } + + /** + * 园区首页概览 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map parkHomepageOverview(Map paramMap) { + HashMap result = new HashMap<>(); + ArrayList monitorIdList = new ArrayList<>(); + List baseLineMonitors = baseLineMonitorMapper.selectBaseLineMonitorList(new BaseLineMonitor()); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + paramMap.put("timeSub", 0); + //电计算 + List lineDnbMonitorList = getNextLevelLineMonitorList(baseLineMonitors, "S01_00001"); + List dnbMonitorList = lineDnbMonitorList.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + monitorIdList.addAll(dnbMonitorList); + paramMap.put("energyType", 2); + BigDecimal monthDnbConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + BigDecimal yearDnbConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("yearStart"), startAndEndTime.get("yearEnd")); + result.put("monthDnbConsumption", monthDnbConsumption); + result.put("yearDnbConsumption", yearDnbConsumption); + //月环比 + BigDecimal lastMonthDnbConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastMonthStart"), startAndEndTime.get("lastMonthEnd")); + BigDecimal dnbMoM = sortReportUitls.calculateMoMYoY(monthDnbConsumption, lastMonthDnbConsumption, 2); + result.put("dnbMonthMoM", dnbMoM); + //月同比 + BigDecimal lastYearMonthDnbConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastYearMonthStart"), startAndEndTime.get("lastYearMonthEnd")); + BigDecimal dnbYoY = sortReportUitls.calculateMoMYoY(monthDnbConsumption, lastYearMonthDnbConsumption, 2); + result.put("dnbMonthYoY", dnbYoY); + //年同比 + BigDecimal lastYearDnbConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastYearStart"), startAndEndTime.get("lastYearEnd")); + BigDecimal dnbYearYoY = sortReportUitls.calculateMoMYoY(monthDnbConsumption, lastYearDnbConsumption, 2); + result.put("dnbYearYoY", dnbYearYoY); + result.put("dnbYearMoM", dnbYearYoY); + + //水计算 + List lineWaterMonitorList = getNextLevelLineMonitorList(baseLineMonitors, "S02_00001"); + List waterMonitorList = lineWaterMonitorList.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + monitorIdList.addAll(waterMonitorList); + paramMap.put("energyType", 3); + BigDecimal monthWaterConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + BigDecimal yearWaterConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("yearStart"), startAndEndTime.get("yearEnd")); + result.put("monthWaterConsumption", monthWaterConsumption); + result.put("yearWaterConsumption", yearWaterConsumption); + //月环比 + BigDecimal lastMonthWaterConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastMonthStart"), startAndEndTime.get("lastMonthEnd")); + BigDecimal waterMonthMoM = sortReportUitls.calculateMoMYoY(monthWaterConsumption, lastMonthWaterConsumption, 2); + result.put("waterMonthMoM", waterMonthMoM); + //月同比 + BigDecimal lastYearMonthWaterConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastYearMonthStart"), startAndEndTime.get("lastYearMonthEnd")); + BigDecimal waterMonthYoY = sortReportUitls.calculateMoMYoY(monthWaterConsumption, lastYearMonthWaterConsumption, 2); + result.put("waterMonthYoY", waterMonthYoY); + //年同比 + BigDecimal lastYearWaterConsumption = parkConsumption(paramMap, monitorIdList, startAndEndTime.get("lastYearStart"), startAndEndTime.get("lastYearEnd")); + BigDecimal waterYearYoY = sortReportUitls.calculateMoMYoY(yearWaterConsumption, lastYearWaterConsumption, 2); + result.put("waterYearYoY", waterYearYoY); + result.put("waterYearMoM", waterYearYoY); + return result; + } + + /** + * 30天分项业态占比图 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map categoryBusinessChart(Map paramMap) { + return null; + } + + + private BigDecimal parkConsumption(Map paramMap, ArrayList monitorIdList, String startDate, String endDate) { + List> energyList; + paramMap.put("monitorIdList", monitorIdList); + paramMap.put("startTime", startDate); + paramMap.put("endTime", endDate); + energyList = dataAnalysisService.energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + String expend = String.valueOf(energyList.get(0).get("expend")); + return new BigDecimal(expend); + } else { + return new BigDecimal("0.00"); + } + } + + /** + * 接入园区、设备数量 + * @param paramMap + * @return + */ + @Override + @DS("master") + public Map parkEquipmentNumber(Map paramMap) { + HashMap result = new HashMap<>(); + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + try{ + int parkNumber = dateSources.size(); + int equipmentNumber = 0; + for (SysDatasource dateSource : dateSources) { + DynamicDataSourceContextHolder.push(dateSource.getPoolName());// 这是数据源的key + List baseCollectDeviceInfos = collectDeviceInfoMapper.selectBaseCollectDeviceInfoList(new BaseCollectDeviceInfo()); + equipmentNumber += baseCollectDeviceInfos.size(); + } + result.put("parkNumber", parkNumber); + result.put("equipmentNumber", equipmentNumber); + }catch (Exception e){ + logger.error("service == parkEquipmentNumber == exception:" + e.getMessage()); + } + return result; + } + + /** + * 各园区能耗排名 + * @param paramMap + * @return + */ + @Override + @DS("master") + public ArrayList>parkEnergyRanking(Map paramMap) { + ArrayList> result = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + ArrayList monitorIdList = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorType(Long.parseLong(String.valueOf(paramMap.get("energyType")))); + relation.setType(0L); + relation.setRelationId(1L); + try{ + List> energyList = new ArrayList<>(); + for (SysDatasource dateSource : dateSources) { + DynamicDataSourceContextHolder.push(dateSource.getPoolName());// 这是数据源的key + HashMap resultMap = new HashMap<>(); + resultMap.put("poolName",dateSource.getPoolName()); + resultMap.put("parkName",dateSource.getParkName()); + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(relation); + for (BaseTypeRelation baseTypeRelation : baseTypeRelations) { + monitorIdList.add(baseTypeRelation.getMonitorId()); + } + paramMap.put("monitorIdList", monitorIdList); + paramMap.put("timeSub", 0); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + paramMap.put("startTime", startAndEndTime.get("yearStart")); + paramMap.put("endTime", startAndEndTime.get("yearEnd")); + energyList = energyPreviewService.energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + resultMap.put("yearEnergy", energyList.get(0).get("expend")); + } else { + resultMap.put("yearEnergy", 0.00); + } + result.add(resultMap); + } + }catch (Exception e){ + logger.error("service == parkEnergyRanking == exception:" + e.getMessage()); + } + return result; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java new file mode 100644 index 000000000..a2b6c7a89 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java @@ -0,0 +1,1008 @@ +package com.op.energy.report.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.StringUtils; +import com.op.energy.base.domain.BaseLineLoss; +import com.op.energy.base.domain.BaseLineMonitor; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.mapper.BaseLineLossMapper; +import com.op.energy.base.mapper.BaseLineMonitorMapper; +import com.op.energy.base.mapper.BaseMonitorInfoMapper; +import com.op.energy.base.mapper.BaseTypeRelationMapper; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.base.utils.DateUtils; +import com.op.energy.base.utils.sortReportUitls; +import com.op.energy.report.domain.ExportReport; +import com.op.energy.report.domain.ReportPointDnb; +import com.op.energy.report.domain.ReportPointWater; +import com.op.energy.report.mapper.ReportPointDnbMapper; +import com.op.energy.report.mapper.ReportPointWaterMapper; +import com.op.energy.report.service.IDataAnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import static com.op.energy.base.service.impl.BaseLineMonitorServiceImpl.getLowestLevelLineMonitorList; + + +/** + * 水整点数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-09 + */ +@Service +public class DataAnalysisServiceImpl implements IDataAnalysisService { + @Autowired + private ReportPointWaterMapper reportPointWaterMapper; + + @Autowired + private ReportPointDnbMapper reportPointDnbMapper; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + @Autowired + private BaseLineLossMapper baseLineLossMapper; + + @Autowired + private BaseMonitorInfoMapper baseMonitorInfoMapper; + + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + @Autowired + private BaseLineMonitorMapper baseLineMonitorMapper; + + + /** + * 环比分析返回数据 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map energyMomAnalysisData(Map paramMap) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + List timeList = new ArrayList<>(); + List monitorIdLists = new ArrayList<>(); + LinkedHashMap> monitorInfoMap = new LinkedHashMap<>(); + if (!paramMap.containsKey("type") || !paramMap.containsKey("energyType") || + String.valueOf(paramMap.get("startTime")).equals("") || String.valueOf(paramMap.get("endTime")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + //小时 天 月 年 + String type = String.valueOf(paramMap.get("type")); + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + List monitorInfoList = baseMonitorInfoService.selectBaseMonitorInfoList(monitorInfo); + monitorInfo.setMonitorType(Long.parseLong(energyType)); + if (paramMap.containsKey("monitorIds")) { + String monitorIds = String.valueOf(paramMap.get("monitorIds")); + if (monitorIds.contains(",")) { + String[] ids = String.valueOf(paramMap.get("monitorIds")).split(","); + monitorIdLists.addAll(Arrays.asList(ids)); + } else { + if (!monitorIds.equals("")) { + monitorIdLists.add(monitorIds); + } + } + } + + switch (type) { + case "month": + timeList = DateUtils.getSortedMonthList(DateUtils.getDatesBetween(String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime"))), type); + break; + case "year": + timeList = DateUtils.getSortedMonthList(DateUtils.getDatesBetween(String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime"))), type); + break; + case "hour": + timeList = DateUtils.getHourlyIntervals(String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime"))); + break; + case "day": + timeList = DateUtils.getDatesBetween(String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime"))); + break; + } + List> lists = new ArrayList<>(); + for (String monitorId : monitorIdLists) { + List monitorValueList = new ArrayList<>(); + List monitorNameList = monitorInfoList.stream().filter(e -> e.getMonitorId().equals(monitorId)) + .map(BaseMonitorInfo::getMonitorName).collect(Collectors.toList()); + + if (energyType.equals("2")) { + ReportPointDnb pointDnb = new ReportPointDnb(); + pointDnb.setMonitorId(monitorId); + pointDnb.setParams(paramMap); + List pointDnbList = reportPointDnbMapper.selectReportPointDnbList(pointDnb); + for (ReportPointDnb reportPointDnb : pointDnbList) { + Map map = new HashMap<>(); + map.put("recordTime", DateUtils.parseDateToStr("yyyy-MM-dd HH", reportPointDnb.getBeginTime())); + map.put("expend", reportPointDnb.getExpend().toString()); + energyList.add(map); + } + } else if (energyType.equals("3")) { + ReportPointWater reportPointWater = new ReportPointWater(); + reportPointWater.setMonitorId(monitorId); + reportPointWater.setParams(paramMap); + List reportPointWaters = reportPointWaterMapper.selectReportPointWaterList(reportPointWater); + for (ReportPointWater pointWater : reportPointWaters) { + Map map = new HashMap<>(); + map.put("recordTime", DateUtils.parseDateToStr("yyyy-MM-dd HH", pointWater.getBeginTime())); + map.put("expend", pointWater.getExpend().toString()); + energyList.add(map); + } + } + // List levelAmmeter = getNextLevelAmmeter(monitorInfoList, monitorId); +// paramMap.put("monitorId", monitorId); +// if (levelAmmeter.size() != 0 && energyList.size() == 0) { +// List monitorIdList = levelAmmeter.stream().filter(e -> e.getMonitorStatus() != 1) +// .map(BaseMonitorInfo::getMonitorId).collect(Collectors.toList()); +// paramMap.put("monitorIdList", monitorIdList); +// energyList = ammeterTreeMapper.energyConsumptionCurveHour(paramMap); +// } + timeList.forEach(date -> { + float expend = 0.00f; + for (Map map : energyList) { + String recordTime = String.valueOf(map.get("recordTime")); + if (type.equals("month")) { + recordTime = recordTime.substring(0, 7); + } else if (type.equals("year")) { + recordTime = recordTime.substring(0, 4); + } else if (type.equals("hour")) { + date = date.substring(0, 13); + } else if (type.equals("day")) { + recordTime = recordTime.substring(0, 10); + } + if (date.equals(recordTime)) { + expend += Float.parseFloat(String.valueOf(map.get("expend"))); + } + } + BigDecimal decimal = new BigDecimal(Float.toString(expend)); + decimal = decimal.setScale(2, RoundingMode.HALF_UP); + monitorValueList.add(decimal.floatValue()); + }); + if (monitorNameList.size() != 0) { + monitorInfoMap.put(monitorNameList.get(0), monitorValueList); + } + lists.add(monitorValueList); + } + if (lists.size() != 0) { + List sumLineList = IntStream.range(0, lists.get(0).size()) + .mapToObj(i -> lists.stream() + .map(list -> list.get(i)) + .reduce(0f, Float::sum)) + .map(f -> Math.round(f * 100.0) / 100.0f) + .collect(Collectors.toList()); + result.put("sumLineList", sumLineList); + } + List monitorNameList = new ArrayList<>(); + for (String monitorName : monitorInfoMap.keySet()) { + monitorNameList.add(monitorName); + } + result.put("monitorNameList", monitorNameList); + result.put("timeList", timeList); + result.put("monitorInfoMap", monitorInfoMap); + return result; + } + + + public List energyTimeListData(String energyType, String type, String monitorId, String startTime, String endTime) { + List monitorValueList = new ArrayList<>(); + List timeList = new ArrayList<>(); + switch (type) { + case "month": + case "year": + timeList = DateUtils.getSortedMonthList(DateUtils.getDatesBetween(startTime, endTime), type); + break; + case "hour": + timeList = DateUtils.getHourlyIntervals(startTime, endTime); + break; + case "day": + timeList = DateUtils.getDatesBetween(startTime, endTime); + break; + } + List> energyList = new ArrayList<>(); + Map params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + if (energyType.equals("2")) { + ReportPointDnb pointDnb = new ReportPointDnb(); + pointDnb.setMonitorId(monitorId); + pointDnb.setParams(params); + List pointDnbList = reportPointDnbMapper.selectReportPointDnbList(pointDnb); + for (ReportPointDnb reportPointDnb : pointDnbList) { + Map map = new HashMap<>(); + map.put("recordTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", reportPointDnb.getBeginTime())); + map.put("expend", reportPointDnb.getExpend().toString()); + energyList.add(map); + } + } else if (energyType.equals("3")) { + ReportPointWater reportPointWater = new ReportPointWater(); + reportPointWater.setMonitorId(monitorId); + reportPointWater.setParams(params); + List reportPointWaters = reportPointWaterMapper.selectReportPointWaterList(reportPointWater); + for (ReportPointWater pointWater : reportPointWaters) { + Map map = new HashMap<>(); + map.put("recordTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", pointWater.getBeginTime())); + map.put("expend", pointWater.getExpend().toString()); + energyList.add(map); + } + } + timeList.forEach(date -> { + float expend = 0.00f; + for (Map map : energyList) { + String recordTime = String.valueOf(map.get("recordTime")); + switch (type) { + case "month": + recordTime = recordTime.substring(0, 7); + break; + case "year": + recordTime = recordTime.substring(0, 4); + break; + case "hour": + date = date.substring(0, 13); + recordTime = recordTime.substring(0, 13); + break; + case "day": + recordTime = recordTime.substring(0, 10); + break; + } + if (date.equals(recordTime)) { + expend += Float.parseFloat(String.valueOf(map.get("expend"))); + } + } + BigDecimal decimal = new BigDecimal(Float.toString(expend)); + decimal = decimal.setScale(2, RoundingMode.HALF_UP); + monitorValueList.add(decimal.floatValue()); + }); + return monitorValueList; + } + + /** + * 同比分析返回数据 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map energyYoyAnalysisData(Map paramMap) { + HashMap result = new HashMap<>(); + if (!paramMap.containsKey("type") || !paramMap.containsKey("energyType") || + String.valueOf(paramMap.get("startTime")).equals("") || String.valueOf(paramMap.get("endTime")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + //小时 天 月 年 + String type = String.valueOf(paramMap.get("type")); + String monitorId = String.valueOf(paramMap.get("monitorId")); + List nowList = this.energyTimeListData(energyType, type, monitorId, String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime"))); + List lastList = this.energyTimeListData(energyType, type, monitorId, DateUtils.getLastYearMonthDayTime(String.valueOf(paramMap.get("startTime"))), + DateUtils.getLastYearMonthDayTime(String.valueOf(paramMap.get("endTime")))); + result.put("今年", nowList); + result.put("去年", lastList); + result.put("timeList", DateUtils.getTimeList(String.valueOf(paramMap.get("startTime")), String.valueOf(paramMap.get("endTime")), type)); + return result; + } + + /** + * 线损分析返回数据 + * + * @param baseLineLoss + * @return + */ + @Override + @DS("#header.poolName") + public List> lineLossAnalysisData(BaseLineLoss baseLineLoss) { + List> result = new ArrayList<>(); + Long monitorType = baseLineLoss.getMonitorType(); + if (baseLineLoss.getParams().get("beginCollectTime").equals("") || baseLineLoss.getParams().get("beginCollectTime").equals("endCollectTime")) { + return result; + } + Map baseLineLossParams = baseLineLoss.getParams(); + HashMap params = new HashMap<>(); + baseLineLoss.setParams(params); + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(baseLineLoss); + try { + List lineMonitorList = baseLineMonitorMapper.selectBaseLineMonitorList(new BaseLineMonitor()); + for (BaseLineLoss lineLoss : baseLineLosses) { + HashMap hashMap = new HashMap<>(); + List> energyConsumptionList = new ArrayList<>(); + hashMap.put("lineLossId", lineLoss.getLineLossId()); + hashMap.put("lineLossName", lineLoss.getLineLossName()); + hashMap.put("monitorType", String.valueOf(monitorType)); + String monitorId = lineLoss.getMonitorId(); + String monitorName = lineLoss.getMonitorName(); + BaseLineMonitor monitorInfo = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorId); + //多路线损 + List monitorIdMultiwayList = Arrays.asList(monitorId.split("[|]")); + List monitorNameMultiwayList = Arrays.asList(monitorName.split("[|]")); + if (StringUtils.isNull(monitorInfo) && monitorIdMultiwayList.size() == 1) { + continue; + } + hashMap.put("monitorId", String.join("|", monitorIdMultiwayList)); + hashMap.put("monitorName", String.join("|", monitorNameMultiwayList)); + HashSet monitorIdSet = new HashSet<>(); +// for (String monitorIdSingle : monitorIdMultiwayList) { +// List baseMonitorInfos = getLowestLevelLineMonitorList(lineMonitorList, monitorIdSingle); +// Set monitorIdList = baseMonitorInfos.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toSet()); +// monitorIdSet.addAll(monitorIdList); +// } + for (String monitorIdSingle : monitorIdMultiwayList) { + BaseLineMonitor baseLineMonitor = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorIdSingle); + BaseLineMonitor lineMonitor = new BaseLineMonitor(); + lineMonitor.setParentId(baseLineMonitor.getObjid()); + List baseLineMonitors = baseLineMonitorMapper.selectBaseLineMonitorList(lineMonitor); + Set monitorIdList = baseLineMonitors.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toSet()); + monitorIdSet.addAll(monitorIdList); + } + HashMap map = new HashMap<>(); + map.put("monitorIdList", new ArrayList<>(monitorIdSet)); + map.put("startTime", baseLineLossParams.get("beginCollectTime")); + map.put("endTime", baseLineLossParams.get("endCollectTime")); + BigDecimal inputUsage = new BigDecimal(0); + BigDecimal outputUsage = new BigDecimal(0); + BigDecimal lossUsage = new BigDecimal(0); + if (monitorType == 2L) { + ReportPointDnb pointDnb = new ReportPointDnb(); + baseLineLossParams.put("monitorIdList", monitorIdMultiwayList); + pointDnb.setParams(baseLineLossParams); + List pointDnbList = reportPointDnbMapper.selectReportPointDnbList(pointDnb); + inputUsage = pointDnbList.stream() + .map(ReportPointDnb::getExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("inputUsage", inputUsage.toPlainString()); + energyConsumptionList = reportPointDnbMapper.energyConsumptionReportByTime(map); + + } else if (monitorType == 3L) { + ReportPointWater pointWater = new ReportPointWater(); + baseLineLossParams.put("monitorIdList", monitorIdMultiwayList); + pointWater.setParams(baseLineLossParams); + List pointWaters = reportPointWaterMapper.selectReportPointWaterList(pointWater); + inputUsage = pointWaters.stream() + .map(ReportPointWater::getExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("inputUsage", inputUsage.toPlainString()); + energyConsumptionList = reportPointWaterMapper.energyConsumptionReportByTime(map); + } + if (energyConsumptionList.size() != 0) { + outputUsage = energyConsumptionList.stream() + .map(m -> String.valueOf(m.get("expend"))) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("outputUsage", outputUsage.toPlainString()); + }else { + hashMap.put("outputUsage", "0"); + } + if (inputUsage.compareTo(outputUsage) > 0){ + lossUsage = inputUsage.subtract(outputUsage); + } + BigDecimal lossRate = divideRate(lossUsage, inputUsage); + hashMap.put("lossUsage", lossUsage.toPlainString()); + hashMap.put("lossRate", lossRate.toPlainString() + "%"); + result.add(hashMap); + } + } catch (Exception e) { + System.out.println("线损分析返回数据异常:" + e.getMessage()); + } + return result; + } + + public static BigDecimal divideRate(BigDecimal dividend, BigDecimal divisor) { + if (divisor.compareTo(BigDecimal.ZERO) == 0) { + // 如果除数为0,则返回0 + return BigDecimal.ZERO; + } + return dividend.divide(divisor, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + + + /** + * 线损分析详情页面返回数据 + * + * @param baseLineLoss + * @return + */ + @Override + @DS("#header.poolName") + public List> lineLossAnalysisDetailsData(BaseLineLoss baseLineLoss) { + List> result = new ArrayList<>(); + String monitorId = baseLineLoss.getMonitorId(); + Long monitorType = baseLineLoss.getMonitorType(); + BaseLineMonitor baseLineM = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorId); + if (StringUtils.isNull(baseLineM) && !monitorId.contains(",")) { + return result; + } + List> energyConsumptionList = new ArrayList<>(); + List lineMonitorList = baseLineMonitorMapper.selectBaseLineMonitorList(new BaseLineMonitor()); + + //多路线损 + List monitorIdMultiwayList = Arrays.asList(monitorId.split(",")); + HashSet monitorIdSet = new HashSet<>(); + for (String monitorIdSingle : monitorIdMultiwayList) { +// List baseMonitorInfos = getLowestLevelLineMonitorList(lineMonitorList, monitorIdSingle); +// Set monitorIdList = baseMonitorInfos.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toSet()); +// monitorIdSet.addAll(monitorIdList); + BaseLineMonitor baseLineMonitor = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorIdSingle); + BaseLineMonitor lineMonitor = new BaseLineMonitor(); + lineMonitor.setParentId(baseLineMonitor.getObjid()); + List baseLineMonitors = baseLineMonitorMapper.selectBaseLineMonitorList(lineMonitor); + Set monitorIdList = baseLineMonitors.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toSet()); + monitorIdSet.addAll(monitorIdList); + } + HashMap map = new HashMap<>(); + map.put("monitorIdList", new ArrayList<>(monitorIdSet)); + map.put("startTime", baseLineLoss.getParams().get("beginCollectTime")); + map.put("endTime", baseLineLoss.getParams().get("endCollectTime")); + if (monitorType == 2L) { + energyConsumptionList = reportPointDnbMapper.energyConsumptionAnalysisDetails(map); + } else if (monitorType == 3L) { + energyConsumptionList = reportPointWaterMapper.energyConsumptionAnalysisDetails(map); + } + return energyConsumptionList; + } + + /** + * 线损分析详情页面图表 + * + * @param baseLineLoss + * @return + */ + @Override + @DS("#header.poolName") + public Map lineLossAnalysisDetailsCharts(BaseLineLoss baseLineLoss) { + Map result = new HashMap<>(); + String monitorId = baseLineLoss.getMonitorId(); + Long monitorType = baseLineLoss.getMonitorType(); + BaseMonitorInfo monitorInfo = baseMonitorInfoMapper.selectBaseMonitorInfoByMonitorId(monitorId); + if (StringUtils.isNull(monitorInfo) || StringUtils.isEmpty(String.valueOf(baseLineLoss.getParams().get("beginCollectTime"))) + || StringUtils.isEmpty(String.valueOf(baseLineLoss.getParams().get("endCollectTime")))) { + return result; + } + BaseMonitorInfo baseMonitorInfo = new BaseMonitorInfo(); + List> energyConsumptionList = new ArrayList<>(); + baseMonitorInfo.setParentId(monitorInfo.getObjid()); + List baseMonitorInfos = baseMonitorInfoMapper.selectBaseMonitorInfoList(baseMonitorInfo); + List monitorIdList = baseMonitorInfos.stream().map(BaseMonitorInfo::getMonitorId).collect(Collectors.toList()); + HashMap map = new HashMap<>(); + String beginCollectTime = String.valueOf(baseLineLoss.getParams().get("beginCollectTime")); + String endCollectTime = String.valueOf(baseLineLoss.getParams().get("endCollectTime")); + map.put("monitorIdList", monitorIdList); + map.put("startTime", beginCollectTime); + map.put("endTime", endCollectTime); + if (monitorType == 2L) { + energyConsumptionList = reportPointDnbMapper.energyConsumptionAnalysisDetails(map); + } else if (monitorType == 3L) { + energyConsumptionList = reportPointWaterMapper.energyConsumptionAnalysisDetails(map); + } + Map monitorNameMap = energyConsumptionList.stream().collect(Collectors.groupingBy(e -> String.valueOf(e.get("monitorName")), + Collectors.reducing(BigDecimal.ZERO, x -> new BigDecimal(String.valueOf(x.get("expend"))), BigDecimal::add))); + ArrayList> pieChart = new ArrayList<>(); + for (String monitorName : monitorNameMap.keySet()) { + HashMap hashMap = new HashMap<>(); + hashMap.put("name", monitorName); + hashMap.put("value", monitorNameMap.get(monitorName)); + pieChart.add(hashMap); + } + result.put("pieChart", pieChart); + List timeList = new ArrayList<>(); + timeList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + List monitorValueList = new ArrayList<>(); + List> finalEnergyConsumptionList = energyConsumptionList; + timeList.forEach(date -> { + float expend = 0.00f; + for (Map energy : finalEnergyConsumptionList) { + date = date.substring(0, 13); + String recordTime = String.valueOf(energy.get("pointTime")); + if (date.equals(recordTime)) { + expend += Float.parseFloat(String.valueOf(energy.get("expend"))); + } + } + BigDecimal decimal = new BigDecimal(Float.toString(expend)); + decimal = decimal.setScale(2, RoundingMode.HALF_UP); + monitorValueList.add(decimal.floatValue()); + }); + result.put("lineChartDate", timeList); + result.put("lineChartValue", monitorValueList); + return result; + } + + + /** + * 预览看板折线 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map previewPolyline(Map paramMap) { + HashMap result = new HashMap<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); + Long type; + Long relationId; + if (String.valueOf(paramMap.get("type")).equals("")) { + type = null; + } else { + type = Long.valueOf(String.valueOf(paramMap.get("type"))); + } + if (String.valueOf(paramMap.get("relationId")).equals("")) { + relationId = null; + } else { + relationId = Long.valueOf(String.valueOf(paramMap.get("relationId"))); + } + String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); + String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); + HashMap hashMap = this.energyConsumptionList(type, relationId, energyType, beginCollectTime, endCollectTime); + result.put("energyDateList", hashMap.get("energyDateList")); + result.put("todayValueList", hashMap.get("energyValueList")); + result.put("sumEnergyValue", hashMap.get("sumEnergyValue")); + HashMap yesterdayMap = this.energyConsumptionList(type, relationId, energyType, DateUtils.getYesterday(beginCollectTime), DateUtils.getYesterday(endCollectTime)); + result.put("yesterdayList", yesterdayMap.get("energyValueList")); + HashMap lastYearMap = this.energyConsumptionList(type, relationId, energyType, DateUtils.getLastYear(beginCollectTime), DateUtils.getLastYear(endCollectTime)); + result.put("lastYearList", lastYearMap.get("energyValueList")); + return result; + } + + /** + * 线损排名 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map lineLossRanking(Map paramMap) { + HashMap result = new HashMap<>(); + ArrayList nameList = new ArrayList<>(); + ArrayList valueList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); + Long type; + if (String.valueOf(paramMap.get("type")).equals("")) { + type = null; + } else { + type = Long.valueOf(String.valueOf(paramMap.get("type"))); + } + String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); + String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); + BaseLineLoss baseLineLoss = new BaseLineLoss(); + baseLineLoss.setMonitorType(energyType); + HashMap hashMap = new HashMap<>(); + hashMap.put("beginCollectTime", beginCollectTime); + hashMap.put("endCollectTime", endCollectTime); +// List monitorIdList = monitorIdListByUnitName(type, energyType); +// List lossMonitorIdList = new ArrayList<>(); + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(baseLineLoss); +// monitorIdList.forEach(monitorId -> { +// for (BaseLineLoss lineLoss : baseLineLosses) { +// if (lineLoss.getMonitorId().equals(monitorId)){ +// lossMonitorIdList.add(monitorId); +// } +// } +// }); + for (BaseLineLoss lineLoss : baseLineLosses) { + baseLineLoss.setMonitorId(lineLoss.getMonitorId()); + baseLineLoss.setParams(hashMap); + List> maps = this.lineLossAnalysisData(baseLineLoss); + if (maps.size() > 0) { + nameList.add(maps.get(0).get("lineLossName")); + valueList.add(Float.valueOf(maps.get(0).get("lossUsage"))); + } + } + sortReportUitls.sortArrayList(nameList, valueList); + result.put("nameList", nameList); + result.put("valueList", valueList); + return result; + } + + /** + * 查询能源耗量 + * + * @param paramMap + * @return + */ + public List> energyConsumptionByTime(Map paramMap) { +// paramMap.put("startTime", paramMap.get("todayStart")); +// paramMap.put("endTime", paramMap.get("todayEnd")); +// paramMap.put("timeSub", 0); + List> energyList = new ArrayList<>(); + String energyType = String.valueOf(paramMap.get("energyType")); + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyConsumptionReportByTime(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyConsumptionReportByTime(paramMap); + } + return energyList; + } + + + /** + * 能耗统计返回数据 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public List> energyStatisticsData(Map paramMap) { + List> energyList = new ArrayList<>(); + String energyType = String.valueOf(paramMap.get("energyType")); + if (!String.valueOf(paramMap.get("monitorIdList")).equals("")) { + String[] monitorIdLists = String.valueOf(paramMap.get("monitorIdList")).split(","); + List list = new ArrayList<>(Arrays.asList(monitorIdLists)); + paramMap.put("monitorIdList", list); + } else { + paramMap.remove("monitorIdList"); + } + try { + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyStatisticsData(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyStatisticsData(paramMap); + } +// Map sumMap = new HashMap<>(); +// if (energyList.size() > 0){ +// sumMap.put("monitorName","合计:"); +// BigDecimal expend = new BigDecimal("0.00"); +// for (Map stringStringMap : energyList) { +// expend = expend.add(new BigDecimal(String.valueOf(stringStringMap.get("expend")))); +// sumMap.put("timeRange", String.valueOf(stringStringMap.get("timeRange"))); +// } +// sumMap.put("expend", expend.toPlainString()); +// energyList.add(sumMap); +// } + } catch (Exception e) { + System.out.println("能耗统计返回数据:" + e.getMessage()); + } + return energyList; + } + + @Override + public List> lineLossAnalysisDataTimedTasks(BaseLineLoss baseLineLoss) { + List> result = new ArrayList<>(); + Long monitorType = baseLineLoss.getMonitorType(); + if (baseLineLoss.getParams().get("beginCollectTime").equals("") || baseLineLoss.getParams().get("beginCollectTime").equals("endCollectTime")) { + return result; + } + Map baseLineLossParams = baseLineLoss.getParams(); + HashMap params = new HashMap<>(); + baseLineLoss.setParams(params); + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(baseLineLoss); + try { + for (BaseLineLoss lineLoss : baseLineLosses) { + HashMap hashMap = new HashMap<>(); + List> energyConsumptionList = new ArrayList<>(); + hashMap.put("lineLossId", lineLoss.getLineLossId()); + hashMap.put("lineLossName", lineLoss.getLineLossName()); + hashMap.put("monitorType", String.valueOf(monitorType)); + String monitorId = lineLoss.getMonitorId(); + String monitorName = lineLoss.getMonitorName(); + BaseLineMonitor monitorInfo = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorId); + //多路线损 + List monitorIdMultiwayList = Arrays.asList(monitorId.split("[|]")); + List monitorNameMultiwayList = Arrays.asList(monitorName.split("[|]")); + if (StringUtils.isNull(monitorInfo) && monitorIdMultiwayList.size() == 1) { + continue; + } + hashMap.put("monitorId", String.join("|", monitorIdMultiwayList)); + hashMap.put("monitorName", String.join("|", monitorNameMultiwayList)); + HashSet monitorIdSet = new HashSet<>(); + for (String monitorIdSingle : monitorIdMultiwayList) { + BaseLineMonitor baseLineMonitor = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(monitorIdSingle); + BaseLineMonitor lineMonitor = new BaseLineMonitor(); + lineMonitor.setParentId(baseLineMonitor.getObjid()); + List baseLineMonitors = baseLineMonitorMapper.selectBaseLineMonitorList(lineMonitor); + Set monitorIdList = baseLineMonitors.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toSet()); + monitorIdSet.addAll(monitorIdList); + } + HashMap map = new HashMap<>(); + map.put("monitorIdList", new ArrayList<>(monitorIdSet)); + map.put("startTime", baseLineLossParams.get("beginCollectTime")); + map.put("endTime", baseLineLossParams.get("endCollectTime")); + BigDecimal inputUsage = new BigDecimal(0); + BigDecimal outputUsage = new BigDecimal(0); + BigDecimal lossUsage = new BigDecimal(0); + if (monitorType == 2L) { + ReportPointDnb pointDnb = new ReportPointDnb(); + baseLineLossParams.put("monitorIdList", monitorIdMultiwayList); + pointDnb.setParams(baseLineLossParams); + List pointDnbList = reportPointDnbMapper.selectReportPointDnbList(pointDnb); + inputUsage = pointDnbList.stream() + .map(ReportPointDnb::getExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("inputUsage", inputUsage.toPlainString()); + energyConsumptionList = reportPointDnbMapper.energyConsumptionReportByTime(map); + + } else if (monitorType == 3L) { + ReportPointWater pointWater = new ReportPointWater(); + baseLineLossParams.put("monitorIdList", monitorIdMultiwayList); + pointWater.setParams(baseLineLossParams); + List pointWaters = reportPointWaterMapper.selectReportPointWaterList(pointWater); + inputUsage = pointWaters.stream() + .map(ReportPointWater::getExpend) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("inputUsage", inputUsage.toPlainString()); + energyConsumptionList = reportPointWaterMapper.energyConsumptionReportByTime(map); + } + if (energyConsumptionList.size() != 0) { + outputUsage = energyConsumptionList.stream() + .map(m -> String.valueOf(m.get("expend"))) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + hashMap.put("outputUsage", outputUsage.toPlainString()); + }else { + hashMap.put("outputUsage", "0"); + } + if (inputUsage.compareTo(outputUsage) > 0){ + lossUsage = inputUsage.subtract(outputUsage); + } + BigDecimal lossRate = divideRate(lossUsage, inputUsage); + hashMap.put("lossUsage", lossUsage.toPlainString()); + hashMap.put("lossRate", lossRate.toPlainString()); + result.add(hashMap); + } + } catch (Exception e) { + System.out.println("线损分析返回数据异常:" + e.getMessage()); + } + return result; + } + + /** + * 预览看板线损折线 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map previewLineLossLine(Map paramMap) { + HashMap result = new HashMap<>(); + ArrayList nameList = new ArrayList<>(); + ArrayList lossValueList = new ArrayList<>(); + ArrayList childrenValueList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); + Long type; + Long relationId; + if (String.valueOf(paramMap.get("type")).equals("")){ + type = null; + }else { + type = Long.valueOf(String.valueOf(paramMap.get("type"))); + } + if (String.valueOf(paramMap.get("relationId")).equals("")){ + relationId = null; + }else { + relationId = Long.valueOf(String.valueOf(paramMap.get("relationId"))); + } + String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); + String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); + List dateList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + BaseLineLoss baseLineLoss = new BaseLineLoss(); + baseLineLoss.setMonitorType(energyType); + List baseLineLosses = baseLineLossMapper.selectBaseLineLossList(baseLineLoss); + List monitorIdUnitList = monitorIdListByUnitName(type, relationId, energyType); + //过滤统计单元匹配baseLineLosses + baseLineLosses = baseLineLosses.stream() .filter(b -> monitorIdUnitList.contains(b.getMonitorId())) + .collect(Collectors.toList()); + //线损MonitorIdList + List lossMonitorIdList = baseLineLosses.stream().map(BaseLineLoss::getMonitorId).collect(Collectors.toList()); + //线损子集MonitorIdList + List childrenMonitorIdList = new ArrayList<>(); + for (BaseLineLoss lineLoss : baseLineLosses) { + BaseLineMonitor monitorInfo = baseLineMonitorMapper.selectBaseLineMonitorByMonitorId(lineLoss.getMonitorId()); + if (StringUtils.isNull(monitorInfo)) { + continue; + } + List lineMonitorList = baseLineMonitorMapper.selectBaseLineMonitorList(new BaseLineMonitor()); + List baseMonitorInfos = getLowestLevelLineMonitorList(lineMonitorList, monitorInfo.getMonitorId()); + List monitorIdList = baseMonitorInfos.stream().map(BaseLineMonitor::getMonitorId).collect(Collectors.toList()); + childrenMonitorIdList.addAll(monitorIdList); + } + + childrenMonitorIdList = childrenMonitorIdList.stream().distinct().collect(Collectors.toList()); + paramMap.put("timeSub", 10); + paramMap.put("startTime", beginCollectTime); + paramMap.put("endTime", endCollectTime); + paramMap.put("monitorIdList", lossMonitorIdList); + List> lossEnergyList = energyConsumptionByTime(paramMap); + paramMap.put("monitorIdList", childrenMonitorIdList); + List> childrenEnergyList = energyConsumptionByTime(paramMap); + dateList.forEach(date -> { + boolean lossFlag = true; + boolean childrenFlag = true; + date = date.substring(0, 10); + for (Map map : lossEnergyList) { + if (date.equals(String.valueOf(map.get("pointTime")))) { + lossFlag = false; + lossValueList.add(Float.parseFloat(String.valueOf(map.get("expend")))); + break; + } + } + if (lossFlag) { + lossValueList.add(0.00f); + } + for (Map map : childrenEnergyList) { + if (date.equals(String.valueOf(map.get("pointTime")))) { + childrenFlag = false; + childrenValueList.add(Float.parseFloat(String.valueOf(map.get("expend")))); + break; + } + } + if (childrenFlag) { + childrenValueList.add(0.00f); + } + }); + List valueList = IntStream.range(0, lossValueList.size()) + .mapToObj(i -> Math.max(lossValueList.get(i) - childrenValueList.get(i), 0f)) + .map(value -> Float.parseFloat(new DecimalFormat("#.##").format(value))) + .collect(Collectors.toList()); + result.put("nameList", dateList); + result.put("valueList", valueList); + float lossSum = valueList.stream().reduce(0.0f, Float::sum); + result.put("lossSum", Math.round(lossSum)); + return result; + } + + /** + * 根据统计名获取monitorIdList + * + * @param type + * @param energyType + * @return + */ + public List monitorIdListByUnitName(Long type, Long relationId, Long energyType) { + List monitorIdList = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + //0-建筑 1-业态 2-分项 + relation.setMonitorType(energyType); + relation.setType(type); + relation.setRelationId(relationId); + try { + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(relation); + monitorIdList = baseTypeRelations.stream().map(BaseTypeRelation::getMonitorId).collect(Collectors.toList()); + } catch (Exception e) { + System.out.println("根据统计名获取monitorIdList异常:" + e.getMessage()); + } + return monitorIdList; + } + + HashMap energyConsumptionList(Long type, Long relationId, Long energyType, String beginCollectTime, String endCollectTime) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + List dateList = new ArrayList<>(); + List valueList = new ArrayList<>(); + dateList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + HashMap paramMap = new HashMap<>(); + List monitorIdList = monitorIdListByUnitName(type, relationId, energyType); + paramMap.put("monitorIdList", monitorIdList); + paramMap.put("timeSub", 10); + paramMap.put("startDay", beginCollectTime.substring(0, 10)); + paramMap.put("endDay", endCollectTime.substring(0, 10)); + if (energyType == 2) { + energyList = reportPointDnbMapper.energyConsumptionReportByTime(paramMap); + } else if (energyType == 3) { + energyList = reportPointWaterMapper.energyConsumptionReportByTime(paramMap); + } + List> finalEnergyList = energyList; + List resDateList = new ArrayList<>(); + AtomicReference sumEnergy = new AtomicReference<>(0.00f); + dateList.forEach(date -> { + boolean flag = true; + date = date.substring(0, 10); + resDateList.add(date); + for (Map map : finalEnergyList) { + if (date.equals(String.valueOf(map.get("pointTime")))) { + flag = false; + valueList.add(Float.parseFloat(String.valueOf(map.get("expend")))); + sumEnergy.updateAndGet(v -> v + Float.parseFloat(String.valueOf(map.get("expend")))); + break; + } + } + if (flag) { + valueList.add(0.00f); + } + }); + result.put("energyDateList", resDateList); + result.put("energyValueList", valueList); + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + result.put("sumEnergyValue", decimalFormat.format(sumEnergy.get()).toString()); + return result; + } + + /** + * 层级导出报表 + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public List classificationExportReport(Map paramMap) { + List> energyList = new ArrayList<>(); + String energyType = String.valueOf(paramMap.get("energyType")); + try { + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyStatisticsData(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyStatisticsData(paramMap); + } + } catch (Exception e) { + System.out.println("层级导出报表异常数据:" + e.getMessage()); + } + List exportReportList = baseLineMonitorMapper.selectLevelLineMonitor(Long.parseLong(energyType)); + for (Map map : energyList) { + if (!map.containsKey("grade")){ + continue; + } + String timeRange = String.valueOf(map.get("timeRange")); + String monitorId = String.valueOf(map.get("monitorId")); + String monitorName = String.valueOf(map.get("monitorName")); + BigDecimal expend = new BigDecimal(String.valueOf(map.get("expend"))); + int grade = Integer.parseInt(String.valueOf(map.get("grade"))); + generateExportReport(exportReportList, grade, timeRange, monitorId, monitorName, expend); + } + return exportReportList; + } + + private List generateExportReport(List exportReportList, int grade, String timeRange, String monitorId, String monitorName, BigDecimal expend) { + switch (grade){ + case 1: + for (ExportReport report : exportReportList) { + if (monitorId.equals(report.getOneMonitorId())){ + report.setTimeRange(timeRange); + report.setOneExpend(expend); + } + } + break; + case 2: + for (ExportReport report : exportReportList) { + if (monitorId.equals(report.getTwoMonitorId())){ + report.setTwoExpend(expend); + } + } + break; + case 3: + for (ExportReport report : exportReportList) { + if (monitorId.equals(report.getThreeMonitorId())){ + report.setThreeExpend(expend); + } + } + break; + case 4: + for (ExportReport report : exportReportList) { + if (monitorId.equals(report.getFourMonitorId())){ + report.setFourExpend(expend); + } + } + break; + case 5: + for (ExportReport report : exportReportList) { + if (monitorId.equals(report.getFiveMonitorId())){ + report.setFiveExpend(expend); + } + } + break; + default: + break; + } + return exportReportList; + } + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EmsAPIServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EmsAPIServiceImpl.java new file mode 100644 index 000000000..15002b29a --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EmsAPIServiceImpl.java @@ -0,0 +1,295 @@ +package com.op.energy.report.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.domain.R; +import com.op.common.core.exception.ServiceException; +import com.op.common.core.exception.base.BaseException; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.CbsMonitorReport; +import com.op.energy.base.domain.SysDatasource; +import com.op.energy.base.domain.vo.CbsMonitorReportVo; +import com.op.energy.base.mapper.BaseMonitorInfo1Mapper; +import com.op.energy.base.mapper.CbsMonitorReportMapper; +import com.op.energy.base.service.ISysDatasourceService; +import com.op.energy.report.domain.EmsApiVo; +import com.op.energy.report.service.IEmsApiService; +import com.op.system.api.model.LoginUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.stream.Collectors; + + +/** + * EMS与SF业态Service业务层处理 + * + * @author YinQ + * @date 2023-04-09 + */ +@Service +public class EmsAPIServiceImpl implements IEmsApiService { + + protected Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private ISysDatasourceService datasourceService; + + @Autowired + private CbsMonitorReportMapper cbsMonitorReportMapper; + + @Autowired + private BaseMonitorInfo1Mapper monitorInfo1Mapper; + + /** + * cbs获取抄表数据 + * + * @param emsApiVo + * @return + */ + @Override + public List getMeterReadingData(EmsApiVo emsApiVo) { + ArrayList monitorReportVoArrayList = new ArrayList<>(); + //抄表时间(时间为空则默认当前时间 + if (StringUtils.isEmpty(emsApiVo.getMeterReadingTime())) { + emsApiVo.setMeterReadingTime(DateUtils.getTime()); + } + String poolName = null; + if (StringUtils.isNotEmpty(emsApiVo.getParkCode())) { + // 加载sf-cloud库的sys_datasource + SysDatasource datasource = datasourceService.selectSysDatasourceByCbsParkCode(emsApiVo.getParkCode()); + poolName = datasource.getPoolName(); + } else { + LoginUser loginUser = SecurityUtils.getLoginUser(); + poolName = loginUser.getPoolName(); + } + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + // 多房间抄表, roomCode逗号分割 + if (StringUtils.isNotEmpty(emsApiVo.getRoomCode())) { + CbsMonitorReport monitorReport = new CbsMonitorReport(); + monitorReport.setRoomCode(emsApiVo.getRoomCode()); + List cbsMonitorReports = cbsMonitorReportMapper.selectCbsMonitorReportList(monitorReport); + List monitorIdList = cbsMonitorReports.stream().map(CbsMonitorReport::getMonitorId).collect(Collectors.toList()); + emsApiVo.setMonitorIdList(monitorIdList); + } + + try { + //获取水电实时数据 + List cbsMonitorReportList = this.getRealTimeData(emsApiVo); + Date nowDate = DateUtils.getNowDate(); + for (CbsMonitorReport cbsMonitorReport : cbsMonitorReportList) { + //查询上次抄表数据 + CbsMonitorReport lastTimeCbsMonitorReport = cbsMonitorReportMapper.selectLastTimeCbsMonitorReport(cbsMonitorReport); + if (StringUtils.isNull(lastTimeCbsMonitorReport)) { + cbsMonitorReport.setLastFlag("1"); + } else { + cbsMonitorReport.setLastMonitorTime(lastTimeCbsMonitorReport.getThisMonitorTime()); + if (StringUtils.isNull(lastTimeCbsMonitorReport.getThisMonitorExpend())) { + cbsMonitorReport.setLastFlag("1"); + } else { + cbsMonitorReport.setLastFlag("0"); + cbsMonitorReport.setLastMonitorExpend(lastTimeCbsMonitorReport.getThisMonitorExpend()); + } + } + cbsMonitorReport.setCreateTime(nowDate); + cbsMonitorReportMapper.insertCbsMonitorReport(cbsMonitorReport); + } + logger.info("service == getMeterReadingData == Info:" + emsApiVo + cbsMonitorReportList); + + for (CbsMonitorReport reportOne : cbsMonitorReportList) { + CbsMonitorReportVo cbsMonitorReportVo = new CbsMonitorReportVo(); + cbsMonitorReportVo.setRoomCode(reportOne.getRoomCode()); + cbsMonitorReportVo.setRoomName(reportOne.getRoomName()); + cbsMonitorReportVo.setPhysicalCode(reportOne.getPhysicalCode()); + cbsMonitorReportVo.setLoadingPosition(reportOne.getLoadingPosition()); + cbsMonitorReportVo.setMonitorType(reportOne.getMonitorType().equals("2") ? "电表" : "水表"); + if (reportOne.getPublicShareType().equals("0")){ + cbsMonitorReportVo.setPublicShareType("公共表"); + }else if (reportOne.getPublicShareType().equals("1")){ + cbsMonitorReportVo.setPublicShareType("单元表"); + }else { + cbsMonitorReportVo.setPublicShareType("无"); + } + cbsMonitorReportVo.setLastMonitorTime(reportOne.getLastMonitorTime()); + cbsMonitorReportVo.setLastMonitorExpend(reportOne.getLastMonitorExpend()); + cbsMonitorReportVo.setThisMonitorTime(reportOne.getThisMonitorTime()); + cbsMonitorReportVo.setThisMonitorExpend(reportOne.getThisMonitorExpend()); + monitorReportVoArrayList.add(cbsMonitorReportVo); + } + return monitorReportVoArrayList; + } catch (Exception e) { + logger.error("service == getMeterReadingData == exception:", e); + throw new BaseException("service == getMeterReadingData == exception:" + e); + } + } + + /** + * 获取水电实时数据 + * + * @param emsApiVo + * @return + */ + @DS("#header.poolName") + private List getRealTimeData(EmsApiVo emsApiVo) { + return cbsMonitorReportMapper.selectRealTimeMonitorList(emsApiVo); + } + + + /** + * CBS获取抄表数据定时任务 + * @return + */ + @Override + public R meterReadingDataTimingTask() { + // 加载sf-cloud库的sys_datasource + List dateSources = datasourceService.selectSysDatasource(); + + ExecutorService executorService = Executors.newFixedThreadPool(dateSources.size()); + try{ + dateSources.forEach(dateSource ->{ + logger.info("++++++++++++"+dateSource.getPoolName() +"++++开始++++++++++"); + EmsApiVo emsApiVo = new EmsApiVo(); + emsApiVo.setPoolName(dateSource.getPoolName()); + Runnable run = () -> getMeterReadingData(emsApiVo); + executorService.execute(run); + }); + }catch (Exception e){ + logger.error("service == dailyConsumptionTimingTask == exception", e); + return R.fail("service == dailyConsumptionTimingTask == exception"); + }finally { + executorService.shutdown(); + } + return R.ok(true); + } + + /** + * + * @param emsApiVo + * @return + */ + @Override + public List getMeterReadingDataInterface(EmsApiVo emsApiVo){ + List monitorReportVoList = this.getMeterReadingData(emsApiVo); + + ArrayList monitorReportVoArrayList = new ArrayList<>(); + + // 使用 Collectors.groupingBy 收集具有相同 roomCode 值的对象 + Map> groupedReports = monitorReportVoList.stream().collect(Collectors.groupingBy(CbsMonitorReportVo::getRoomCode)); + + // String result = null; + try { + for (String roomCode : groupedReports.keySet()) { + CbsMonitorReportVo cbsMonitorReportVo = new CbsMonitorReportVo(); + List cbsMonitorReports = groupedReports.get(roomCode); + BigDecimal thisMonitorExpend = new BigDecimal(0); + BigDecimal lastMonitorExpend = new BigDecimal(0); + CbsMonitorReportVo reportOne = cbsMonitorReports.get(0); + for (CbsMonitorReportVo report : cbsMonitorReports) { + if (StringUtils.isNotNull(report.getThisMonitorExpend())){ + thisMonitorExpend = thisMonitorExpend.add(report.getThisMonitorExpend()); + + } + if (StringUtils.isNotNull(report.getLastMonitorExpend())){ + lastMonitorExpend = lastMonitorExpend.add(report.getLastMonitorExpend()); + } + } + cbsMonitorReportVo.setRoomCode(reportOne.getRoomCode()); + cbsMonitorReportVo.setRoomName(reportOne.getRoomName()); + cbsMonitorReportVo.setPhysicalCode(reportOne.getPhysicalCode()); + cbsMonitorReportVo.setLoadingPosition(reportOne.getLoadingPosition()); + cbsMonitorReportVo.setMonitorType(reportOne.getMonitorType().equals("2") ? "电表" : "水表"); + if (reportOne.getPublicShareType().equals("0")){ + cbsMonitorReportVo.setPublicShareType("公共表"); + }else if (reportOne.getPublicShareType().equals("1")){ + cbsMonitorReportVo.setPublicShareType("单元表"); + }else { + cbsMonitorReportVo.setPublicShareType("无"); + } + cbsMonitorReportVo.setLastMonitorTime(reportOne.getLastMonitorTime()); + cbsMonitorReportVo.setLastMonitorExpend(lastMonitorExpend); + cbsMonitorReportVo.setThisMonitorTime(reportOne.getThisMonitorTime()); + cbsMonitorReportVo.setThisMonitorExpend(thisMonitorExpend); + monitorReportVoArrayList.add(cbsMonitorReportVo); + } +// ObjectMapper objectMapper = new ObjectMapper(); +// 将对象转换为 JSON 字符串 +// result = objectMapper.writeValueAsString(monitorReportVoArrayList); + } catch (Exception e) { + System.out.println(e); + } + + return monitorReportVoArrayList; + } + + /** + * 增删改cbs设备信息 + * @param emsApiVo + * @return + */ + @Override + public String modifyDeviceInformation(EmsApiVo emsApiVo) { + Long modifyType = emsApiVo.getModifyType(); + String physicalCode = emsApiVo.getPhysicalCode(); + + String poolName = null; + if (StringUtils.isNotEmpty(emsApiVo.getParkCode())) { + // 加载sf-cloud库的sys_datasource + SysDatasource datasource = datasourceService.selectSysDatasourceByCbsParkCode(emsApiVo.getParkCode()); + poolName = datasource.getPoolName(); + } else { + LoginUser loginUser = SecurityUtils.getLoginUser(); + poolName = loginUser.getPoolName(); + } + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + + BaseMonitorInfo monitorInfo = new BaseMonitorInfo(); + monitorInfo.setPhysicalCode(physicalCode); + List monitorInfoList = monitorInfo1Mapper.selectBaseMonitorInfoList(monitorInfo); + if (monitorInfoList.size() == 0){ + throw new ServiceException("service == modifyDeviceInformation == exception:该物理编号:" + physicalCode + "能源系统未维护!"); + } + BaseMonitorInfo monitor = monitorInfoList.get(0); + + StringBuilder buffer = new StringBuilder(); + //0-新增 + if (modifyType == 0L){ + monitor.setRoomCode(emsApiVo.getRoomCode()); + monitor.setRoomName(emsApiVo.getRoomName()); + monitorInfo1Mapper.updateBaseMonitorInfo(monitor); + buffer.append("新增CBS设备信息接口|物理编号:").append(physicalCode); + } + + //1-删除 + if (modifyType == 1L){ + monitor.setRoomCode(""); + monitor.setRoomName(""); + monitorInfo1Mapper.updateBaseMonitorInfo(monitor); + buffer.append("删除CBS设备信息接口|物理编号:").append(physicalCode); + } + + //2-修改 + if (modifyType == 2L){ + monitor.setRoomCode(emsApiVo.getRoomCode()); + monitor.setRoomName(emsApiVo.getRoomName()); + monitorInfo1Mapper.updateBaseMonitorInfo(monitor); + buffer.append("修改CBS设备信息接口|物理编号:").append(physicalCode); + } + logger.info("service == modifyDeviceInformation == Info:" + emsApiVo + monitor); + + return buffer.append("|调用成功!").toString(); + } + + +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EnergyPreviewServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EnergyPreviewServiceImpl.java new file mode 100644 index 000000000..d54a68c5c --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/EnergyPreviewServiceImpl.java @@ -0,0 +1,617 @@ +package com.op.energy.report.service.impl; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.energy.base.domain.BaseBuildInfo; +import com.op.energy.base.domain.BaseMonitorInfo; +import com.op.energy.base.domain.BaseTypeRelation; +import com.op.energy.base.mapper.BaseBuildInfoMapper; +import com.op.energy.base.mapper.BaseTypeRelationMapper; +import com.op.energy.base.service.IBaseMonitorInfoService; +import com.op.energy.base.utils.DateUtils; +import com.op.energy.base.utils.sortReportUitls; +import com.op.energy.report.mapper.ReportPointDnbMapper; +import com.op.energy.report.mapper.ReportPointWaterMapper; +import com.op.energy.report.service.IEnergyPreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 水整点数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-09 + */ +@Service +public class EnergyPreviewServiceImpl implements IEnergyPreviewService { + @Autowired + private ReportPointWaterMapper reportPointWaterMapper; + + @Autowired + private ReportPointDnbMapper reportPointDnbMapper; + + @Autowired + private IBaseMonitorInfoService baseMonitorInfoService; + + @Autowired + private BaseTypeRelationMapper baseTypeRelationMapper; + + @Autowired + private BaseBuildInfoMapper baseBuildInfoMapper; + /** + * 电能源预览返回数据 + * + * @param map + * @return + */ + @Override + @DS("#header.poolName") + public List> indexDataReport(Map map, Long energyType) { + List> resultList = new ArrayList<>(); + if (String.valueOf(map.get("startTime")).equals("") || String.valueOf(map.get("endTime")).equals("")) { + return resultList; + } + map.remove("pageSize"); + String unit = String.valueOf(map.get("unit")); + String unitId = String.valueOf(map.get("unitId")); + String type = String.valueOf(map.get("type")); +// String startTime = String.valueOf(map.get("startTime")); +// String endTime = String.valueOf(map.get("endTime")); + try { + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorType(energyType); +// if (!unitId.equals("")){ +// relation.setRelationId(Long.parseLong(unitId)); +// } + switch (unit) { + case "": + relation.setType(0L); + relation.setRelationId(1L); + break; + case "0": + if (!unitId.equals("")){ + BaseBuildInfo buildInfo = new BaseBuildInfo(); + buildInfo.setParentId(Long.parseLong(unitId)); + List baseBuildInfos = baseBuildInfoMapper.selectBaseBuildInfoList(buildInfo); + if (baseBuildInfos.size() > 0){ + List buildList = new ArrayList<>(); + for (BaseBuildInfo baseBuildInfo : baseBuildInfos) { + buildList.add(baseBuildInfo.getObjid()); +// buildInfo.setParentId(baseBuildInfo.getObjid()); +// List baseBuildInfoss = baseBuildInfoMapper.selectBaseBuildInfoList(buildInfo); +// if (baseBuildInfoss.size() > 0){ +// for (BaseBuildInfo buildInfoss : baseBuildInfoss) { +// buildList.add(buildInfoss.getObjid()); +// } +// } + } + relation.setRelationIdList(buildList); + }else { + relation.setRelationId(Long.parseLong(unitId)); + } + } + relation.setType(0L); + break; + case "1": + relation.setType(1L); + break; + case "2": + relation.setType(2L); + break; + } + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(relation); + LinkedHashMap>> typeCollect = + baseTypeRelations.stream() + .collect(Collectors.groupingBy(BaseTypeRelation::getType, + LinkedHashMap::new, + Collectors.groupingBy(BaseTypeRelation::getRelationId, LinkedHashMap::new, Collectors.toList()))); + for (Long unitType : typeCollect.keySet()) { + Map> relationIdListMap = typeCollect.get(unitType); + for (Long relationId : relationIdListMap.keySet()) { + HashMap typeResultMap = new HashMap<>(); + BaseTypeRelation typeRelation = relationIdListMap.get(relationId).get(0); + typeResultMap.put("type", String.valueOf(typeRelation.getType())); + typeResultMap.put("unitName", typeRelation.getUnitName()); + List> energyList = new ArrayList<>(); + //单元内容 + List monitorIdList = relationIdListMap.get(relationId).stream().map(BaseTypeRelation::getMonitorId).collect(Collectors.toList()); + map.put("monitorIdList",monitorIdList); + map.put("timeSub", type.equals("hour") ? 13: type.equals("day") ? 10 : type.equals("month") ? 7 : 4); + if (energyType == 2L){ + energyList = reportPointDnbMapper.energyConsumptionReportByTime(map); + }else if (energyType == 3L){ + energyList = reportPointWaterMapper.energyConsumptionReportByTime(map); + } + if (energyList.size() > 0){ + BigDecimal expendSum = new BigDecimal(0); + for (Map energyMap : energyList) { + typeResultMap.put("expend" + String.valueOf(energyMap.get("pointTime")), String.valueOf(energyMap.get("expend"))); + expendSum = expendSum.add(new BigDecimal(String.valueOf(energyMap.get("expend")))); + } + typeResultMap.put("expendSum", expendSum.toPlainString()); + } + resultList.add(typeResultMap); + } + } +// resultList = resultList.stream() +// .sorted(Comparator.comparing(e -> e.get("expend"))) +// .collect(Collectors.toList()); + } catch (Exception e) { + System.out.println("电能源预览返回数据异常:" + e.getMessage()); + } + return resultList; + } + + /** + * 首页能耗曲线图 + * 请求参数energyType:2、3 + * 请求参数type:hour、day + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map indexBarChart(Map paramMap) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + List dateList = new ArrayList<>(); + List valueList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("") || String.valueOf(paramMap.get("type")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + String type = String.valueOf(paramMap.get("type")); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + if (type.equals("hour")) { + paramMap.put("timeSub", 13); + paramMap.put("startTime", startAndEndTime.get("todayStart")); + paramMap.put("endTime", startAndEndTime.get("todayEnd")); + dateList = DateUtils.getHourlyIntervals(startAndEndTime.get("todayStart"), startAndEndTime.get("todayEnd")); + } else if (type.equals("day")) { + paramMap.put("timeSub", 10); + paramMap.put("startDay", startAndEndTime.get("monthStart").substring(0, 10)); + paramMap.put("endDay", startAndEndTime.get("monthEnd").substring(0, 10)); + dateList = DateUtils.getDatesBetween(startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + } + ArrayList monitorIdList = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorType(Long.parseLong(energyType)); + relation.setType(0L); + relation.setRelationId(1L); + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(relation); + for (BaseTypeRelation baseTypeRelation : baseTypeRelations) { + monitorIdList.add(baseTypeRelation.getMonitorId()); + } + if (energyType.equals("2")) { + paramMap.put("monitorIdList", monitorIdList); + energyList = reportPointDnbMapper.energyConsumptionReportByTime(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyConsumptionReportByTime(paramMap); + } + List> finalEnergyList = energyList; + List resDateList = new ArrayList<>(); + dateList.forEach(date -> { + boolean flag = true; + if (type.equals("hour")) { + resDateList.add(date.substring(11, 13) + "时"); + date = date.substring(0, 13); + } else if (type.equals("day")) { + date = date.substring(0, 10); + resDateList.add(date); + } + for (Map map : finalEnergyList) { + if (date.equals(String.valueOf(map.get("pointTime")))) { + flag = false; + valueList.add(Float.parseFloat(String.valueOf(map.get("expend")))); + break; + } + } + if (flag) { + valueList.add(0.00f); + } + }); + result.put("dateList", resDateList); + result.put("valueList", valueList); + return result; + } + + + /** + * 首页今日、本周、当月、当年耗量 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map fourEnergy(Map paramMap) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + + ArrayList monitorIdList = new ArrayList<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + relation.setMonitorType(Long.parseLong(String.valueOf(paramMap.get("energyType")))); + relation.setType(0L); + relation.setRelationId(1L); + List baseTypeRelations = baseTypeRelationMapper.selectBaseTypeRelationList(relation); + for (BaseTypeRelation baseTypeRelation : baseTypeRelations) { + monitorIdList.add(baseTypeRelation.getMonitorId()); + } + paramMap.put("monitorIdList", monitorIdList); + paramMap.put("timeSub", 0); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + paramMap.put("startTime", startAndEndTime.get("todayStart")); + paramMap.put("endTime", startAndEndTime.get("todayEnd")); + energyList = energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + result.put("todayEnergy", energyList.get(0).get("expend")); + } else { + result.put("todayEnergy", 0.00); + } + paramMap.put("startTime", startAndEndTime.get("weekStart")); + paramMap.put("endTime", startAndEndTime.get("weekEnd")); + energyList = energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + result.put("weekEnergy", energyList.get(0).get("expend")); + } else { + result.put("weekEnergy", 0.00); + } + paramMap.put("startTime", startAndEndTime.get("monthStart")); + paramMap.put("endTime", startAndEndTime.get("monthEnd")); + energyList = energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + result.put("monthEnergy", energyList.get(0).get("expend")); + } else { + result.put("monthEnergy", 0.00); + } + paramMap.put("startTime", startAndEndTime.get("yearStart")); + paramMap.put("endTime", startAndEndTime.get("yearEnd")); + energyList = energyConsumptionByTime(paramMap); + if (energyList.size() > 0) { + result.put("yearEnergy", energyList.get(0).get("expend")); + } else { + result.put("monthEnergy", 0.00); + } + return result; + } + + + /** + * 根据统计名获取monitorIdList + * + * @param type + * @param energyType + * @return + */ + public HashMap> monitorIdListByUnitName(Long type, Long energyType) { + List monitorIdList = new ArrayList<>(); + HashMap> result = new HashMap<>(); + BaseTypeRelation relation = new BaseTypeRelation(); + //0-建筑 1-业态 2-分项 + relation.setMonitorType(energyType); + relation.setType(type); + try { + List baseTypeRelations = baseTypeRelationMapper.selectFirstOrderTypeRelationList(relation); + Map> relationIdMap = + baseTypeRelations.stream().collect(Collectors.groupingBy(BaseTypeRelation::getRelationId)); + for (Long relationId : relationIdMap.keySet()) { + monitorIdList = relationIdMap.get(relationId).stream().map(BaseTypeRelation::getMonitorId).collect(Collectors.toList()); + result.put(relationIdMap.get(relationId).get(0).getUnitName(), monitorIdList); + } + } catch (Exception e) { + System.out.println("根据统计名获取monitorIdList异常:" + e.getMessage()); + } + return result; + } + +// /** +// * 能耗排名 +// * +// * @param paramMap +// * @return +// */ +// @Override +// @DS("#header.poolName") +// public Map energyRanking(Map paramMap) { +// HashMap result = new HashMap<>(); +// ArrayList nameList = new ArrayList<>(); +// ArrayList valueList = new ArrayList<>(); +// if (String.valueOf(paramMap.get("energyType")).equals("")) { +// return result; +// } +// Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); +// Long type; +// if (String.valueOf(paramMap.get("type")).equals("")){ +// type = null; +// }else { +// type = Long.valueOf(String.valueOf(paramMap.get("type"))); +// } +// String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); +// String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); +// HashMap unitMap = monitorValueByMonitorIdList(type, energyType, beginCollectTime, endCollectTime); +// for (String unitIdName : unitMap.keySet()) { +// nameList.add(unitIdName); +// valueList.add(Float.valueOf(unitMap.get(unitIdName))); +// } +// sortReportUitls.sortArrayList(nameList,valueList); +// result.put("nameList", nameList); +// result.put("valueList", valueList); +// return result; +// } + + /** + * 首页monitorValueByMonitorIdList + * + * @param type + * @param energyType + * @return + */ + public HashMap monitorValueByMonitorIdList(Long type, Long energyType, String beginCollectTime, String endCollectTime) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + HashMap> unitNameMap = monitorIdListByUnitName(type, energyType); + for (String unitName : unitNameMap.keySet()) { + HashMap hashMap = new HashMap<>(); + hashMap.put("timeSub", 0); + hashMap.put("energyType", energyType); + hashMap.put("startTime", beginCollectTime); + hashMap.put("endTime", endCollectTime); + hashMap.put("monitorIdList", unitNameMap.get(unitName)); + energyList = energyConsumptionByTime(hashMap); + if (energyList.size() > 0) { + result.put(unitName, String.valueOf(energyList.get(0).get("expend"))); + } else { + result.put(unitName, "0.00"); + } + } + return result; + } + + + /** + * 首页建筑、业态、分项饼图 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map threePieChart(Map paramMap) { + HashMap result = new HashMap<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + ArrayList> build = new ArrayList<>(); + ArrayList> business = new ArrayList<>(); + ArrayList> subentry = new ArrayList<>(); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + try { + HashMap buildMap = monitorValueByMonitorIdList(0L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : buildMap.keySet()) { + HashMap buildNewMap = new HashMap<>(); + buildNewMap.put("name", unitIdName); + buildNewMap.put("value", Float.valueOf(buildMap.get(unitIdName))); + build.add(buildNewMap); + } + HashMap businessMap = monitorValueByMonitorIdList(1L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : businessMap.keySet()) { + HashMap businessNewMap = new HashMap<>(); + businessNewMap.put("name", unitIdName); + businessNewMap.put("value", Float.valueOf(businessMap.get(unitIdName))); + business.add(businessNewMap); + } + HashMap subentryMap = monitorValueByMonitorIdList(2L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : subentryMap.keySet()) { + HashMap subentryNewMap = new HashMap<>(); + subentryNewMap.put("name", unitIdName); + subentryNewMap.put("value", Float.valueOf(subentryMap.get(unitIdName))); + subentry.add(subentryNewMap); + } + } catch (Exception e) { + System.out.println("首页建筑、业态、分项饼图:" + e.getMessage()); + } + + result.put("build", build); + result.put("business", business); + result.put("subentry", subentry); + return result; + } + + /** + * 首页建筑、业态、分项柱图 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map columnarChart(Map paramMap) { + HashMap result = new HashMap<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + ArrayList buildName = new ArrayList<>(); + ArrayList buildValue = new ArrayList<>(); + ArrayList businessName = new ArrayList<>(); + ArrayList businessValue = new ArrayList<>(); + ArrayList subentryName = new ArrayList<>(); + ArrayList subentryValue = new ArrayList<>(); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + HashMap buildMap = monitorValueByMonitorIdList(0L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : buildMap.keySet()) { + buildName.add(unitIdName); + buildValue.add(Float.valueOf(buildMap.get(unitIdName))); + } + HashMap businessMap = monitorValueByMonitorIdList(1L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : businessMap.keySet()) { + businessName.add(unitIdName); + businessValue.add(Float.valueOf(businessMap.get(unitIdName))); + } + HashMap subentryMap = monitorValueByMonitorIdList(2L, Long.valueOf(energyType), startAndEndTime.get("monthStart"), startAndEndTime.get("monthEnd")); + for (String unitIdName : subentryMap.keySet()) { + subentryName.add(unitIdName); + subentryValue.add(Float.valueOf(subentryMap.get(unitIdName))); + } + sortReportUitls.sortArrayList(buildName, buildValue); + sortReportUitls.sortArrayList(businessName, businessValue); + sortReportUitls.sortArrayList(subentryName, subentryValue); + result.put("buildName", buildName); + result.put("buildValue", buildValue); + result.put("businessName", businessName); + result.put("businessValue", businessValue); + result.put("subentryName", subentryName); + result.put("subentryValue", subentryValue); + return result; + } + + + /** + * 点抄数据柱状图 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map dnbCountingData(Map paramMap) { + HashMap result = new HashMap<>(); + List> energyList = new ArrayList<>(); + List dateList = new ArrayList<>(); + List valueList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + String energyType = String.valueOf(paramMap.get("energyType")); + String type = String.valueOf(paramMap.get("type")); + String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); + String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); + Map startAndEndTime = DateUtils.getStartAndEndTime(); + paramMap.put("startDay", beginCollectTime.substring(0, 10)); + paramMap.put("endDay", endCollectTime.substring(0, 10)); + if (!String.valueOf(paramMap.get("monitorSubset")).equals("")) { + List baseMonitorInfos = baseMonitorInfoService.selectChildrenMonitorById(String.valueOf(paramMap.get("monitorSubset"))); + List monitorIdList = baseMonitorInfos.stream().map(BaseMonitorInfo::getMonitorId).collect(Collectors.toList()); + paramMap.put("monitorIdList", monitorIdList); + } + if (type.equals("day")) { + paramMap.put("timeSub", 10); + paramMap.put("startTime", startAndEndTime.get("startDay")); + paramMap.put("endTime", startAndEndTime.get("todayEnd")); + dateList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + } else if (type.equals("month")) { + paramMap.put("timeSub", 7); + dateList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + dateList = DateUtils.getSortedMonthList(dateList, "month"); + } else if (type.equals("year")) { + paramMap.put("timeSub", 4); + dateList = DateUtils.getDatesBetween(beginCollectTime, endCollectTime); + dateList = DateUtils.getSortedMonthList(dateList, "year"); + } else if (type.equals("hour")) { + paramMap.put("timeSub", 13); + dateList = DateUtils.getTimeList(beginCollectTime, endCollectTime, "hour"); + } + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyConsumptionReportByTime(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyConsumptionReportByTime(paramMap); + } + List> finalEnergyList = energyList; + List resDateList = new ArrayList<>(); + dateList.forEach(date -> { + boolean flag = true; + if (type.equals("day")) { + date = date.substring(0, 10); + resDateList.add(date); + } else if (type.equals("month")) { + date = date.substring(0, 7); + resDateList.add(date); + } else if (type.equals("year")) { + date = date.substring(0, 4); + resDateList.add(date); + } else if (type.equals("hour")) { + date = date.substring(0, 13); + resDateList.add(date + "时"); + } + for (Map map : finalEnergyList) { + if (date.equals(String.valueOf(map.get("pointTime")))) { + flag = false; + valueList.add(Float.parseFloat(String.valueOf(map.get("expend")))); + break; + } + } + if (flag) { + valueList.add(0.00f); + } + }); + result.put("dateList", resDateList); + result.put("valueList", valueList); + return result; + } + + + /** + * 查询能源耗量 + * + * @param paramMap + * @return + */ + public List> energyConsumptionByTime(Map paramMap) { +// paramMap.put("startTime", paramMap.get("todayStart")); +// paramMap.put("endTime", paramMap.get("todayEnd")); +// paramMap.put("timeSub", 0); + List> energyList = new ArrayList<>(); + String energyType = String.valueOf(paramMap.get("energyType")); + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyConsumptionReportByTime(paramMap); + } else if (energyType.equals("3")) { + energyList = reportPointWaterMapper.energyConsumptionReportByTime(paramMap); + } + return energyList; + } + + /** + * 能耗排名 + * + * @param paramMap + * @return + */ + @Override + @DS("#header.poolName") + public Map energyRanking(Map paramMap) { + HashMap result = new HashMap<>(); + ArrayList nameList = new ArrayList<>(); + ArrayList valueList = new ArrayList<>(); + if (String.valueOf(paramMap.get("energyType")).equals("")) { + return result; + } + Long energyType = Long.valueOf(String.valueOf(paramMap.get("energyType"))); + Long type; + if (String.valueOf(paramMap.get("type")).equals("")) { + type = null; + } else { + type = Long.valueOf(String.valueOf(paramMap.get("type"))); + } + String beginCollectTime = String.valueOf(paramMap.get("beginCollectTime")); + String endCollectTime = String.valueOf(paramMap.get("endCollectTime")); + HashMap unitMap = monitorValueByMonitorIdList(type, energyType, beginCollectTime, endCollectTime); + for (String unitIdName : unitMap.keySet()) { + nameList.add(unitIdName); + valueList.add(Float.valueOf(unitMap.get(unitIdName))); + } + sortReportUitls.sortArrayList(nameList, valueList); + result.put("nameList", nameList); + result.put("valueList", valueList); + return result; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointDnbServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointDnbServiceImpl.java new file mode 100644 index 000000000..913aa8f99 --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointDnbServiceImpl.java @@ -0,0 +1,139 @@ +package com.op.energy.report.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.energy.base.mapper.BaseMonitorInfoMapper; +import com.op.energy.report.domain.ReportPointDnb; +import com.op.energy.report.domain.ReportPointDnbDTO; +import com.op.energy.report.mapper.ReportPointDnbMapper; +import com.op.energy.report.service.IReportPointDnbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 电整点数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-05 + */ +@Service +public class ReportPointDnbServiceImpl implements IReportPointDnbService { + @Autowired + private ReportPointDnbMapper reportPointDnbMapper; + + @Autowired + private BaseMonitorInfoMapper monitorInfoMapper; + + /** + * 查询电整点数据 + * + * @param objid 电整点数据主键 + * @return 电整点数据 + */ + @Override + @DS("#header.poolName") + public ReportPointDnb selectReportPointDnbByObjid(Long objid) { + return reportPointDnbMapper.selectReportPointDnbByObjid(objid); + } + + /** + * 查询电整点数据列表 + * + * @param reportPointDnb 电整点数据 + * @return 电整点数据 + */ + @Override + @DS("#header.poolName") +// @DataScope(deptAlias = "report_point_dnb") + public List selectReportPointDnbList(ReportPointDnb reportPointDnb) { + return reportPointDnbMapper.selectReportPointDnbList(reportPointDnb); + } + + /** + * 新增电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertReportPointDnb(ReportPointDnb reportPointDnb) { + reportPointDnb.setRecordTime(new Date()); + reportPointDnb.setCollectType(1L); + return reportPointDnbMapper.insertReportPointDnb(reportPointDnb); + } + + /** + * 修改电整点数据 + * + * @param reportPointDnb 电整点数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateReportPointDnb(ReportPointDnb reportPointDnb) { + reportPointDnb.setUpdateTime(DateUtils.getNowDate()); + return reportPointDnbMapper.updateReportPointDnb(reportPointDnb); + } + + /** + * 批量删除电整点数据 + * + * @param objids 需要删除的电整点数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteReportPointDnbByObjids(String objids) { + return reportPointDnbMapper.deleteReportPointDnbByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除电整点数据信息 + * + * @param objid 电整点数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteReportPointDnbByObjid(Long objid) { + return reportPointDnbMapper.deleteReportPointDnbByObjid(objid); + } + + /** + * 日月年电数据List + * + * @param reportPointDnb + * @return + */ + @Override + @DS("#header.poolName") + public List datePointDnbList(ReportPointDnb reportPointDnb) { + Map params = reportPointDnb.getParams(); + List pointDnbList = new ArrayList<>(); +// if (!reportPointDnb.getMonitorSubset().equals("")){ +// params.put("monitorId", reportPointDnb.getMonitorSubset()); +// } +// monitorInfoMapper.selectBaseMonitorInfoByMonitorId() + + if (reportPointDnb.getDateType().equals("day")) { + params.put("timeSub", 10); + } else if (reportPointDnb.getDateType().equals("month")) { + params.put("timeSub", 7); + } else if (reportPointDnb.getDateType().equals("year")) { + params.put("timeSub", 4); + } + try { + pointDnbList = reportPointDnbMapper.datePointDnbList(reportPointDnb); + } catch (Exception e) { + e.printStackTrace(); + } + return pointDnbList; + } +} diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointWaterServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointWaterServiceImpl.java new file mode 100644 index 000000000..5e34417ac --- /dev/null +++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/ReportPointWaterServiceImpl.java @@ -0,0 +1,134 @@ +package com.op.energy.report.service.impl; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.text.Convert; +import com.op.common.core.utils.DateUtils; +import com.op.common.datascope.annotation.DataScope; +import com.op.energy.report.domain.ReportPointWater; +import com.op.energy.report.domain.ReportPointWaterDTO; +import com.op.energy.report.mapper.ReportPointWaterMapper; +import com.op.energy.report.service.IReportPointWaterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 水整点数据Service业务层处理 + * + * @author YinQ + * @date 2023-04-09 + */ +@Service +public class ReportPointWaterServiceImpl implements IReportPointWaterService { + @Autowired + private ReportPointWaterMapper reportPointWaterMapper; + + /** + * 查询水整点数据 + * + * @param objid 水整点数据主键 + * @return 水整点数据 + */ + @Override + @DS("#header.poolName") + public ReportPointWater selectReportPointWaterByObjid(Long objid) { + return reportPointWaterMapper.selectReportPointWaterByObjid(objid); + } + + /** + * 查询水整点数据列表 + * + * @param reportPointWater 水整点数据 + * @return 水整点数据 + */ + @Override + @DS("#header.poolName") + @DataScope(deptAlias = "null") + public List selectReportPointWaterList(ReportPointWater reportPointWater) { + return reportPointWaterMapper.selectReportPointWaterList(reportPointWater); + } + + /** + * 新增水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertReportPointWater(ReportPointWater reportPointWater) { + reportPointWater.setCreateTime(DateUtils.getNowDate()); + return reportPointWaterMapper.insertReportPointWater(reportPointWater); + } + + /** + * 修改水整点数据 + * + * @param reportPointWater 水整点数据 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateReportPointWater(ReportPointWater reportPointWater) { + reportPointWater.setUpdateTime(DateUtils.getNowDate()); + return reportPointWaterMapper.updateReportPointWater(reportPointWater); + } + + /** + * 批量删除水整点数据 + * + * @param objids 需要删除的水整点数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteReportPointWaterByObjids(String objids) { + return reportPointWaterMapper.deleteReportPointWaterByObjids(Convert.toStrArray(objids)); + } + + /** + * 删除水整点数据信息 + * + * @param objid 水整点数据主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteReportPointWaterByObjid(Long objid) { + return reportPointWaterMapper.deleteReportPointWaterByObjid(objid); + } + + /** + * 日月年电数据List + * + * @param reportPointWater + * @return + */ + @Override + @DS("#header.poolName") + public List datePointWaterList(ReportPointWater reportPointWater) { + Map params = reportPointWater.getParams(); + List pointWaterDTOList = new ArrayList<>(); + + if (reportPointWater.getDateType().equals("day")) { + params.put("timeSub", 10); + } else if (reportPointWater.getDateType().equals("month")) { + params.put("timeSub", 7); + } else if (reportPointWater.getDateType().equals("year")) { + params.put("timeSub", 4); + } + try { + pointWaterDTOList = reportPointWaterMapper.datePointWaterList(reportPointWater); + } catch (Exception e) { + e.printStackTrace(); + } + return pointWaterDTOList; + } + +} + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseBuildInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseBuildInfoMapper.xml new file mode 100644 index 000000000..9954fd1b2 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseBuildInfoMapper.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, build_id, build_name, build_status, ancestors, grade, remark, dept_id, user_id, create_by, create_time, update_by, update_time from base_build_info + + + + + + + + insert into base_build_info + + parent_id, + build_id, + build_name, + build_status, + ancestors, + grade, + remark, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{buildId}, + #{buildName}, + #{buildStatus}, + #{ancestors}, + #{grade}, + #{remark}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_build_info + + parent_id = #{parentId}, + build_id = #{buildId}, + build_name = #{buildName}, + build_status = #{buildStatus}, + ancestors = #{ancestors}, + grade = #{grade}, + remark = #{remark}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_build_info where objid = #{objid} + + + + delete from base_build_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml new file mode 100644 index 000000000..f99e9649f --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + select objid, parent_id, business_id, business_name, business_status, user_id, dept_id, create_by, create_time, update_by, update_time from base_business_type + + + + + + + + insert into base_business_type + + parent_id, + business_id, + business_name, + business_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{businessId}, + #{businessName}, + #{businessStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_business_type + + parent_id = #{parentId}, + business_id = #{businessId}, + business_name = #{businessName}, + business_status = #{businessStatus}, + user_id = #{userId}, + dept_id = #{deptId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_business_type where objid = #{objid} + + + + delete from base_business_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml new file mode 100644 index 000000000..1c0b8c43b --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, collect_device_id, terminal_time, time_interval, meter_agreement, meter_type, meter_status, meter_ip, heart_interval, baud_rate_one, baud_rate_two, baud_rate_three, baud_rate_four, remark, dept_id, user_id, create_by, create_time, update_by, update_time from base_collect_communicate + + + + + + + + insert into base_collect_communicate + + collect_device_id, + terminal_time, + time_interval, + meter_agreement, + meter_type, + meter_status, + meter_ip, + heart_interval, + baud_rate_one, + baud_rate_two, + baud_rate_three, + baud_rate_four, + remark, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{collectDeviceId}, + #{terminalTime}, + #{timeInterval}, + #{meterAgreement}, + #{meterType}, + #{meterStatus}, + #{meterIp}, + #{heartInterval}, + #{baudRateOne}, + #{baudRateTwo}, + #{baudRateThree}, + #{baudRateFour}, + #{remark}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_collect_communicate + + collect_device_id = #{collectDeviceId}, + terminal_time = #{terminalTime}, + time_interval = #{timeInterval}, + meter_agreement = #{meterAgreement}, + meter_type = #{meterType}, + meter_status = #{meterStatus}, + meter_ip = #{meterIp}, + heart_interval = #{heartInterval}, + baud_rate_one = #{baudRateOne}, + baud_rate_two = #{baudRateTwo}, + baud_rate_three = #{baudRateThree}, + baud_rate_four = #{baudRateFour}, + remark = #{remark}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_collect_communicate where objid = #{objid} + + + + delete from base_collect_communicate where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml new file mode 100644 index 000000000..1911fa873 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, collect_device_id, collect_device_name, manufacturer, factory_number, produce_date, address, energy_type, model, ip, remark, online_state, dept_id, user_id, create_by, create_time, update_by, update_time from base_collect_device_info + + + + + + + + insert into base_collect_device_info + + collect_device_id, + collect_device_name, + manufacturer, + factory_number, + produce_date, + address, + energy_type, + model, + ip, + remark, + online_state, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{collectDeviceId}, + #{collectDeviceName}, + #{manufacturer}, + #{factoryNumber}, + #{produceDate}, + #{address}, + #{energyType}, + #{model}, + #{ip}, + #{remark}, + #{onlineState}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_collect_device_info + + collect_device_id = #{collectDeviceId}, + collect_device_name = #{collectDeviceName}, + manufacturer = #{manufacturer}, + factory_number = #{factoryNumber}, + produce_date = #{produceDate}, + address = #{address}, + energy_type = #{energyType}, + model = #{model}, + ip = #{ip}, + remark = #{remark}, + online_state = #{onlineState}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_collect_device_info where objid = #{objid} + + + + delete from base_collect_device_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml new file mode 100644 index 000000000..17a780bf2 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, monitor_id, i_a_max, i_a_min, i_b_max, i_b_min, + i_c_max, i_c_min, v_a_max, v_a_min, v_b_max, v_b_min, v_c_max, + v_c_min, hour_consumption, day_consumption, line_loss_rate, threshold_status, dept_id, user_id, + create_by, create_time, update_by, update_time + from base_dnb_threshold + + + + + + + + insert into base_dnb_threshold + + monitor_id, + i_a_max, + i_a_min, + i_b_max, + i_b_min, + i_c_max, + i_c_min, + v_a_max, + v_a_min, + v_b_max, + v_b_min, + v_c_max, + v_c_min, + hour_consumption, + day_consumption, + line_loss_rate, + threshold_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{monitorId}, + #{iAMax}, + #{iAMin}, + #{iBMax}, + #{iBMin}, + #{iCMax}, + #{iCMin}, + #{vAMax}, + #{vAMin}, + #{vBMax}, + #{vBMin}, + #{vCMax}, + #{vCMin}, + #{hourConsumption}, + #{dayConsumption}, + #{lineLossRate}, + #{thresholdStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_dnb_threshold + + monitor_id = #{monitorId}, + i_a_max = #{iAMax}, + i_a_min = #{iAMin}, + i_b_max = #{iBMax}, + i_b_min = #{iBMin}, + i_c_max = #{iCMax}, + i_c_min = #{iCMin}, + v_a_max = #{vAMax}, + v_a_min = #{vAMin}, + v_b_max = #{vBMax}, + v_b_min = #{vBMin}, + v_c_max = #{vCMax}, + v_c_min = #{vCMin}, + hour_consumption = #{hourConsumption}, + day_consumption = #{dayConsumption}, + line_loss_rate = #{lineLossRate}, + threshold_status = #{thresholdStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_dnb_threshold where objid = #{objid} + + + + delete from base_dnb_threshold where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml new file mode 100644 index 000000000..eef7363a8 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + select objid, energy_type_id, energy_name, measure_unit, price, dept_id, + user_id, create_by, create_time, update_by, update_time from base_energy_type + + + + + + + + insert into base_energy_type + + energy_type_id, + energy_name, + measure_unit, + price, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{energyTypeId}, + #{energyName}, + #{measureUnit}, + #{price}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_energy_type + + energy_type_id = #{energyTypeId}, + energy_name = #{energyName}, + measure_unit = #{measureUnit}, + price = #{price}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_energy_type where objid = #{objid} + + + + delete from base_energy_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml new file mode 100644 index 000000000..7e0f1b9fa --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + select objid, line_loss_id, line_loss_name, monitor_id, monitor_name, monitor_type, grade, line_loss_status, user_id, dept_id, create_by, create_time, update_by, update_time from base_line_loss + + + + + + + + + insert into base_line_loss + + line_loss_id, + line_loss_name, + monitor_id, + monitor_name, + monitor_type, + grade, + line_loss_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{lineLossId}, + #{lineLossName}, + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{grade}, + #{lineLossStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_line_loss + + line_loss_id = #{lineLossId}, + line_loss_name = #{lineLossName}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_type = #{monitorType}, + grade = #{grade}, + line_loss_status = #{lineLossStatus}, + user_id = #{userId}, + dept_id = #{deptId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_line_loss where objid = #{objid} + + + + delete from base_line_loss where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml new file mode 100644 index 000000000..0f955497c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, monitor_status, collect_device_id, build_id, ancestors, grade, correct_value, is_ammeter, line_name, line_length, line_status, power_capacity, water_capacity, dept_id, user_id, create_by, create_time, update_by, update_time from base_line_monitor + + + + + + + + insert into base_line_monitor + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + build_id, + ancestors, + grade, + correct_value, + is_ammeter, + line_name, + line_length, + line_status, + power_capacity, + water_capacity, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{buildId}, + #{ancestors}, + #{grade}, + #{correctValue}, + #{isAmmeter}, + #{lineName}, + #{lineLength}, + #{lineStatus}, + #{powerCapacity}, + #{waterCapacity}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_line_monitor + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + build_id = #{buildId}, + ancestors = #{ancestors}, + grade = #{grade}, + correct_value = #{correctValue}, + is_ammeter = #{isAmmeter}, + line_name = #{lineName}, + line_length = #{lineLength}, + line_status = #{lineStatus}, + power_capacity = #{powerCapacity}, + water_capacity = #{waterCapacity}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_line_monitor where objid = #{objid} + + + + delete from base_line_monitor where objid in + + #{objid} + + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml new file mode 100644 index 000000000..08d0a40cf --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, dept_id, dept_name, build_number, floor_number, room_number, physical_number, manufacturer, precision_value, produce_date, meter_id, model, meter_energy_type, meter_adress, meter_status, ct_change, collect_id, remark from base_meter_info + + + + + + + + insert into base_meter_info + + dept_id, + dept_name, + build_number, + floor_number, + room_number, + physical_number, + manufacturer, + precision_value, + produce_date, + meter_id, + model, + meter_energy_type, + meter_adress, + meter_status, + ct_change, + collect_id, + remark, + + + #{deptId}, + #{deptName}, + #{buildNumber}, + #{floorNumber}, + #{roomNumber}, + #{physicalNumber}, + #{manufacturer}, + #{precisionValue}, + #{produceDate}, + #{meterId}, + #{model}, + #{meterEnergyType}, + #{meterAdress}, + #{meterStatus}, + #{ctChange}, + #{collectId}, + #{remark}, + + + + + update base_meter_info + + dept_id = #{deptId}, + dept_name = #{deptName}, + build_number = #{buildNumber}, + floor_number = #{floorNumber}, + room_number = #{roomNumber}, + physical_number = #{physicalNumber}, + manufacturer = #{manufacturer}, + precision_value = #{precisionValue}, + produce_date = #{produceDate}, + meter_id = #{meterId}, + model = #{model}, + meter_energy_type = #{meterEnergyType}, + meter_adress = #{meterAdress}, + meter_status = #{meterStatus}, + ct_change = #{ctChange}, + collect_id = #{collectId}, + remark = #{remark}, + + where objid = #{objid} + + + + delete from base_meter_info where objid = #{objid} + + + + delete from base_meter_info where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml new file mode 100644 index 000000000..58ec73a56 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, monitor_status, + collect_device_id, ancestors, grade, build_id, subentry_id, business_id, meter_type_id, + meter_id, correct_value, pt, ct, is_ammeter, is_key_monitor, is_circuit, dept_id, user_id, + create_by, create_time, update_by, update_time, public_share_type,monitor_hierarchy,room_code,room_name,physical_code from base_monitor_info + + + + + + + + + + update base_monitor_info set ancestors = + + when #{item.monitorId} then #{item.ancestors} + + where monitor_id in + + #{item.monitorId} + + + + insert into base_monitor_info + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + ancestors, + grade, + build_id, + subentry_id, + business_id, + meter_type_id, + meter_id, + correct_value, + pt, + ct, + is_ammeter, + is_key_monitor, + is_circuit, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + public_share_type, + monitor_hierarchy, + room_code, + room_name, + physical_code, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{ancestors}, + #{grade}, + #{buildId}, + #{subentryId}, + #{businessId}, + #{meterTypeId}, + #{meterId}, + #{correctValue}, + #{pt}, + #{ct}, + #{isAmmeter}, + #{isKeyMonitor}, + #{isCircuit}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{publicShareType}, + #{monitorHierarchy}, + #{roomCode}, + #{roomName}, + #{physicalCode}, + + + + + update base_monitor_info + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + ancestors = #{ancestors}, + grade = #{grade}, + build_id = #{buildId}, + subentry_id = #{subentryId}, + business_id = #{businessId}, + meter_type_id = #{meterTypeId}, + meter_id = #{meterId}, + correct_value = #{correctValue}, + pt = #{pt}, + ct = #{ct}, + is_ammeter = #{isAmmeter}, + is_key_monitor = #{isKeyMonitor}, + is_circuit = #{isCircuit}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + public_share_type = #{publicShareType}, + monitor_hierarchy = #{monitorHierarchy}, + room_code = #{roomCode}, + room_name = #{roomName}, + physical_code = #{physicalCode}, + + where objid = #{objid} + + + + delete from base_monitor_info where objid = #{objid} + + + + delete from base_monitor_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml new file mode 100644 index 000000000..9f203e471 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, + monitor_status, collect_device_id, ancestors, grade, build_id, subentry_id, + business_id, meter_type_id, meter_id, correct_value, pt, ct, is_ammeter, + is_key_monitor, is_circuit, dept_id, user_id, create_by, create_time, update_by, update_time from base_monitor_info + + + + + + + + + + + update base_monitor_info set ancestors = + + when #{item.monitorId} then #{item.ancestors} + + where monitor_id in + + #{item.monitorId} + + + + insert into base_monitor_info + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + ancestors, + grade, + build_id, + subentry_id, + business_id, + meter_type_id, + meter_id, + correct_value, + pt, + ct, + is_ammeter, + is_key_monitor, + is_circuit, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{ancestors}, + #{grade}, + #{buildId}, + #{subentryId}, + #{businessId}, + #{meterTypeId}, + #{meterId}, + #{correctValue}, + #{pt}, + #{ct}, + #{isAmmeter}, + #{isKeyMonitor}, + #{isCircuit}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_monitor_info + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + ancestors = #{ancestors}, + grade = #{grade}, + build_id = #{buildId}, + subentry_id = #{subentryId}, + business_id = #{businessId}, + meter_type_id = #{meterTypeId}, + meter_id = #{meterId}, + correct_value = #{correctValue}, + pt = #{pt}, + ct = #{ct}, + is_ammeter = #{isAmmeter}, + is_key_monitor = #{isKeyMonitor}, + is_circuit = #{isCircuit}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_monitor_info where objid = #{objid} + + + + delete from base_monitor_info where objid in + + #{objid} + + + + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml new file mode 100644 index 000000000..49ece04dc --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + select monitor_id, public_share_id,public_share_type from base_monitor_public + + + + + + + + insert into base_monitor_public + + monitor_id, + public_share_id, + public_share_type, + + + #{monitorId}, + #{publicShareId}, + #{publicShareType}, + + + + insert into base_monitor_public(monitor_id, public_share_id,public_share_type) values + + (#{item.monitorId},#{item.publicShareId},#{item.publicShareType}) + + + + + update base_monitor_public + + public_share_id = #{publicShareId}, + public_share_type = #{publicShareType}, + + where monitor_id = #{monitorId} + + + + delete from base_monitor_public where monitor_id = #{monitorId} + + + + delete from base_monitor_public where public_share_id = #{id} + + + + delete from base_monitor_public where monitor_id in + + #{monitorId} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml new file mode 100644 index 000000000..4649b3b8c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + select id, begin_time, end_time, public_share_type, public_share_rule, public_share_value, create_by, create_time, update_by, update_time, remark, other1, other2 from base_public_manage + + + + + + + + insert into base_public_manage + + id, + begin_time, + end_time, + public_share_type, + public_share_rule, + public_share_value, + create_by, + create_time, + update_by, + update_time, + remark, + other1, + other2, + + + #{id}, + #{beginTime}, + #{endTime}, + #{publicShareType}, + #{publicShareRule}, + #{publicShareValue}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{other1}, + #{other2}, + + + + + update base_public_manage + + begin_time = #{beginTime}, + end_time = #{endTime}, + public_share_type = #{publicShareType}, + public_share_rule = #{publicShareRule}, + public_share_value = #{publicShareValue}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + other1 = #{other1}, + other2 = #{other2}, + + where id = #{id} + + + + delete from base_public_manage where id = #{id} + + + + delete from base_public_manage where id in + + #{id} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml new file mode 100644 index 000000000..58a42f3d7 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, user_name,area, create_by, create_time, update_by, update_time, remark from base_public_user + + + + + + + + + + + + + + + + insert into base_public_user + + user_name, + monitor_id, + area, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userName}, + #{monitorId}, + #{area}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update base_public_user + + user_name = #{userName}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + area = #{area}, + + where id = #{id} + + + + delete from base_public_user where id = #{id} + + + + delete from base_public_user where id in + + #{id} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml new file mode 100644 index 000000000..6de2c5d7d --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, public_share_id, public_user_id, bpu.user_name public_user_name, bpm.public_share_rule, public_monitor_ids, base_public_user_record.start_time, base_public_user_record.end_time, + allocation_ratio, public_energy_consumption, owner_energy_consumption, ifnull(public_energy_consumption,0) + ifnull(owner_energy_consumption,0) sumEnergyConsumption, + energy_type, del_status, created_by, created_time, base_public_user_record.update_by, base_public_user_record.update_time from base_public_user_record + left join base_public_user bpu on bpu.id = base_public_user_record.public_user_id + left join base_public_manage bpm on bpm.id = base_public_user_record.public_share_id + + + + + + + + insert into base_public_user_record + + public_share_id, + public_user_id, + public_monitor_ids, + start_time, + end_time, + allocation_ratio, + public_energy_consumption, + owner_energy_consumption, + energy_type, + created_by, + created_time, + update_by, + update_time, + + + #{publicShareId}, + #{publicUserId}, + #{publicMonitorIds}, + #{startTime}, + #{endTime}, + #{allocationRatio}, + #{publicEnergyConsumption}, + #{ownerEnergyConsumption}, + #{energyType}, + #{createdBy}, + #{createdTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_public_user_record + + public_share_id = #{publicShareId}, + public_user_id = #{publicUserId}, + public_monitor_ids = #{publicMonitorIds}, + start_time = #{startTime}, + end_time = #{endTime}, + allocation_ratio = #{allocationRatio}, + public_energy_consumption = #{publicEnergyConsumption}, + owner_energy_consumption = #{ownerEnergyConsumption}, + energy_type = #{energyType}, + del_status = #{delStatus}, + created_by = #{createdBy}, + created_time = #{createdTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_public_user_record where objid = #{objid} + + + + delete from base_public_user_record where objid in + + #{objid} + + + \ No newline at end of file diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml new file mode 100644 index 000000000..1d80ba526 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + select objid, parent_id, subentry_id, subentry_name, subentry_status, dept_id, user_id, create_by, create_time, update_by, update_time from base_subentry_type + + + + + + + + insert into base_subentry_type + + parent_id, + subentry_id, + subentry_name, + subentry_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{subentryId}, + #{subentryName}, + #{subentryStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + insert into base_line_loss + + line_loss_id, + line_loss_name, + monitor_id, + monitor_name, + monitor_type, + grade, + line_loss_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{lineLossId}, + #{lineLossName}, + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{grade}, + #{lineLossStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_subentry_type + + parent_id = #{parentId}, + subentry_id = #{subentryId}, + subentry_name = #{subentryName}, + subentry_status = #{subentryStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_subentry_type where objid = #{objid} + + + + delete from base_subentry_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml new file mode 100644 index 000000000..9aa6ff3ef --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + select base_type_relation.objid, + base_type_relation.monitor_id, + type, + relation_id, + base_type_relation.remark, + base_type_relation.create_by, + base_type_relation.create_time, + base_type_relation.update_by, + base_type_relation.update_time, + m.monitor_type, + m.monitor_name, + case + when base_type_relation.type = 0 then bi.build_name + when base_type_relation.type = 1 then bt.business_name + when base_type_relation.type = 2 then st.subentry_name + end unit_name, + base_type_relation.rate, base_type_relation.formula_mode + from base_type_relation + left join base_monitor_info m on m.monitor_id = base_type_relation.monitor_id + left join base_build_info bi on base_type_relation.relation_id = bi.objid + left join base_business_type bt on base_type_relation.relation_id = bt.objid + left join base_subentry_type st on base_type_relation.relation_id = st.objid + + + + + + + + + insert into base_type_relation + + monitor_id, + type, + relation_id, + remark, + create_by, + create_time, + update_by, + update_time, + rate, + formula_mode, + + + #{monitorId}, + #{type}, + #{relationId}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{rate}, + #{formulaMode}, + + + + + update base_type_relation + + monitor_id = #{monitorId}, + type = #{type}, + relation_id = #{relationId}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + rate = #{rate}, + formula_mode = #{formulaMode}, + + where objid = #{objid} + + + + delete from base_type_relation where objid = #{objid} + + + + delete from base_type_relation where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml new file mode 100644 index 000000000..1f65cd5d1 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + select objid, monitor_id, monitor_name, line_loss_rate, max_traffic, min_traffic, hour_consumption, day_consumption, + threshold_status, dept_id, user_id, create_by, create_time, + update_by, update_time + from base_water_threshold + + + + + + + + insert into base_water_threshold + + monitor_id, + monitor_name, + max_traffic, + min_traffic, + hour_consumption, + day_consumption, + line_loss_rate, + threshold_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{monitorId}, + #{monitorName}, + #{maxTraffic}, + #{minTraffic}, + #{hourConsumption}, + #{dayConsumption}, + #{lineLossRate}, + #{thresholdStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_water_threshold + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + max_traffic = #{maxTraffic}, + min_traffic = #{minTraffic}, + hour_consumption = #{hourConsumption}, + day_consumption = #{dayConsumption}, + line_loss_rate = #{lineLossRate}, + threshold_status = #{thresholdStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_water_threshold where objid = #{objid} + + + + delete from base_water_threshold where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml new file mode 100644 index 000000000..ad7bad2a6 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select obj_id, monitor_id, monitor_name, monitor_type, public_share_type, + room_code, room_name,physical_code, build_code, build_name, is_bind, last_monitor_time, last_monitor_expend, this_monitor_time, this_monitor_expend, last_flag, this_flag, remark, create_by, create_time, update_by, update_time from cbs_monitor_report + + + + + + + + + + + insert into cbs_monitor_report + + monitor_id, + monitor_name, + monitor_type, + public_share_type, + room_code, + room_name, + build_code, + build_name, + is_bind, + last_monitor_time, + last_monitor_expend, + this_monitor_time, + this_monitor_expend, + last_flag, + this_flag, + remark, + create_by, + create_time, + update_by, + update_time, + physical_code, + + + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{publicShareType}, + #{roomCode}, + #{roomName}, + #{buildCode}, + #{buildName}, + #{isBind}, + #{lastMonitorTime}, + #{lastMonitorExpend}, + #{thisMonitorTime}, + #{thisMonitorExpend}, + #{lastFlag}, + #{thisFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{physicalCode}, + + + + + update cbs_monitor_report + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_type = #{monitorType}, + public_share_type = #{publicShareType}, + room_code = #{roomCode}, + room_name = #{roomName}, + build_code = #{buildCode}, + build_name = #{buildName}, + is_bind = #{isBind}, + last_monitor_time = #{lastMonitorTime}, + last_monitor_expend = #{lastMonitorExpend}, + this_monitor_time = #{thisMonitorTime}, + this_monitor_expend = #{thisMonitorExpend}, + last_flag = #{lastFlag}, + this_flag = #{thisFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + physical_code = #{physicalCode}, + + where obj_id = #{objId} + + + + delete from cbs_monitor_report where obj_id = #{objId} + + + + delete from cbs_monitor_report where obj_id in + + #{objId} + + + \ No newline at end of file diff --git a/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml new file mode 100644 index 000000000..6c9201934 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark + from sys_config + + + + + + + and config_id = #{configId} + + + and config_key = #{configKey} + + + + + + + + + + + + + + insert into sys_config ( + config_name, + config_key, + config_value, + config_type, + create_by, + remark, + create_time + )values( + #{configName}, + #{configKey}, + #{configValue}, + #{configType}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + update sys_config + + config_name = #{configName}, + config_key = #{configKey}, + config_value = #{configValue}, + config_type = #{configType}, + update_by = #{updateBy}, + remark = #{remark}, + update_time = sysdate() + + where config_id = #{configId} + + + + delete from sys_config where config_id = #{configId} + + + + delete from sys_config where config_id in + + #{configId} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml new file mode 100644 index 000000000..cfb83095b --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, url, user_name, password, drive_class_name, pool_name, status, del_flag, create_by, create_time, update_by, update_time, remark, cbs_park_code, cbs_park_name from sys_datasource + + + + + + + + + + + insert into sys_datasource + + id, + url, + user_name, + password, + drive_class_name, + pool_name, + status, + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + cbs_park_code, + cbs_park_name, + + + #{id}, + #{url}, + #{userName}, + #{password}, + #{driveClassName}, + #{poolName}, + #{status}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{cbsParkCode}, + #{cbsParkName}, + + + + + update sys_datasource + + url = #{url}, + user_name = #{userName}, + password = #{password}, + drive_class_name = #{driveClassName}, + pool_name = #{poolName}, + status = #{status}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + cbs_park_code = #{cbsParkCode}, + cbs_park_name = #{cbsParkName}, + + where id = #{id} + + + + delete from sys_datasource where id = #{id} + + + + delete from sys_datasource where id in + + #{id} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml new file mode 100644 index 000000000..7bed7cbcd --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select record_alarm_data.objId, + record_alarm_data.monitor_id, + case when m.monitor_name is null then cdi.collect_device_name else m.monitor_name end monitor_name, + record_alarm_data.collect_device_id,collect_time,alarm_type,alarmStatus, + alarmData,operation_name,operation_time,cause,record_alarm_data.create_by,record_alarm_data.create_time, + record_alarm_data.update_by,record_alarm_data.update_time,notify_user, + record_alarm_data.dept_id,record_alarm_data.user_id + from record_alarm_data + left join base_monitor_info m on m.monitor_id = record_alarm_data.monitor_id + left join base_collect_device_info cdi on cdi.collect_device_id = record_alarm_data.collect_device_id + + + + + + + + insert into record_alarm_data + + monitor_id, + collect_device_id, + collect_time, + alarm_type, + alarmStatus, + alarmData, + operation_name, + operation_time, + cause, + create_by, + create_time, + update_by, + update_time, + notify_user, + dept_id, + user_id, + + + #{monitorId}, + #{collectDeviceId}, + #{collectTime}, + #{alarmType}, + #{alarmStatus}, + #{alarmData}, + #{operationName}, + #{operationTime}, + #{cause}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{notifyUser}, + #{deptId}, + #{userId}, + + + + + update record_alarm_data + + monitor_id = #{monitorId}, + collect_device_id = #{collectDeviceId}, + collect_time = #{collectTime}, + alarm_type = #{alarmType}, + alarmStatus = #{alarmStatus}, + alarmData = #{alarmData}, + operation_name = #{operationName}, + operation_time = #{operationTime}, + cause = #{cause}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + notify_user = #{notifyUser}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objId = #{objId} + + + + delete from record_alarm_data where objId = #{objId} + + + + delete from record_alarm_data where objId in + + #{objId} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml new file mode 100644 index 000000000..12aa75c33 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objId, rule_id, rule_name, monitor_id, collect_time, energy_type, trigger_rule, trigger_number, time_range, device_offline_time, notify_user, cause, create_by, create_time, update_by, update_time, dept_id, user_id from record_alarm_rule + + + + + + + + insert into record_alarm_rule + + rule_id, + rule_name, + monitor_id, + collect_time, + energy_type, + trigger_rule, + trigger_number, + time_range, + device_offline_time, + notify_user, + cause, + create_by, + create_time, + update_by, + update_time, + dept_id, + user_id, + + + #{ruleId}, + #{ruleName}, + #{monitorId}, + #{collectTime}, + #{energyType}, + #{triggerRule}, + #{triggerNumber}, + #{timeRange}, + #{deviceOfflineTime}, + #{notifyUser}, + #{cause}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{deptId}, + #{userId}, + + + + + update record_alarm_rule + + rule_id = #{ruleId}, + rule_name = #{ruleName}, + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + energy_type = #{energyType}, + trigger_rule = #{triggerRule}, + trigger_number = #{triggerNumber}, + time_range = #{timeRange}, + device_offline_time = #{deviceOfflineTime}, + notify_user = #{notifyUser}, + cause = #{cause}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objId = #{objId} + + + + delete from record_alarm_rule where objId = #{objId} + + + + delete from record_alarm_rule where objId in + + #{objId} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml new file mode 100644 index 000000000..3bfad15ad --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_dnb_instant.objid, record_dnb_instant.monitor_id,m.monitor_name,m.monitor_addr address, collect_time, vA, vB, vC, iA, iB, iC, record_time, glys, + zxyg, active_power, reactive_power, consumption, collect_type, record_dnb_instant.dept_id, record_dnb_instant.user_id from record_dnb_instant + left join base_monitor_info m on m.monitor_id = record_dnb_instant.monitor_id + + + + + + + + + + + + insert into record_dnb_instant + + monitor_id, + collect_time, + vA, + vB, + vC, + iA, + iB, + iC, + record_time, + glys, + zxyg, + active_power, + reactive_power, + consumption, + collect_type, + dept_id, + user_id, + + + #{monitorId}, + #{collectTime}, + #{vA}, + #{vB}, + #{vC}, + #{iA}, + #{iB}, + #{iC}, + #{recordTime}, + #{glys}, + #{zxyg}, + #{activePower}, + #{reactivePower}, + #{consumption}, + #{collectType}, + #{deptId}, + #{userId}, + + + + + update record_dnb_instant + + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + vA = #{vA}, + vB = #{vB}, + vC = #{vC}, + iA = #{iA}, + iB = #{iB}, + iC = #{iC}, + record_time = #{recordTime}, + glys = #{glys}, + zxyg = #{zxyg}, + active_power = #{activePower}, + reactive_power = #{reactivePower}, + consumption = #{consumption}, + collect_type = #{collectType}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from record_dnb_instant where objid = #{objid} + + + + delete from record_dnb_instant where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml new file mode 100644 index 000000000..eaecb597d --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + select record_water_instant.objid, record_water_instant.monitor_id,m.monitor_name, collect_time, + flux_flow, water_flow, record_time, collect_type, record_water_instant.dept_id, record_water_instant.user_id from record_water_instant + left join base_monitor_info m on m.monitor_id = record_water_instant.monitor_id + + + + + + + + + + + + insert into record_water_instant + + objid, + monitor_id, + collect_time, + flux_flow, + water_flow, + record_time, + collect_type, + dept_id, + user_id, + + + #{objid}, + #{monitorId}, + #{collectTime}, + #{fluxFlow}, + #{waterFlow}, + #{recordTime}, + #{collectType}, + #{deptId}, + #{userId}, + + + + + update record_water_instant + + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + flux_flow = #{fluxFlow}, + water_flow = #{waterFlow}, + record_time = #{recordTime}, + collect_type = #{collectType}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from record_water_instant where objid = #{objid} + + + + delete from record_water_instant where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml new file mode 100644 index 000000000..e80f8f889 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select report_point_dnb.objid, report_point_dnb.dept_id, dept_name, report_point_dnb.monitor_id,m.monitor_name, + p_monitor_id, m.monitor_addr address, expend, price, + point_time, begin_time, end_time, record_time, update_flag, meter_value, + report_point_dnb.update_by, report_point_dnb.update_time, collect_type,report_point_dnb. user_id from report_point_dnb + left join base_monitor_info m on m.monitor_id = report_point_dnb.monitor_id + + + + + + + + + + + + + + + insert into report_point_dnb + + objid, + dept_id, + dept_name, + monitor_id, + monitor_name, + p_monitor_id, + address, + expend, + price, + point_time, + begin_time, + end_time, + record_time, + update_flag, + meter_value, + update_by, + update_time, + collect_type, + user_id, + + + #{objid}, + #{deptId}, + #{deptName}, + #{monitorId}, + #{monitorName}, + #{pMonitorId}, + #{address}, + #{expend}, + #{price}, + #{pointTime}, + #{beginTime}, + #{endTime}, + #{recordTime}, + #{updateFlag}, + #{meterValue}, + #{updateBy}, + #{updateTime}, + #{collectType}, + #{userId}, + + + + + update report_point_dnb + + dept_id = #{deptId}, + dept_name = #{deptName}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + p_monitor_id = #{pMonitorId}, + address = #{address}, + expend = #{expend}, + price = #{price}, + point_time = #{pointTime}, + begin_time = #{beginTime}, + end_time = #{endTime}, + record_time = #{recordTime}, + update_flag = #{updateFlag}, + meter_value = #{meterValue}, + update_by = #{updateBy}, + update_time = #{updateTime}, + collect_type = #{collectType}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from report_point_dnb where objid = #{objid} + + + + delete from report_point_dnb where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml new file mode 100644 index 000000000..5098eb57c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select report_point_water.objid, report_point_water.monitor_id,m.monitor_name, report_point_water.monitor_name, p_monitor_id, address, expend, + price, point_time, begin_time, end_time, record_time, update_flag, + meter_value, operation_name, operation_time, collect_type, + report_point_water.dept_id, dept_name, report_point_water.user_id, report_point_water.create_by, + report_point_water.create_time, report_point_water.update_by, report_point_water.update_time from report_point_water + left join base_monitor_info m on m.monitor_id = report_point_water.monitor_id + + + + + + + + + + + + insert into report_point_water + + objid, + monitor_id, + monitor_name, + p_monitor_id, + address, + expend, + price, + point_time, + begin_time, + end_time, + record_time, + update_flag, + meter_value, + operation_name, + operation_time, + collect_type, + dept_id, + dept_name, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{objid}, + #{monitorId}, + #{monitorName}, + #{pMonitorId}, + #{address}, + #{expend}, + #{price}, + #{pointTime}, + #{beginTime}, + #{endTime}, + #{recordTime}, + #{updateFlag}, + #{meterValue}, + #{operationName}, + #{operationTime}, + #{collectType}, + #{deptId}, + #{deptName}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update report_point_water + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + p_monitor_id = #{pMonitorId}, + address = #{address}, + expend = #{expend}, + price = #{price}, + point_time = #{pointTime}, + begin_time = #{beginTime}, + end_time = #{endTime}, + record_time = #{recordTime}, + update_flag = #{updateFlag}, + meter_value = #{meterValue}, + operation_name = #{operationName}, + operation_time = #{operationTime}, + collect_type = #{collectType}, + dept_id = #{deptId}, + dept_name = #{deptName}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from report_point_water where objid = #{objid} + + + + delete from report_point_water where objid in + + #{objid} + + + + From dbeba66388a2ab968ebbe9c2ac12cc34fb536508 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 09:34:28 +0800 Subject: [PATCH 34/64] =?UTF-8?q?sap=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 4 +- .../api/domain/dto/MesPrepareDetailDTO.java | 9 + .../api/factory/RemoteSapFallbackFactory.java | 3 +- .../service/impl/ProOrderServiceImpl.java | 4 +- .../impl/ProOrderWorkorderServiceImpl.java | 167 ++++++++++-------- .../mapper/plan/ProOrderWorkorderMapper.xml | 4 +- 6 files changed, 107 insertions(+), 84 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 7f05ea66e..ab5b53b6d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; + /** * sap服务 * @@ -30,7 +32,7 @@ public interface RemoteSapService { /**回传sap母工单**/ @PostMapping("/sap/sapCreateOrder") - public R> SapCreateOrder(@RequestBody List sapCreateOrderList); + public R>> SapCreateOrder(@RequestBody List sapCreateOrderList); /**关闭订单**/ @PostMapping("/sap/sapCloseOrder") diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java index 98e02a0ad..6f566e3c3 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java @@ -83,6 +83,15 @@ public class MesPrepareDetailDTO extends BaseEntity { private String needDate; private String recoil; private String buyFlag; + private String parentWorkOrder; + + public String getParentWorkOrder() { + return parentWorkOrder; + } + + public void setParentWorkOrder(String parentWorkOrder) { + this.parentWorkOrder = parentWorkOrder; + } public String getBuyFlag() { return buyFlag; diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index 8ecd24e5e..a89735e02 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -10,6 +10,7 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; public class RemoteSapFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteSapFallbackFactory.class); @@ -33,7 +34,7 @@ public class RemoteSapFallbackFactory implements FallbackFactory> SapCreateOrder(List sapCreateOrderList) { + public R>> SapCreateOrder(List sapCreateOrderList) { return R.fail("回传sap工单失败:" + throwable.getMessage()); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index d7191c569..3d0b61370 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -565,9 +565,9 @@ public class ProOrderServiceImpl implements IProOrderService { if (checkResult.isSuccess()) { String info = syncImportFunc(orderList); return success("信息导入完成。其中导入失败订单:"+info); + }else{ + return checkResult; } - // 校验失败 - return checkResult; } @Override diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 5140d41f2..2a586e4c8 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -266,22 +266,32 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { whiteOrder.setUpdateTime(DateUtils.getNowDate()); return proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); } else if (whiteOrder != null && !"white".equals(whiteOrder.getProdType())) { - List pcodes = new ArrayList<>();//一起下发用 + List wids = new ArrayList<>();//一起下发用 List wcodes = new ArrayList<>();//领料单用 - //成品的母工单//查上一级工单 + List ordercodes = new ArrayList<>();//关闭订单用 + + wids.add(whiteOrder.getWorkorderId()); + wcodes.add(whiteOrder.getWorkorderCode()); + ordercodes.add(whiteOrder.getOrderCode()); Boolean isTop = true; + //成品的母工单//查上一级工单 while(isTop) { - pcodes.add(whiteOrder.getWorkorderId()); - wcodes.add(whiteOrder.getWorkorderCode()); //查上一级工单 whiteOrder.setWorkorderCode(whiteOrder.getParentOrder()); ProOrderWorkorder pWorkOrder = proOrderWorkorderMapper.getPWorkOrder(whiteOrder); - if(pWorkOrder == null || "0".equals(pWorkOrder.getParentOrder())){ - isTop = false; - }else{ + if(pWorkOrder != null ){ + wids.add(pWorkOrder.getWorkorderId()); + wcodes.add(pWorkOrder.getWorkorderCode()); + ordercodes.add(pWorkOrder.getOrderCode()); + } + if("0".equals(pWorkOrder.getParentOrder())){ BeanUtils.copyProperties(pWorkOrder,whiteOrder); + isTop = false; } } + //顺序母子 + Collections.reverse(wids); + Collections.reverse(wcodes); sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 @@ -301,36 +311,46 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sysSapLog.setCreateTime(DateUtils.getNowDate()); proOrderMapper.addSapLog(sysSapLog); - R> r = remoteSapService.SapCreateOrder(sapList); + R>> r = remoteSapService.SapCreateOrder(sapList); logger.info("sap工单回传:" + r.getMsg()); if (500 == r.getCode()) { logger.error("sap工单回传:" + r.getMsg()); return 0; } - List returnCodes = r.getData(); + List> returnMaps = r.getData(); + List returnCodes = new ArrayList<>(); + for(Map mapdto:returnMaps){ + returnCodes.add(mapdto.get("LEAD_AUFNR")); + returnCodes.add(mapdto.get("AUFNR")); + } Date updateTime = DateUtils.getNowDate(); if (!CollectionUtils.isEmpty(returnCodes)) { logger.info("sap工单回传sap虚拟工单号:" + StringUtils.join(returnCodes, ",")); + //按照母子顺序进行更新 for (int m=0;m returnCodes = new ArrayList<>(); +// returnCodes.add("000100305879"); +// returnCodes.add("000100305878"); //获取领料单 - Collections.reverse(wcodes); this.getMesPrepare(returnCodes,wcodes); - //关闭订单//母订单的订单编码 - R closeR= remoteSapService.sapCloseOrder(whiteOrder.getOrderCode()); - logger.info("下发工单后关闭订单"+whiteOrder.getOrderCode()+":"+closeR.getMsg()); - + //关闭订单//订单的订单编码 + for(String orderCode:ordercodes){ + R closeR= remoteSapService.sapCloseOrder(orderCode); + logger.info(workorderId+"下发工单后关闭母订单"+orderCode+":"+closeR.getMsg()); + } //下达工单 - String[] idsArrayAll = (String[])pcodes.toArray(new String[pcodes.size()]); + String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); return proOrderWorkorderMapper.downWorkorders(idsArrayAll); } } @@ -349,8 +369,9 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } public void getMesPrepare(List sapWorkOrders,List workOrders) { - for(String sapWorkOrder:sapWorkOrders){ - logger.info("获取sap领料单:" + sapWorkOrder+"开始"); + Date createDate = DateUtils.getNowDate(); + for (int m = 0;m sapMaterialPreparationList = remoteSapService.materialPreparation(sapWorkOrder).getData(); + List sapMaterialPreparationList = remoteSapService.materialPreparation(sapWorkOrders.get(m)).getData(); if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { System.out.println("sap无领料单数据"); } //取出各领料单 - List orderCodes = sapMaterialPreparationList.stream().map(SapMaterialPreparation::getAUFNR).collect(Collectors.toList()); - Date createDate = DateUtils.getNowDate(); - for (int m = 0;m details = new ArrayList<>(); + String orderCode = sapWorkOrders.get(m); + logger.info("sap虚拟工单码:"+orderCode); + /**mes_prepare**/ + String mesPrepareId = IdUtils.fastSimpleUUID(); + MesPrepareDTO mesPrepare0 = new MesPrepareDTO(); + mesPrepare0.setPrepareId(mesPrepareId); + mesPrepare0.setWorkorderCode(workOrders.get(m)); + mesPrepare0.setWorkorderName(orderCode);//工单(子) + mesPrepare0.setCreateTime(createDate); + mesPrepare0.setCreateBy(SecurityUtils.getUsername()); + mesPrepare0.setStatus("L0");//默认待确认 + proOrderWorkorderMapper.insertMesPrepare(mesPrepare0); + /**mes_prepare_detail**/ + List details = new ArrayList<>(); - MesPrepareDetailDTO detail = null; - for (SapMaterialPreparation sap : sapMaterialPreparationList) { - detail = new MesPrepareDetailDTO(); - detail.setPrepareId(mesPrepareId); - detail.setRecordId(IdUtils.fastSimpleUUID()); - detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 - detail.setMaterialCode(sap.getMATNR());//物料号 - detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) - detail.setFactoryCode(sap.getWERKS());//工厂 - detail.setLocator(sap.getLGORT());//库存地点 - detail.setNeedDate(sap.getBDTER());//组件的需求日期 - detail.setQuantity(sap.getBDMNG());////需求量 - detail.setFundQuanlity(sap.getZQLSL());//欠料数量 - detail.setUnit(sap.getMEINS());//基本计量单位 - detail.setRecoil(sap.getRGEKZ());//反冲标识 - detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 - detail.setCreateBy(SecurityUtils.getUsername()); - detail.setCreateTime(createDate); - details.add(detail); - logger.info("领料单内容detail:"+sap.getRSPOS()+","+sap.getMATNR()+","+ - sap.getMAKTX()+","+sap.getWERKS()+","+ sap.getLGORT()+","+ - sap.getBDTER()+","+sap.getBDMNG()+","+sap.getZQLSL()+","+ - sap.getMEINS()+","+sap.getRGEKZ()+","+sap.getDBSKZ() - ); - } - proOrderWorkorderMapper.insertMesPrepareDetails(details); - logger.info("获取sap领料单:" + sapWorkOrder+"结束"); + MesPrepareDetailDTO detail = null; + for (SapMaterialPreparation sap : sapMaterialPreparationList) { + detail = new MesPrepareDetailDTO(); + detail.setPrepareId(mesPrepareId); + detail.setRecordId(IdUtils.fastSimpleUUID()); + detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 + detail.setMaterialCode(sap.getMATNR());//物料号 + detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) + detail.setFactoryCode(sap.getWERKS());//工厂 + detail.setLocator(sap.getLGORT());//库存地点 + detail.setNeedDate(sap.getBDTER());//组件的需求日期 + detail.setQuantity(sap.getBDMNG());////需求量 + detail.setFundQuanlity(sap.getZQLSL());//欠料数量 + detail.setUnit(sap.getMEINS());//基本计量单位 + detail.setRecoil(sap.getRGEKZ());//反冲标识 + detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 + detail.setCreateBy(SecurityUtils.getUsername()); + detail.setCreateTime(createDate); + detail.setParentWorkOrder(workOrders.get(0)); + details.add(detail); + logger.info("领料单内容detail:"+sap.getRSPOS()+","+sap.getMATNR()+","+ + sap.getMAKTX()+","+sap.getWERKS()+","+ sap.getLGORT()+","+ + sap.getBDTER()+","+sap.getBDMNG()+","+sap.getZQLSL()+","+ + sap.getMEINS()+","+sap.getRGEKZ()+","+sap.getDBSKZ() + ); } + proOrderWorkorderMapper.insertMesPrepareDetails(details); + logger.info("获取sap领料单:" + sapWorkOrders.get(m)+"结束"); } } @@ -773,18 +791,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { if (splitOrderDTO.getRouteCode() != null) { proOrderWorkorder.setRouteCode(splitOrderDTO.getRouteCode()); } -// // 白坯工单返修-车数 -// if (proOrderWorkorder.getProdType().equals("white")) { -// if (splitOrderDTO.getCarNum() != null) { -// proOrderWorkorder.setCarNum(splitOrderDTO.getCarNum()); -// } -// } proOrderWorkorderMapper.updateProOrderWorkorder(proOrderWorkorder); // 删除工单下对应批次信息 proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderId(proOrderWorkorder.getWorkorderId()); -// System.out.println("这里是workorderCode------------》"+proOrderWorkorder.getWorkorderCode()); // 生成对应批次表 workBatch.setWorkorderId(proOrderWorkorder.getWorkorderId()); @@ -840,13 +851,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { if (!(proOrderWorkorder.getStatus().equals("w0") || proOrderWorkorder.getStatus().equals("w1"))) { return error("工单已生产,不可变更!"); } -// // 白坯工单所在湿料计划下发不允许变更 -// if (proOrderWorkorder.getProdType().equals("white")) { -// ProWetMaterialPlan plan = proWetMaterialPlanMapper.selectProWetMaterialPlanByWorkId(proOrderWorkorder.getWorkorderId()); -// if (plan != null) { -// return error("工单所在湿料计划已下发,不允许变更!"); -// } -// } return success(); } @@ -1081,5 +1085,12 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } return success("变更成功"); } - + public static void main(String args[]){ + List wcodes =new ArrayList<>(); + wcodes.add("aaa"); + wcodes.add("bbb"); + wcodes.add("ccc"); + Collections.reverse(wcodes); + System.out.println(StringUtils.join(wcodes, ",")); + } } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 894489c0b..3528ec14c 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -457,13 +457,13 @@ INSERT INTO mes_prepare_detail ( record_id,prepare_id,material_code,material_name,unit, quantity,create_by,create_time,factory_code,status, - locator,need_date,recoil,fund_quanlity,buy_flag + locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order )VALUES ( #{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit}, #{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status}, - #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag} + #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag},#{d.parentWorkOrder} ) From 709af8c4a0f2f627a87ecdab4a4512fba6fcc5a3 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 13:55:17 +0800 Subject: [PATCH 35/64] =?UTF-8?q?=E5=8A=A0=E5=85=A5belong=5Fwork=5Forder?= =?UTF-8?q?=E6=A6=82=E5=BF=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MesReportWorkController.java | 36 +++++++++---------- .../service/impl/IWCInterfaceServiceImpl.java | 7 ++-- .../op/open/service/impl/OpenServiceImpl.java | 7 ++-- .../main/resources/mapper/open/OpenMapper.xml | 2 +- .../com/op/plan/domain/ProOrderWorkorder.java | 9 +++++ .../service/impl/ProOrderServiceImpl.java | 6 ++++ .../mapper/plan/ProOrderWorkorderMapper.xml | 2 ++ 7 files changed, 46 insertions(+), 23 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 5571d0182..bdd116a7f 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 @@ -57,15 +57,15 @@ public class MesReportWorkController extends BaseController { @GetMapping("/list") public TableDataInfo list(MesReportWork mesReportWork) { startPage(); - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ - mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - mesReportWork.setCreateTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ +// mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// mesReportWork.setCreateTimeEnd(dateEndStr);//end +// } List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); return getDataTable(list); } @@ -77,15 +77,15 @@ public class MesReportWorkController extends BaseController { //@Log(title = "报工报表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, MesReportWork mesReportWork) { - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ - mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - mesReportWork.setCreateTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ +// mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// mesReportWork.setCreateTimeEnd(dateEndStr);//end +// } List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); ExcelUtil util = new ExcelUtil(MesReportWork.class); util.exportExcel(response, list, "报工报表数据"); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 116f6026a..6ef93e070 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -334,12 +334,15 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { || "1".equals(work.getEndReport())//最终报工标识 ){ + logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); //工单完成,关闭工单 - remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); + R r2= remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); + logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r2.getCode()+",返回信息:"+r2.getMsg()); work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); - //pro_work_order status->w4报工 + //pro_work_order status->w3报工--belong_work_order mesReportWorkMapper.updateWorkOrderStatus(work); + logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); } return R.ok(); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 6cc06aee5..f0e10cb36 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -203,12 +203,15 @@ public class OpenServiceImpl implements OpenService { || "1".equals(work.getEndReport())//最终报工标识 ){ + logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); //工单完成,关闭工单 - remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); + R rclose = remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); + logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); - //pro_work_order status->w3报工 + //pro_work_order status->w3报工--belong_work_order openMapper.updateWorkOrderStatus(work); + logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); } return R.ok(); } diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 2ca18af7b..4dd3944d3 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update pro_order_workorder set status = #{status} where workorder_code = #{workorderCode} + update pro_order_workorder set status = #{status} where belong_work_order = #{workorderCode} diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java index 2f7acc72a..01c5dba55 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java @@ -85,6 +85,15 @@ public class ProOrderWorkorder extends TreeEntity { // TODO 暂时存放线体编码 private String prodLineName; + private String belongWorkOrder; + + public String getBelongWorkOrder() { + return belongWorkOrder; + } + + public void setBelongWorkOrder(String belongWorkOrder) { + this.belongWorkOrder = belongWorkOrder; + } public String getProdLineName() { return prodLineName; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 3d0b61370..6b1a97339 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -265,6 +265,7 @@ public class ProOrderServiceImpl implements IProOrderService { // 获取单位换算值 Long conver = 1L; + String belongWorkOrder = "0"; while (run) { // 先进行当前订单拆分操作 // 1.设置工单信息,并更新订单信息至数据库 @@ -275,6 +276,11 @@ public class ProOrderServiceImpl implements IProOrderService { workOrder.setParentOrder(parentOrder.toString()); workOrder.setSortNo(splitOrderDTO.getSortNo()); + if("0".equals(workOrder.getParentOrder())){ + //20231127,加入belongWorkOrder概念 + belongWorkOrder = workOrder.getWorkorderCode(); + } + workOrder.setBelongWorkOrder(belongWorkOrder); // 将工单信息更新至数据库 proOrderWorkorderMapper.insertProOrderWorkorder(workOrder); diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 3528ec14c..e49372efb 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -203,6 +203,7 @@ end_flag, car_num, sort_no, + belong_work_order, #{workorderId}, @@ -238,6 +239,7 @@ #{endFlag}, #{carNum}, #{sortNo}, + #{belongWorkOrder}, From 8e815945eb16c042bd60848d8b5db60796cce1fa Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Mon, 27 Nov 2023 14:19:25 +0800 Subject: [PATCH 36/64] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SAP=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3=E5=92=8C@Bean=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=85=88=E5=90=8E=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/controller/SapController.java | 22 +++++ .../com/op/sap/service/SapOrderService.java | 5 + .../sap/service/impl/SapOrderServiceImpl.java | 93 +++++++++++++++++++ .../java/com/op/sap/util/SAPConnUtils.java | 2 + 4 files changed, 122 insertions(+) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index cb9f6ceae..393bb74ee 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -62,6 +62,17 @@ public class SapController extends BaseController { return sapOrderService.shopOrderSync(sapProOrder); } + /** + * SAP订单修改接口 + * 传递母订单号和母订单数量 + */ + @PostMapping("/shopUpdateSync") + @Log(title = "修改SAP订单", businessType = BusinessType.SAP) + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder){ + return sapOrderService.shopUpdateSync(sapProOrder); + } + + /** * 物料同步接口 * @param @@ -357,5 +368,16 @@ public class SapController extends BaseController { } + /** + * 采购订单接口 + */ + + @PostMapping("/sapPurchaseOrderSync") + @Log(title = "获取采购订单", businessType = BusinessType.SAP) + public R sapPurchaseOrderSync(@RequestBody SapPurchaseOrderQuery sapPurchaseOrderQuery){ + return sapOrderService.sapPurchaseOrderSync(sapPurchaseOrderQuery); + } + + } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index adf895b18..fe4273ae7 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -2,6 +2,7 @@ package com.op.sap.service; import com.op.common.core.domain.R; +import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.domain.sap.SapShopOrderQuery; @@ -44,4 +45,8 @@ public interface SapOrderService { */ R sapRFWOrder(SapRFW sapRFW); + + R sapPurchaseOrderSync(SapPurchaseOrderQuery sapPurchaseOrderQuery); + + R shopUpdateSync(SapShopOrderQuery sapProOrder); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 561d8c53f..96667412e 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -6,6 +6,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.sap.service.SapOrderService; import com.op.sap.util.SAPConnUtils; @@ -296,6 +297,98 @@ public class SapOrderServiceImpl implements SapOrderService { return R.fail(e.getMessage()); } } + + @Override + public R sapPurchaseOrderSync(SapPurchaseOrderQuery sapPurchaseOrderQuery) { + try { + // 获取调用 RFC 函数对象 + //获取连接 + //JCoDestination dest = SAPConnUtils.connect(); + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_GET_PROCURE"); + JCoParameterList jCoParameterList= func.getTableParameterList(); + System.out.println(jCoParameterList); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + /** S_EBELN 采购订单号 + * S_EBELP 行项目 + * S_MATNR 物料号 + * S_PWERK 工厂 + */ + if (!StringUtils.isNull(sapPurchaseOrderQuery.getEbeln())){ + JCoTable S_EBELN = func.getTableParameterList().getTable("S_EBELN"); + S_EBELN.appendRow(); + S_EBELN.setValue(Constants.SIGN, "I"); + S_EBELN.setValue(Constants.OPTION, "EQ"); + S_EBELN.setValue(Constants.LOW, sapPurchaseOrderQuery.getEbeln()); + } + if (!StringUtils.isNull(sapPurchaseOrderQuery.getEbeln())){ + JCoTable S_EBELN = func.getTableParameterList().getTable("S_EBELP"); + S_EBELN.appendRow(); + S_EBELN.setValue(Constants.SIGN, "I"); + S_EBELN.setValue(Constants.OPTION, "EQ"); + S_EBELN.setValue(Constants.LOW, sapPurchaseOrderQuery.getEbeln()); + } + if (!StringUtils.isNull(sapPurchaseOrderQuery.getMatnr())){ + JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR"); + S_MATNR.appendRow(); + S_MATNR.setValue(Constants.SIGN, "I"); + S_MATNR.setValue(Constants.OPTION, "EQ"); + S_MATNR.setValue(Constants.LOW, sapPurchaseOrderQuery.getMatnr()); + } + + if (!StringUtils.isNull(sapPurchaseOrderQuery.getPwerk())){ + JCoTable S_PWERK = func.getTableParameterList().getTable("S_PWERK"); + S_PWERK.appendRow(); + S_PWERK.setValue(Constants.SIGN, "I"); + S_PWERK.setValue(Constants.OPTION, "EQ"); + S_PWERK.setValue(Constants.LOW, sapPurchaseOrderQuery.getPwerk()); + } + func.execute(dest);//执行调用函数 + // 获取 内表 - LT_PROCURE + JCoTable maraTable = func.getTableParameterList().getTable("LT_PROCURE"); + JCoRecordMetaData metaData = maraTable.getRecordMetaData(); + System.out.println("###" + metaData.toString()); + return R.ok(); + }catch (Exception e){ + return R.fail(e.getMessage()); + } + + } + + @Override + public R shopUpdateSync(SapShopOrderQuery sapProOrder) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE"); + // 配置传入参数 + JCoParameterList jCoParameterList = func.getImportParameterList(); + System.out.println(jCoParameterList); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + if (StringUtils.isEmpty(sapProOrder.getAufnr())) + { + return R.fail("订单号为空!"); + } + if (StringUtils.isEmpty(sapProOrder.getQuantity())) + { + return R.fail("数量为空!"); + } + + jCoParameterList.setValue("P_AUFNR",sapProOrder.getAufnr()); + jCoParameterList.setValue("P_QUANTITY",sapProOrder.getQuantity()); + func.execute(dest);//执行调用函数 + JCoParameterList J= func.getExportParameterList(); + System.out.println(J); + String MESSAGE= func.getExportParameterList().getString("MESSAGE"); + System.out.println(MESSAGE); + return R.ok(MESSAGE); + }catch (Exception e){ + return R.fail(e.getMessage()); + } + } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java index d187ff823..7266fb09a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java @@ -7,6 +7,7 @@ import com.sap.conn.jco.JCoException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; @Component @@ -16,6 +17,7 @@ public class SAPConnUtils { private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL"; @Bean + @DependsOn("CreateABAP") public JCoDestination connect() { JCoDestination destination = null; try { From 2d2cdda9ec3a82c1f0c9982fb46231fe26a4835f Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Mon, 27 Nov 2023 14:31:56 +0800 Subject: [PATCH 37/64] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/sap/SapShopOrderQuery.java | 9 ++++ .../sap/domain/vo/SapPurchaseOrderQuery.java | 48 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java index ac56fb1fa..69ac21f81 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java @@ -10,6 +10,15 @@ public class SapShopOrderQuery { private String matnr; private String erdat; private String werk; + private String quantity; + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } public String getWerk() { return werk; diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java new file mode 100644 index 000000000..01c2c742f --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java @@ -0,0 +1,48 @@ +package com.op.sap.domain.vo; + + +public class SapPurchaseOrderQuery { + /** + * S_EBELN 采购订单号 + * S_EBELP 行项目 + * S_MATNR 物料号 + * S_PWERK 工厂 + */ + private String ebeln; + private String ebelp; + private String matnr; + private String pwerk; + + + public String getEbeln() { + return ebeln; + } + + public void setEbeln(String ebeln) { + this.ebeln = ebeln; + } + + public String getEbelp() { + return ebelp; + } + + public void setEbelp(String ebelp) { + this.ebelp = ebelp; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getPwerk() { + return pwerk; + } + + public void setPwerk(String pwerk) { + this.pwerk = pwerk; + } +} From 41a26c41c53ec6a1227a45197d6a02a2e2afe41f Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 27 Nov 2023 14:40:44 +0800 Subject: [PATCH 38/64] =?UTF-8?q?update=20-=20=E8=83=BD=E6=BA=90=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/energy/base/service/impl/SysConfigServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java index d0c0d9995..174109974 100644 --- a/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java +++ b/op-modules/op-energy/src/main/java/com/op/energy/base/service/impl/SysConfigServiceImpl.java @@ -33,10 +33,10 @@ public class SysConfigServiceImpl implements ISysConfigService { /** * 项目启动时,初始化参数到缓存 */ - @PostConstruct - public void init() { - loadingConfigCache(); - } +// @PostConstruct +// public void init() { +// loadingConfigCache(); +// } /** * 查询参数配置信息 From d72e49f69001800d2b07cd43cb2cdf27dfa9854d Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Mon, 27 Nov 2023 14:43:36 +0800 Subject: [PATCH 39/64] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/system/api/domain/sap/SapShopOrderQuery.java | 1 + 1 file changed, 1 insertion(+) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java index 69ac21f81..25e5d2b7c 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java @@ -12,6 +12,7 @@ public class SapShopOrderQuery { private String werk; private String quantity; + public String getQuantity() { return quantity; } From 34e131289b241eff751accd95b58bebb960714cb Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 15:13:35 +0800 Subject: [PATCH 40/64] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=AD=90=E6=AF=8D=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/mapper/MesReportWorkMapper.java | 2 ++ .../service/impl/IWCInterfaceServiceImpl.java | 8 +++++-- .../mapper/mes/MesReportWorkMapper.xml | 4 ++++ .../java/com/op/open/mapper/OpenMapper.java | 2 ++ .../op/open/service/impl/OpenServiceImpl.java | 21 ++++++------------- .../main/resources/mapper/open/OpenMapper.xml | 4 ++++ 6 files changed, 24 insertions(+), 17 deletions(-) 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 74694cd0d..00ef2696c 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 @@ -108,4 +108,6 @@ public interface MesReportWorkMapper { List getMesListEquip(EquEquipmentDTO qo); List getBatchList(ProOrderWorkorder proOrderWorkorder); + + List getSapWorkOrder(String workorderCode); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 6ef93e070..0c42940d3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -336,8 +336,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); //工单完成,关闭工单 - R r2= remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); - logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r2.getCode()+",返回信息:"+r2.getMsg()); + List sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 + for(String sapWorkOrder:sapWorkOrders){ + R r2= remoteSapService.sapCloseOrder(sapWorkOrder); + logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + } + work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); //pro_work_order status->w3报工--belong_work_order 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 a4fcf4a93..34401f485 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 @@ -443,6 +443,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where powb.del_flag = '0' and pow.del_flag = '0' and pow.workorder_code = #{workorderCode} + insert into mes_report_work diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 9ab9d523e..ab2138534 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -41,5 +41,7 @@ public interface OpenMapper { ProOrderWorkorderDTO getOrderByCode(String workorderCode); List getLGInfo(WCSDTO wcsDTO); + + List getSapWorkOrder(String workorderCode); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index f0e10cb36..49ba40346 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -204,9 +204,13 @@ public class OpenServiceImpl implements OpenService { "1".equals(work.getEndReport())//最终报工标识 ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); + //工单完成,关闭工单 - R rclose = remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); - logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 + for(String sapWorkOrder:sapWorkOrders){ + R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); + logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + } work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); //pro_work_order status->w3报工--belong_work_order @@ -222,19 +226,6 @@ public class OpenServiceImpl implements OpenService { return openMapper.getLGInfo(wcsDTO); } -// //根据工单子单编码获取最顶级订单的母单 -// private ProOrderWorkorderDTO getTopOrder(String workorderCode) { -// //pro_order_workorder -// ProOrderWorkorderDTO topOrder = openMapper.getOrderByCode(workorderCode); -// while (!"0".equals(topOrder.getParentOrder()) && StringUtils.isNotEmpty(topOrder.getParentOrder())) { -// //pro_order_workorder -// topOrder = openMapper.getOrderByCode(topOrder.getParentOrder()); -// } -// return topOrder; -// } - - - public static void main(String args[]){ DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate today = LocalDate.now(); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 4dd3944d3..40ab74cef 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -122,5 +122,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join pro_order_workorder pow on pw.workorder_id = pow.workorder_id where CONVERT(varchar(10),plan_time, 120) = #{reqTime} + From a6070a59723501101e8aafc77854848651f10bc7 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 15:53:10 +0800 Subject: [PATCH 41/64] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E6=8E=A5=E5=8F=A3:?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=B7=A5=E5=8D=95init=E3=80=81=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AFinit=E3=80=81?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E8=B4=A8=E9=87=8Finit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceInterfaceController.java | 19 +++++ .../com/op/device/domain/vo/IEquipmentVO.java | 75 +++++++++++++++++++ .../device/domain/vo/IRepairWorkOrderVO.java | 71 ++++++++++++++++++ .../device/mapper/DeviceInterfaceMapper.java | 28 +++++++ .../service/IDeviceInterfaceService.java | 12 +++ .../impl/DeviceInterfaceServiceImpl.java | 67 +++++++++++++++-- .../mapper/device/DeviceInterfaceMapper.xml | 43 +++++++++++ 7 files changed, 308 insertions(+), 7 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java create mode 100644 op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index ae5352175..1e4a53c3b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -30,4 +30,23 @@ public class DeviceInterfaceController { return deviceInterfaceService.getRepairWorkOrder(); } + /** + * 获取设备信息 + * @return + */ + @GetMapping("/getEquipmentInfo") + public AjaxResult getEquipmentInfo() { + return deviceInterfaceService.getEquipmentInfo(); + } + + /** + * 获取设备维修质量TOP10 + * 设备维修质量:故障时间/故障次数 + * @return + */ + @GetMapping("/getRepairQuantity") + public AjaxResult getRepairQuantity() { + return deviceInterfaceService.getRepairQuantity(); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java new file mode 100644 index 000000000..fa8fa23d7 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -0,0 +1,75 @@ +package com.op.device.domain.vo; + +// 设备信息VO、设备维修质量VO +public class IEquipmentVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 所在部门 + private String department; + // 状态 + private String status; + // 设备故障率 + private Double failureRate; + // 设备有效利用率 + private Double utilizationRatio; + // 设备维修质量 + private Double rapairQuantity; + + public Double getRapairQuantity() { + return rapairQuantity; + } + + public void setRapairQuantity(Double rapairQuantity) { + this.rapairQuantity = rapairQuantity; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Double getFailureRate() { + return failureRate; + } + + public void setFailureRate(Double failureRate) { + this.failureRate = failureRate; + } + + public Double getUtilizationRatio() { + return utilizationRatio; + } + + public void setUtilizationRatio(Double utilizationRatio) { + this.utilizationRatio = utilizationRatio; + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java index 1151ebc66..b8416871a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java @@ -1,6 +1,77 @@ package com.op.device.domain.vo; +import java.util.Date; + // 看板维修工单返回VO public class IRepairWorkOrderVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 故障描述 + private String workFaultDesc; + // 维修班组 + private String teamName; + // 是否立即维修 + private String workHandle; + // 计划维修时间 + private Date workPlanTime; + // 设备位置 + private String equipmentLocation; + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getWorkFaultDesc() { + return workFaultDesc; + } + + public void setWorkFaultDesc(String workFaultDesc) { + this.workFaultDesc = workFaultDesc; + } + + public String getTeamName() { + return teamName; + } + + public void setTeamName(String teamName) { + this.teamName = teamName; + } + + public String getWorkHandle() { + return workHandle; + } + + public void setWorkHandle(String workHandle) { + this.workHandle = workHandle; + } + + public Date getWorkPlanTime() { + return workPlanTime; + } + + public void setWorkPlanTime(Date workPlanTime) { + this.workPlanTime = workPlanTime; + } + + public String getEquipmentLocation() { + return equipmentLocation; + } + + public void setEquipmentLocation(String equipmentLocation) { + this.equipmentLocation = equipmentLocation; + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java new file mode 100644 index 000000000..d5e16ac35 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -0,0 +1,28 @@ +package com.op.device.mapper; + +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; + +import java.util.List; + +public interface DeviceInterfaceMapper { + + /** + * 查询待维修工单信息-看板 + * @return + */ + List selectEquRepairWorkOrderList(); + + /** + * 获取所有设备信息 + * @return + */ + List selectEquipmentList(); + + /** + * 获取维修工单中设备信息 + * @return + */ + List selectRepairEquipmentList(); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index e8d229182..da05dd4fb 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -12,4 +12,16 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getRepairWorkOrder(); + + /** + * 获取设备信息 + * @return + */ + AjaxResult getEquipmentInfo(); + + /** + * 设备维修质量TOP10 + * @return + */ + AjaxResult getRepairQuantity(); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 1fe6f3c88..acc321811 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -3,6 +3,9 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; +import com.op.device.mapper.DeviceInterfaceMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; @@ -20,19 +23,69 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private DeviceInterfaceMapper deviceInterfaceMapper; /** - * 获取维修工单 + * 获取待维修的维修工单 + * * @return */ @Override @DS("#header.poolName") public AjaxResult getRepairWorkOrder() { - // 获取待维修的工单 - EquRepairWorkOrder workTemp = new EquRepairWorkOrder(); - workTemp.setWorkStatus("0"); - List workOrderList = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(workTemp); -// EquRepairWorkOrder workOrder = equRepairWorkOrderMapper.selectWaitingWorkOrder(); - return success(workOrderList); + List workOrderVOList = deviceInterfaceMapper.selectEquRepairWorkOrderList(); + for (IRepairWorkOrderVO orderVO : workOrderVOList) { + if (orderVO.getWorkHandle().equals("0")) { + orderVO.setWorkHandle("立即"); + } else { + orderVO.setWorkHandle("计划"); + } + } + return success(workOrderVOList); + } + + /** + * 获取设备信息 + * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) + * 设备有效利用率:(试机产量/理论产量) + * + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentInfo() { + // 获取所有设备信息 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { + // TODO 设备状态待修改 + if (equipmentVO.getStatus().equals("1")) { + equipmentVO.setStatus("正常"); + } else { + equipmentVO.setStatus("停用"); + } + // TODO 设备故障停机率 + equipmentVO.setFailureRate(0.90); + // TODO 设备有效利用率 + equipmentVO.setUtilizationRatio(0.80); + } + return success(equipmentVOList); + } + + /** + * 获取设备维修质量TOP10 + * 设备维修质量:故障时间/故障次数 + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getRepairQuantity() { + List equipmentVOList = deviceInterfaceMapper.selectRepairEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { + // TODO 设备维修质量 + // TODO 排序TOP10 + equipmentVO.setRapairQuantity(0.70); + } + return success(equipmentVOList); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml new file mode 100644 index 000000000..72c636d12 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file From 2ce35572f2ae91403365e49d97724c4b7e5669ed Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 16:50:28 +0800 Subject: [PATCH 42/64] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=8B=86=E5=88=86?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5sap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 4 ++++ .../api/factory/RemoteSapFallbackFactory.java | 6 ++++++ .../service/impl/ProOrderServiceImpl.java | 15 +++++++++++++++ .../impl/ProOrderWorkorderServiceImpl.java | 19 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index ab5b53b6d..6b8d2a27d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -24,6 +24,10 @@ public interface RemoteSapService { @PostMapping("/sap/shopOrderSync") public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder); + /**传递母订单号和母订单数量**/ + @PostMapping("/sap/shopUpdateSync") + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder); + @PostMapping("/sap/sapRouterSync") public R sapRouterSync(@RequestBody SapRouterQuery sapRouterQuery); diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index a89735e02..fb002c675 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -7,6 +7,7 @@ import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -73,6 +74,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory Date: Mon, 27 Nov 2023 16:56:32 +0800 Subject: [PATCH 43/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E8=AE=BE=E5=A4=87=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=90=AF=E7=94=A8+=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BaseEquipmentController.java | 18 +++++++++++++++--- .../java/com/op/wms/domain/BaseEquipment.java | 14 +++++++++++++- .../op/wms/mapper/BaseEquipmentMapper.java | 5 ++++- .../op/wms/service/IBaseEquipmentService.java | 5 ++++- .../impl/BaseEquipmentServiceImpl.java | 19 +++++++++++++++++-- .../mapper/wms/BaseEquipmentMapper.xml | 17 ++++++++++++++++- 6 files changed, 69 insertions(+), 9 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index 1421808f0..1ee831377 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -7,7 +7,10 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import com.op.common.core.domain.ExcelCol; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.poi.ExcelMapUtil; +import com.op.common.security.utils.SecurityUtils; +import com.op.system.api.domain.SysUser; import com.op.wms.domain.EquSpareEquipment; import com.op.wms.domain.WmsSparePartsLedger; import com.op.wms.service.IBaseEquipmentService; @@ -114,7 +117,6 @@ public class BaseEquipmentController extends BaseController { /** * 查询设备类型 */ -// @RequiresPermissions("wms:equipment:getEquipmentTypeList") @GetMapping("/getEquipmentTypeList") public TableDataInfo getEquipmentTypeList(BaseEquipment baseEquipment) { List list = baseEquipmentService.getEquipmentTypeList(baseEquipment); @@ -125,8 +127,8 @@ public class BaseEquipmentController extends BaseController { * 查询设备备件 */ @GetMapping("/getSparePartsList") - public TableDataInfo getSparePartsList(BaseEquipment baseEquipment) { - List list = baseEquipmentService.getSparePartsList(baseEquipment); + public TableDataInfo getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + List list = baseEquipmentService.getSparePartsList(wmsSparePartsLedger); return getDataTable(list); } @@ -218,4 +220,14 @@ public class BaseEquipmentController extends BaseController { return baseEquipmentService.importFile(orderList); } + /** + * 状态修改 + */ + @RequiresPermissions("wms:equipment:edit") + @Log(title = "修改设备状态", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody BaseEquipment baseEquipment) { + return toAjax(baseEquipmentService.updateBaseEquipmentStatus(baseEquipment)); + } + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java index 840fb3170..3aab7b213 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java @@ -61,7 +61,7 @@ public class BaseEquipment extends BaseEntity { private String workshopName; /** 设备状态 */ - @Excel(name = "设备状态") + @Excel(name = "设备是否启用") private String status; /** 预留字段1 */ @@ -207,6 +207,10 @@ public class BaseEquipment extends BaseEntity { @Excel(name = "工厂号") private String factoryCode; + /** 设备状态 */ + @Excel(name = "设备状态") + private String equipmentStatus; + private String imageFileList; private String barCodeFileList; @@ -619,6 +623,14 @@ public class BaseEquipment extends BaseEntity { return factoryCode; } + //设备状态 + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } + public String getEquipmentStatus() { + return equipmentStatus; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java index 5b7d0208d..a2132e720 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java @@ -81,7 +81,7 @@ public interface BaseEquipmentMapper { Long getEquipmentId(String equipmentCode); //查询备件 - List getSparePartsList(BaseEquipment baseEquipment); + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); //绑定备品备件 public int bindSpareParts(EquSpareEquipment equSpareEquipment); @@ -107,4 +107,7 @@ public interface BaseEquipmentMapper { //设备 BaseEquipment selectExistByEquipmentCode(String equipmentCode); + + //更新设备状态 + Integer updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java index 449a8105d..a8562b48c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java @@ -69,11 +69,14 @@ public interface IBaseEquipmentService { List getEquipmentTypeList(BaseEquipment baseEquipment); //查询设备备品备件 - List getSparePartsList(BaseEquipment baseEquipment); + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); //查询设备备品备件右侧列表 public List getRightSparePartsList(BaseEquipment baseEquipment); //导入设备基础数据文件 AjaxResult importFile(List equipmentList); + + //更改设备状态 + int updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java index 0dd6c1cf7..472f40a9a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java @@ -372,8 +372,8 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { */ @Override @DS("#header.poolName") - public List getSparePartsList(BaseEquipment baseEquipment) { - return baseEquipmentMapper.getSparePartsList(baseEquipment); + public List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + return baseEquipmentMapper.getSparePartsList(wmsSparePartsLedger); } /** @@ -481,4 +481,19 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { return failEquipment; } + /** + * 修改设备管理 + * + * @param baseEquipment 设备管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseEquipmentStatus(BaseEquipment baseEquipment) { + baseEquipment.setUpdateBy(SecurityUtils.getUsername()); + baseEquipment.setUpdateTime(DateUtils.getNowDate()); + Integer list = baseEquipmentMapper.updateBaseEquipmentStatus(baseEquipment); + return list; + } + } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml index b8a74f66a..97f14bfed 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml @@ -47,6 +47,7 @@ + @@ -159,7 +160,9 @@ asset_head, fixed_asset_code, department, - equipment_head + equipment_head, + factory_code, + equipment_status from base_equipment @@ -201,6 +204,7 @@ and department = #{department} and sap_asset = #{sapAsset} and factory_code = #{factoryCode} + and equipment_status = #{equipmentStatus} and del_flag ='0' @@ -254,6 +258,7 @@ sap_asset, equipment_head, factory_code, + equipment_status, #{equipmentCode}, @@ -296,6 +301,7 @@ #{sapAsset}, #{equipmentHead}, #{factoryCode}, + equipmentStatus, @@ -342,6 +348,7 @@ sap_asset = #{sapAsset}, equipment_head = #{equipmentHead}, factory_code = #{factoryCode}, + equipment_status = #{equipmentStatus}, where equipment_id = #{equipmentId} @@ -514,4 +521,12 @@ and del_flag ='0' + + update base_equipment + + status = #{status}, + + where equipment_id = #{equipmentId} + + \ No newline at end of file From 116c224f452ae6c76f8ace591c2f0e705a5c38d8 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 17:37:15 +0800 Subject: [PATCH 44/64] 1 --- .../controller/DevicePDAController.java | 11 +- .../com/op/device/domain/vo/IEquipmentVO.java | 20 +- .../op/device/service/IDevicePDAService.java | 17 +- .../impl/DeviceInterfaceServiceImpl.java | 11 +- .../service/impl/DevicePDAServiceImpl.java | 316 +++++++++--------- .../mapper/device/DeviceInterfaceMapper.xml | 8 +- 6 files changed, 205 insertions(+), 178 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 8a2cb991e..2a89399a2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -31,6 +31,7 @@ public class DevicePDAController extends BaseController { /** * 获取今日巡检任务工单list + * * @param pdadto * @return */ @@ -41,6 +42,7 @@ public class DevicePDAController extends BaseController { /** * 获取巡检记录 + * * @param pdadto * @return */ @@ -51,6 +53,7 @@ public class DevicePDAController extends BaseController { /** * 获取任务详情 + * * @param equOrder * @return */ @@ -60,7 +63,8 @@ public class DevicePDAController extends BaseController { } /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 + * * @param equOrder * @return */ @@ -70,8 +74,10 @@ public class DevicePDAController extends BaseController { } //报修 + /** * 新增手持报修记录 + * * @param equRepairOrder * @return */ @@ -81,6 +87,7 @@ public class DevicePDAController extends BaseController { } //维修 + /** * 获取维修记录(待处理) * @@ -143,6 +150,7 @@ public class DevicePDAController extends BaseController { /** * 填写维修记录 + * * @param equRepairWorkOrder * @return */ @@ -159,6 +167,7 @@ public class DevicePDAController extends BaseController { /** * 开始保养任务 + * * @param pdadto * @return */ diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java index fa8fa23d7..a079d7ac3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -8,14 +8,22 @@ public class IEquipmentVO { private String equipmentCode; // 所在部门 private String department; - // 状态 - private String status; // 设备故障率 private Double failureRate; // 设备有效利用率 private Double utilizationRatio; // 设备维修质量 private Double rapairQuantity; + // 设备状态 + private String equipmentStatus; + + public String getEquipmentStatus() { + return equipmentStatus; + } + + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } public Double getRapairQuantity() { return rapairQuantity; @@ -49,14 +57,6 @@ public class IEquipmentVO { this.department = department; } - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - public Double getFailureRate() { return failureRate; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index 79af434c2..cadf7322f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -16,12 +16,14 @@ public interface IDevicePDAService { /** * 获取今日巡检任务工单list + * * @return */ AjaxResult getTodayTask(PDADTO pdadto); /** * 获取巡检记录 + * * @param pdadto * @return */ @@ -29,37 +31,45 @@ public interface IDevicePDAService { /** * 获取任务详情 + * * @param equOrder * @return */ AjaxResult getInspectionOrderInfo(EquOrder equOrder); /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 + * * @param equOrder * @return */ AjaxResult updateInspectionRecord(EquOrder equOrder); //报修 + /** * 手持新增报修记录 + * * @param equRepairOrder * @return */ public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder); //维修 + /** * 手持查询维修记录 (待处理和已经维修完成) + * * @param equRepairWorkOrder * @return */ public AjaxResult getMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder); //班组 + /** * 维修班组 + * * @param equTeamUser * @return */ @@ -67,6 +77,7 @@ public interface IDevicePDAService { /** * 手持是否停机 + * * @param equRepairWorkOrder * @return */ @@ -74,6 +85,7 @@ public interface IDevicePDAService { /** * 查询设备详细信息 + * * @param equipmentId * @return */ @@ -81,6 +93,7 @@ public interface IDevicePDAService { /** * 查询维修工单 + * * @param workId * @return */ @@ -88,6 +101,7 @@ public interface IDevicePDAService { /** * 填写维修工单 + * * @param equRepairWorkOrder * @return */ @@ -101,6 +115,7 @@ public interface IDevicePDAService { /** * 开始保养任务 + * * @param pdadto * @return */ diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index acc321811..a56dec8f2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -58,14 +58,15 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 获取所有设备信息 List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); for (IEquipmentVO equipmentVO : equipmentVOList) { - // TODO 设备状态待修改 - if (equipmentVO.getStatus().equals("1")) { - equipmentVO.setStatus("正常"); + // 设备状态 + if (equipmentVO.getEquipmentStatus().equals("1")) { + equipmentVO.setEquipmentStatus("正常"); } else { - equipmentVO.setStatus("停用"); + equipmentVO.setEquipmentStatus("停用"); } // TODO 设备故障停机率 - equipmentVO.setFailureRate(0.90); + + equipmentVO.setFailureRate(0.10); // TODO 设备有效利用率 equipmentVO.setUtilizationRatio(0.80); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 0f385a171..c744876d3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -56,7 +56,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquEquipmentMapper equEquipmentMapper; @Autowired - private EquSpareApplyMapper equSpareApplyMapper; + private EquSpareApplyMapper equSpareApplyMapper; @Autowired private EquFileMapper equFileMapper; @@ -165,7 +165,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 * * @param equOrder * @return @@ -178,11 +178,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { EquRepairOrder repairOrder = equRepairOrderMapper.selectEquRepairOrderByRepairCode(equOrder.getRepairCode()); - if (repairOrder==null) { - return error(500,"未查询到报修单信息!"); - }else { - if (!repairOrder.getOrderStatus().equals("待审核")){ - return error(500,"报修单已审核,不可修改记录!"); + if (repairOrder == null) { + return error(500, "未查询到报修单信息!"); + } else { + if (!repairOrder.getOrderStatus().equals("待审核")) { + return error(500, "报修单已审核,不可修改记录!"); } } } @@ -228,7 +228,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { hasError = true; standard.setDetailReach("0"); } - }else { + } else { // 未达标 standard.setErrorFlag("0"); if (standard.getDetailReach().equals("0")) { @@ -255,10 +255,10 @@ public class DevicePDAServiceImpl implements IDevicePDAService { boolean checkRepair = false; - if (equOrder.getRepairCode() == null){ + if (equOrder.getRepairCode() == null) { checkRepair = true; - }else { - if (equOrder.getRepairCode().isEmpty()){ + } else { + if (equOrder.getRepairCode().isEmpty()) { checkRepair = true; } } @@ -270,7 +270,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); //在主表中存入报修单号信息 equOrder.setRepairCode(equRepairOrder.getOrderCode()); @@ -289,19 +289,19 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); // 报修来源 - if (equOrder.getPlanType().equals("inspection")){ + if (equOrder.getPlanType().equals("inspection")) { equRepairOrder.setOrderSource("巡检"); } - if (equOrder.getPlanType().equals("spotInspection")){ + if (equOrder.getPlanType().equals("spotInspection")) { equRepairOrder.setOrderSource("点检"); } - if (equOrder.getPlanType().equals("maintenance")){ + if (equOrder.getPlanType().equals("maintenance")) { equRepairOrder.setOrderSource("保养"); } equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); } @@ -344,8 +344,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } //////////////////////报修 + /** - * 新增报修记录 + * 新增报修记录 * * @param equRepairOrder * @return @@ -362,7 +363,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equRepairOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); @@ -370,7 +371,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); //删除照片 不需要清照片 因为是新增 @@ -435,6 +436,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { /** * 开始保养任务 + * TODO 修改设备状态 + * * @param pdadto * @return */ @@ -490,6 +493,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { return error(); } } + /** * 获取维修人员 * @@ -520,7 +524,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //不停机 那么实际停机开始时间和实际停机结束时间都没有 //如果停机 那么实际停机时间就是传入的时间 equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); - if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); @@ -535,8 +539,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * - * * @param equipmentId * @return */ @@ -544,8 +546,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectEquEquipmentByEquEquipmentId(Long equipmentId) { try { - EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); - return success(list); + EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); + return success(list); } catch (Exception e) { return error(); } @@ -561,43 +563,43 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectPdaRepairWorkOrderDetails(String workId) { try { - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); - //查询对应检查项信息 - EquOrder equOrder = new EquOrder(); - equOrder.setWorkCode(list.getWorkCode()); - //检查项 - List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); - //每个检查项对应的检测标准 - for(EquOrder equOrder1 :checkLists){ - EquOrderStandard equOrderStandard = new EquOrderStandard(); - equOrderStandard.setOrderCode(equOrder1.getOrderCode()); - equOrderStandard.setParentCode(equOrder1.getId()); - List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); - for(EquOrderStandard standardList :standardLists){ - //每个检查标准里面的照片 - List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); - if (!CollectionUtils.isEmpty(files)) { - standardList.setPicturePaths(files); + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); + //查询对应检查项信息 + EquOrder equOrder = new EquOrder(); + equOrder.setWorkCode(list.getWorkCode()); + //检查项 + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); + //每个检查项对应的检测标准 + for (EquOrder equOrder1 : checkLists) { + EquOrderStandard equOrderStandard = new EquOrderStandard(); + equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); + List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); + for (EquOrderStandard standardList : standardLists) { + //每个检查标准里面的照片 + List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + if (!CollectionUtils.isEmpty(files)) { + standardList.setPicturePaths(files); + } + standardList.setDetailReach(standardList.getRepairReach()); + standardList.setActualValue(standardList.getRepairValue()); } - standardList.setDetailReach(standardList.getRepairReach()); - standardList.setActualValue(standardList.getRepairValue()); + equOrder1.setStandardList(standardLists); } - equOrder1.setStandardList(standardLists); - } - list.setDetailList(checkLists); + list.setDetailList(checkLists); - //备件申领单 - EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); - equRepairWorkOrder.setWorkCode(list.getWorkCode()); - List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); - list.setApplyList(applyLists); + //备件申领单 + EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + equRepairWorkOrder.setWorkCode(list.getWorkCode()); + List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); + list.setApplyList(applyLists); - //文件 - List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); - if (!CollectionUtils.isEmpty(files)) { - list.setFiles(files); - } - return success(list); + //文件 + List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); + if (!CollectionUtils.isEmpty(files)) { + list.setFiles(files); + } + return success(list); } catch (Exception e) { return error(); } @@ -612,114 +614,114 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - //判断是否停机 - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); - if(list.getWorkDownMachine().equals("1")){ - //维修结束时间、维修真正停机时间 - equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); - } - equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //更新每一项点检/巡检检查项信息 - List checkLists = equRepairWorkOrder.getDetailList(); - for(EquOrder checkList:checkLists){ - checkList.setUpdateBy(SecurityUtils.getUsername()); - checkList.setUpdateTime(DateUtils.getNowDate()); - List standardLists = checkList.getStandardList(); - for(EquOrderStandard standardList :standardLists){ - //先删除每个检查项标准图片 - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); - //图片 - if (StringUtils.isNotEmpty(standardList.getPicturePath())) { - String[] ids = standardList.getPicturePath().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(standardList.getId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equOrderStandardMapper.insertBaseFileBatch(files); + //判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if (list.getWorkDownMachine().equals("1")) { + //维修结束时间、维修真正停机时间 + equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); + } + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); + //更新每一项点检/巡检检查项信息 + List checkLists = equRepairWorkOrder.getDetailList(); + for (EquOrder checkList : checkLists) { + checkList.setUpdateBy(SecurityUtils.getUsername()); + checkList.setUpdateTime(DateUtils.getNowDate()); + List standardLists = checkList.getStandardList(); + for (EquOrderStandard standardList : standardLists) { + //先删除每个检查项标准图片 + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); + //图片 + if (StringUtils.isNotEmpty(standardList.getPicturePath())) { + String[] ids = standardList.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(standardList.getId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); } - standardList.setRepairReach(standardList.getDetailReach()); - standardList.setRepairValue(standardList.getActualValue()); - standardList.setUpdateTime(DateUtils.getNowDate()); - standardList.setUpdateBy(SecurityUtils.getUsername()); - equOrderStandardMapper.updateActualValues(standardList); + equOrderStandardMapper.insertBaseFileBatch(files); } - equOrderMapper.updateEquOrder(checkList); + standardList.setRepairReach(standardList.getDetailReach()); + standardList.setRepairValue(standardList.getActualValue()); + standardList.setUpdateTime(DateUtils.getNowDate()); + standardList.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandardMapper.updateActualValues(standardList); } + equOrderMapper.updateEquOrder(checkList); + } - //新建申领单 - List equSpareApplies = equRepairWorkOrder.getApplyList(); - for(EquSpareApply equSpareApply:equSpareApplies){ - //生成领料单code - String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); - String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); - //十五位单号 - equSpareApply.setApplyCode("AW" + code + serialNum); - equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); - //备品备件规格型号!!!!! + //新建申领单 + List equSpareApplies = equRepairWorkOrder.getApplyList(); + for (EquSpareApply equSpareApply : equSpareApplies) { + //生成领料单code + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + //十五位单号 + equSpareApply.setApplyCode("AW" + code + serialNum); + equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + //备品备件规格型号!!!!! // equSpareApply.setSpareModel(equSpareApply.getS); - equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); - equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); - equSpareApply.setApplyPeople(SecurityUtils.getUsername()); - equSpareApply.setCreateBy(SecurityUtils.getUsername()); - equSpareApply.setCreateTime(DateUtils.getNowDate()); - equSpareApply.setApplyTime(DateUtils.getNowDate()); - equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); - equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); - equSpareApplyMapper.insertEquSpareApply(equSpareApply); + equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); + equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); + equSpareApply.setCreateBy(SecurityUtils.getUsername()); + equSpareApply.setCreateTime(DateUtils.getNowDate()); + equSpareApply.setApplyTime(DateUtils.getNowDate()); + equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); + equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + equSpareApplyMapper.insertEquSpareApply(equSpareApply); - //更新完备品申领单后,更新库存 - SparePartsLedger sparePartsLedger = new SparePartsLedger(); - sparePartsLedger.setStorageId(equSpareApply.getStorageId()); - BigDecimal applyNum = equSpareApply.getSpareQuantity(); - BigDecimal amount = equSpareApply.getAmount(); - sparePartsLedger.setAmount(amount.subtract(applyNum)); - sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); - } + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); + } - //图片 - //先删除每个维修工单对应图片 - equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); - if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { - String[] ids = equRepairWorkOrder.getFileList().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(equRepairWorkOrder.getWorkId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equRepairWorkOrderMapper.insertBaseFileBatch(files); + //图片 + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { + String[] ids = equRepairWorkOrder.getFileList().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); } - //维修人:当前登录人 - //维修状态 - equRepairWorkOrder.setWorkStatus("1"); - //维修结束时间 - equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - //需要更新设备状态????这里没做 - return success("提交成功,维修完成!"); + equRepairWorkOrderMapper.insertBaseFileBatch(files); + } + //维修人:当前登录人 + //维修状态 + equRepairWorkOrder.setWorkStatus("1"); + //维修结束时间 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + //需要更新设备状态????这里没做 + return success("提交成功,维修完成!"); } /** diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 72c636d12..6d07432ac 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,10 +21,10 @@ From 9b8b47ae1cb6b56155aacb51b7edba939e828317 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 17:37:30 +0800 Subject: [PATCH 45/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/domain/EquOperationRecord.java | 173 ++++++++++++++++++ .../mapper/EquOperationRecordMapper.java | 61 ++++++ .../device/EquOperationRecordMapper.xml | 123 +++++++++++++ 3 files changed, 357 insertions(+) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java create mode 100644 op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java new file mode 100644 index 000000000..6c435598f --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -0,0 +1,173 @@ +package com.op.device.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 设备运行记录对象 equ_operation_record + * + * @author Open Platform + * @date 2023-11-27 + */ +public class EquOperationRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String id; + + /** 设备编码 */ + @Excel(name = "设备编码") + private String equipmentCode; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 类型(on:开机、off:关机) */ + @Excel(name = "类型(on:开机、off:关机)") + private String type; + + /** 维护类型(upkeep:保养、repair:维修) */ + @Excel(name = "维护类型", readConverterExp = "u=pkeep:保养、repair:维修") + private String maintenanceType; + + /** 关联记录id */ + @Excel(name = "关联记录id") + private String parentId; + + /** 工厂 */ + @Excel(name = "工厂") + private String factoryCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除标识 */ + private String delFlag; + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getEquipmentCode() { + return equipmentCode; + } + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getStartTime() { + return startTime; + } + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getEndTime() { + return endTime; + } + public void setType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + public void setMaintenanceType(String maintenanceType) { + this.maintenanceType = maintenanceType; + } + + public String getMaintenanceType() { + return maintenanceType; + } + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getParentId() { + return parentId; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("equipmentCode", getEquipmentCode()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("type", getType()) + .append("maintenanceType", getMaintenanceType()) + .append("parentId", getParentId()) + .append("factoryCode", getFactoryCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java new file mode 100644 index 000000000..63c673804 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -0,0 +1,61 @@ +package com.op.device.mapper; + +import java.util.List; + +import com.op.device.domain.EquOperationRecord; + +/** + * 设备运行记录Mapper接口 + * + * @author Open Platform + * @date 2023-11-27 + */ +public interface EquOperationRecordMapper { + /** + * 查询设备运行记录 + * + * @param id 设备运行记录主键 + * @return 设备运行记录 + */ + public EquOperationRecord selectEquOperationRecordById(String id); + + /** + * 查询设备运行记录列表 + * + * @param equOperationRecord 设备运行记录 + * @return 设备运行记录集合 + */ + public List selectEquOperationRecordList(EquOperationRecord equOperationRecord); + + /** + * 新增设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int insertEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 修改设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int updateEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 删除设备运行记录 + * + * @param id 设备运行记录主键 + * @return 结果 + */ + public int deleteEquOperationRecordById(String id); + + /** + * 批量删除设备运行记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEquOperationRecordByIds(String[] ids); +} diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml new file mode 100644 index 000000000..409edfe96 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, equipment_code, start_time, end_time, type, maintenance_type, parent_id, factory_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time from equ_operation_record + + + + + + + + insert into equ_operation_record + + id, + equipment_code, + start_time, + end_time, + type, + maintenance_type, + parent_id, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{equipmentCode}, + #{startTime}, + #{endTime}, + #{type}, + #{maintenanceType}, + #{parentId}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update equ_operation_record + + equipment_code = #{equipmentCode}, + start_time = #{startTime}, + end_time = #{endTime}, + type = #{type}, + maintenance_type = #{maintenanceType}, + parent_id = #{parentId}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from equ_operation_record where id = #{id} + + + + delete from equ_operation_record where id in + + #{id} + + + \ No newline at end of file From 8ea69a31c2b32f3bdacb8d6d6c06bef1bf49ca4d Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 17:39:05 +0800 Subject: [PATCH 46/64] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=B8=8B=E6=B4=BEbug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/plan/service/impl/ProOrderWorkorderServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 8f5f46423..d5f4972ed 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -266,7 +266,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { whiteOrder.setUpdateBy(SecurityUtils.getUsername()); whiteOrder.setUpdateTime(DateUtils.getNowDate()); - return proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); + proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); } else if (whiteOrder != null && !"white".equals(whiteOrder.getProdType())) { List wids = new ArrayList<>();//一起下发用 List wcodes = new ArrayList<>();//领料单用 @@ -353,10 +353,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } //下达工单 String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); - return proOrderWorkorderMapper.downWorkorders(idsArrayAll); + proOrderWorkorderMapper.downWorkorders(idsArrayAll); } } - return 0; + return 1; } //子查父递归 From d8759052047f47e57d2aae618e2f1ade63a151b5 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 28 Nov 2023 15:07:04 +0800 Subject: [PATCH 47/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=EF=BC=9A=E7=BB=B4=E4=BF=AE=E5=B7=A5=E5=8D=95=E3=80=81=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=BF=A1=E6=81=AF=E3=80=81=E7=BB=B4=E4=BF=AE=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/MesReportWork.java | 647 ++++++++++++++++++ .../device/mapper/DeviceInterfaceMapper.java | 12 + .../mapper/EquOperationRecordMapper.java | 7 + .../impl/DeviceInterfaceServiceImpl.java | 110 ++- .../mapper/device/DeviceInterfaceMapper.xml | 44 +- .../device/EquOperationRecordMapper.xml | 85 ++- 6 files changed, 854 insertions(+), 51 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java new file mode 100644 index 000000000..fabd9e6b3 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java @@ -0,0 +1,647 @@ +package com.op.device.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 报工报表对象 mes_report_work + * + * @author Open Platform + * @date 2023-08-24 + */ +public class MesReportWork extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 记录id */ + private String id; + + /** 报工单编号 */ + @Excel(name = "报工单编号") + private String reportCode; + + /** 报工类型,报工类型:SELF自行报工、UNI统一报工 */ + @Excel(name = "报工类型,报工类型:SELF上位机报工、UNI系统报工") + private String reportType; + + /** 生产工单编码 */ + @Excel(name = "生产工单编码") + private String workorderCode; + + /** 产品编码 */ + @Excel(name = "产品编码") + private String productCode; + + /** 产品名称 */ + @Excel(name = "产品名称") + private String productName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String spec; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 排产数量 */ + @Excel(name = "排产数量") + private BigDecimal quantity; + private BigDecimal quantitySplit; + /** 本次报工数量 */ + @Excel(name = "本次报工数量") + private BigDecimal quantityFeedback; + + /** 合格数量 */ + //@Excel(name = "合格数量") + private BigDecimal quantityQualified; + + /** 不合格数量 */ + //@Excel(name = "不合格数量") + private BigDecimal quantityUnqualified; + + /** 报工人员 */ + @Excel(name = "报工人员") + private String userName; + + /** 人员名称 */ + @Excel(name = "人员名称") + private String nickName; + + /** 报工途径:PAD、MOBILE、PC */ + //@Excel(name = "报工途径:PAD、MOBILE、PC") + private String feedbackChannel; + + /** 报工时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date feedbackTime; + + /** 录入人员 */ + @Excel(name = "录入人员") + private String recordUser; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 工时 */ + @Excel(name = "工时") + private Long workTime; + + @Excel(name = "用人") + private Long useMan; + + /** 线体编码 */ + @Excel(name = "线体编码") + private String machineCode; + + /** 线体名称 */ + @Excel(name = "线体名称") + private String machineName; + + /** 班组编码 */ + @Excel(name = "班组编码") + private String teamCode; + + /** 班次编码 */ + @Excel(name = "班次编码") + private String shiftCode; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "SAP报工时间") + private Date uploadTime; + @Excel(name = "SAP报工状态0待报工1成功2失败") + private String uploadStatus; + @Excel(name = "SAP报工信息") + private String uploadMsg; + /** 预留字段1 */ + //@Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + //@Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + //@Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + //@Excel(name = "预留字段4") + private String attr4; + @Excel(name = "计划生产日期") + private String productDate; + private String productDateStart; + private String productDateEnd; + @Excel(name = "订单编号") + private String orderCode; + @Excel(name = "规格型号") + private String productSpc; + @Excel(name = "工序名称") + private String processName; + @Excel(name = "工序编码") + private String processCode; + private String factoryCode; + private String factoryName; + private String carCode; + private String carName; + private String workorderCodeSap; + private String routeCode; + private String sac1; + private String sac2; + private String sac3; + private String sac4; + private String sac5; + private String sac6; + private String prodType; + private String createTimeStart; + private String createTimeEnd; + private String feedbackTimeStart; + private String feedbackTimeEnd; + private String batch; + private String endReport; + + public String getEndReport() { + return endReport; + } + + public void setEndReport(String endReport) { + this.endReport = endReport; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public Long getUseMan() { + return useMan; + } + + public void setUseMan(Long useMan) { + this.useMan = useMan; + } + + public BigDecimal getQuantitySplit() { + return quantitySplit; + } + + public void setQuantitySplit(BigDecimal quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public String getFeedbackTimeStart() { + return feedbackTimeStart; + } + + public void setFeedbackTimeStart(String feedbackTimeStart) { + this.feedbackTimeStart = feedbackTimeStart; + } + + public String getFeedbackTimeEnd() { + return feedbackTimeEnd; + } + + public void setFeedbackTimeEnd(String feedbackTimeEnd) { + this.feedbackTimeEnd = feedbackTimeEnd; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getProdType() { + return prodType; + } + + public void setProdType(String prodType) { + this.prodType = prodType; + } + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getSac1() { + return sac1; + } + + public void setSac1(String sac1) { + this.sac1 = sac1; + } + + public String getSac2() { + return sac2; + } + + public void setSac2(String sac2) { + this.sac2 = sac2; + } + + public String getSac3() { + return sac3; + } + + public void setSac3(String sac3) { + this.sac3 = sac3; + } + + public String getSac4() { + return sac4; + } + + public void setSac4(String sac4) { + this.sac4 = sac4; + } + + public String getSac5() { + return sac5; + } + + public void setSac5(String sac5) { + this.sac5 = sac5; + } + + public String getSac6() { + return sac6; + } + + public void setSac6(String sac6) { + this.sac6 = sac6; + } + + public Date getUploadTime() { + return uploadTime; + } + + public void setUploadTime(Date uploadTime) { + this.uploadTime = uploadTime; + } + + public String getUploadStatus() { + return uploadStatus; + } + + public void setUploadStatus(String uploadStatus) { + this.uploadStatus = uploadStatus; + } + + public String getUploadMsg() { + return uploadMsg; + } + + public void setUploadMsg(String uploadMsg) { + this.uploadMsg = uploadMsg; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getCarCode() { + return carCode; + } + + public void setCarCode(String carCode) { + this.carCode = carCode; + } + + public String getCarName() { + return carName; + } + + public void setCarName(String carName) { + this.carName = carName; + } + + public String getProcessCode() { + return processCode; + } + + public void setProcessCode(String processCode) { + this.processCode = processCode; + } + + public String getProductDateStart() { + return productDateStart; + } + + public void setProductDateStart(String productDateStart) { + this.productDateStart = productDateStart; + } + + public String getProductDateEnd() { + return productDateEnd; + } + + public void setProductDateEnd(String productDateEnd) { + this.productDateEnd = productDateEnd; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + public String getReportType() { + return reportType; + } + + public void setReportCode(String reportCode) { + this.reportCode = reportCode; + } + public String getReportCode() { + return reportCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductCode() { + return productCode; + } + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductName() { + return productName; + } + public void setSpec(String spec) { + this.spec = spec; + } + + public String getSpec() { + return spec; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantityFeedback(BigDecimal quantityFeedback) { + this.quantityFeedback = quantityFeedback; + } + + public BigDecimal getQuantityFeedback() { + return quantityFeedback; + } + public void setQuantityQualified(BigDecimal quantityQualified) { + this.quantityQualified = quantityQualified; + } + + public BigDecimal getQuantityQualified() { + return quantityQualified; + } + public void setQuantityUnqualified(BigDecimal quantityUnqualified) { + this.quantityUnqualified = quantityUnqualified; + } + + public BigDecimal getQuantityUnqualified() { + return quantityUnqualified; + } + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserName() { + return userName; + } + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getNickName() { + return nickName; + } + public void setFeedbackChannel(String feedbackChannel) { + this.feedbackChannel = feedbackChannel; + } + + public String getFeedbackChannel() { + return feedbackChannel; + } + public void setFeedbackTime(Date feedbackTime) { + this.feedbackTime = feedbackTime; + } + + public Date getFeedbackTime() { + return feedbackTime; + } + public void setRecordUser(String recordUser) { + this.recordUser = recordUser; + } + + public String getRecordUser() { + return recordUser; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setWorkTime(Long workTime) { + this.workTime = workTime; + } + + public Long getWorkTime() { + return workTime; + } + public void setMachineCode(String machineCode) { + this.machineCode = machineCode; + } + + public String getMachineCode() { + return machineCode; + } + public void setMachineName(String machineName) { + this.machineName = machineName; + } + + public String getMachineName() { + return machineName; + } + public void setTeamCode(String teamCode) { + this.teamCode = teamCode; + } + + public String getTeamCode() { + return teamCode; + } + public void setShiftCode(String shiftCode) { + this.shiftCode = shiftCode; + } + + public String getShiftCode() { + return shiftCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + + public String getProductDate() { + return productDate; + } + + public void setProductDate(String productDate) { + this.productDate = productDate; + } + + public String getOrderCode() { + return orderCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getProductSpc() { + return productSpc; + } + + public void setProductSpc(String productSpc) { + this.productSpc = productSpc; + } + + public String getProcessName() { + return processName; + } + + public void setProcessName(String processName) { + this.processName = processName; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("reportType", getReportType()) + .append("reportCode", getReportCode()) + .append("workorderCode", getWorkorderCode()) + .append("productCode", getProductCode()) + .append("productName", getProductName()) + .append("spec", getSpec()) + .append("unit", getUnit()) + .append("quantity", getQuantity()) + .append("quantityFeedback", getQuantityFeedback()) + .append("quantityQualified", getQuantityQualified()) + .append("quantityUnqualified", getQuantityUnqualified()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("feedbackChannel", getFeedbackChannel()) + .append("feedbackTime", getFeedbackTime()) + .append("recordUser", getRecordUser()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("workTime", getWorkTime()) + .append("machineCode", getMachineCode()) + .append("machineName", getMachineName()) + .append("teamCode", getTeamCode()) + .append("shiftCode", getShiftCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} + diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java index d5e16ac35..c0391bb88 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -1,6 +1,8 @@ package com.op.device.mapper; +import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; @@ -25,4 +27,14 @@ public interface DeviceInterfaceMapper { * @return */ List selectRepairEquipmentList(); + + /** + * 通过设备code查询该设备最近一个月的报工单信息 + * 其中quantity:理论产量总和 、quantityFeedback:实际产量总和 + * @param equipmentCode + * @return + */ + MesReportWork selectReportWorkByEquipmentCode(String equipmentCode); + + List selectRepairRecordByEquipmentCode(String equipmentCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java index 63c673804..c26347bf8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -58,4 +58,11 @@ public interface EquOperationRecordMapper { * @return 结果 */ public int deleteEquOperationRecordByIds(String[] ids); + + /** + * 通过设备编码查询设备运行记录 + * @param equipmentCode + * @return + */ + List selectEquOperationRecordByEquipmentCode(String equipmentCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index a56dec8f2..0a7cb9ebc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -2,16 +2,24 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.mapper.DeviceInterfaceMapper; +import com.op.device.mapper.EquOperationRecordMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; import static com.op.common.core.web.domain.AjaxResult.success; @@ -25,6 +33,8 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { private EquRepairWorkOrderMapper equRepairWorkOrderMapper; @Autowired private DeviceInterfaceMapper deviceInterfaceMapper; + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; /** * 获取待维修的维修工单 @@ -48,7 +58,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备信息 * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) - * 设备有效利用率:(试机产量/理论产量) + * 设备有效利用率:(实际产量/理论产量) * * @return */ @@ -64,11 +74,55 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } else { equipmentVO.setEquipmentStatus("停用"); } - // TODO 设备故障停机率 - equipmentVO.setFailureRate(0.10); - // TODO 设备有效利用率 - equipmentVO.setUtilizationRatio(0.80); + + /* 停机故障率逻辑 */ + long totalTime = 0L;// 运行总时间 + long downTime = 0L;// 停机时间 + // 通过设备编码获取运行记录中的运行记录List + List operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (operationRecordList.size() != 0) { + for (EquOperationRecord operationRecord : operationRecordList) { + // 运行时间差值 + long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); + // 开机运行时间运行总时间累加 + if (operationRecord.getType().equals("on")) { + totalTime+=diffTime; + } + // 维修停机时间累加(故障) + if (operationRecord.getMaintenanceType().equals("repair")) { + downTime+=diffTime; + } + } + + // 设置停机故障率 + if (downTime == 0L) { + // 如果未查到该设备停机故障时间 + equipmentVO.setFailureRate(0D); + }else { + // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) + double failureRate = downTime / totalTime; + equipmentVO.setFailureRate(failureRate); + } + + } + + /* 设备有效利用率逻辑(每月) */ + // 查询该设备下报工单信息(年月日可在该sql中修改) + MesReportWork reportWork = deviceInterfaceMapper.selectReportWorkByEquipmentCode(equipmentVO.getEquipmentCode()); + if (reportWork != null) { + BigDecimal theoryQuantity = reportWork.getQuantity();// 理论产量 + BigDecimal actualQuantity = reportWork.getQuantityFeedback();// 实际产量 + + // 计算该设备有效利用率(实际产量/理论产量) + BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); + equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); + + }else { + // 如果未查到该信息,则默认设置为0 + equipmentVO.setUtilizationRatio(0D); + } + } return success(equipmentVOList); } @@ -81,12 +135,48 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Override @DS("#header.poolName") public AjaxResult getRepairQuantity() { - List equipmentVOList = deviceInterfaceMapper.selectRepairEquipmentList(); + + // 获取维修工单中的设备列表 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { - // TODO 设备维修质量 - // TODO 排序TOP10 - equipmentVO.setRapairQuantity(0.70); + // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) + List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (workOrderList.size() != 0) { + Long runTime = 0l; + for (EquRepairWorkOrder workOrder : workOrderList) { + // 维修时间差值 + long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); + // 累加时间 + runTime += diffTime; + } + // 计算维修质量(故障时间(小时)/故障次数) + long rapairQuantity = runTime / 3600000 / workOrderList.size(); + equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); + }else { + // 没有该记录则默认为0 + equipmentVO.setRapairQuantity(0D); + } } - return success(equipmentVOList); + + // 排序TOP10 + + // 假数据 +// Random random = new Random(); +// List test = new ArrayList<>(); +// for (int i = 0 ; i < 30 ; i++) { +// IEquipmentVO vo = new IEquipmentVO(); +// vo.setRapairQuantity(random.nextDouble()); +// test.add(vo); +// } + + // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 + List top10 = equipmentVOList.stream() + .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 + .limit(10) // 限制结果数量为10 + .collect(Collectors.toList()); // 将结果收集到List中 + + return success(top10); } + } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 6d07432ac..27dfd636f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,23 +21,41 @@ - - + + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 409edfe96..8f958d4d6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -5,41 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - select id, equipment_code, start_time, end_time, type, maintenance_type, parent_id, factory_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time from equ_operation_record + select id, + equipment_code, + start_time, + end_time, + type, + maintenance_type, + parent_id, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time + from equ_operation_record @@ -48,6 +64,17 @@ where id = #{id} + + insert into equ_operation_record @@ -111,7 +138,9 @@ - delete from equ_operation_record where id = #{id} + delete + from equ_operation_record + where id = #{id} From 2f221e1905d22ba281e18832a78504fec0947555 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 28 Nov 2023 15:33:35 +0800 Subject: [PATCH 48/64] =?UTF-8?q?sap=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MesPrepareServiceImpl.java | 68 +++++++++---------- .../mapper/mes/MesReportWorkMapper.xml | 2 +- .../op/open/service/impl/OpenServiceImpl.java | 2 +- .../main/resources/mapper/open/OpenMapper.xml | 2 +- .../service/impl/ProOrderServiceImpl.java | 3 - .../impl/ProOrderWorkorderServiceImpl.java | 12 ++-- .../op/quality/controller/QuaController.java | 48 ++++++++++--- .../op/quality/domain/QcCheckTaskIncome.java | 2 +- .../domain/QcCheckTaskWarehousing.java | 2 +- .../mapper/QcCheckTaskIncomeMapper.java | 5 ++ .../op/quality/mapper/QcProCheckMapper.java | 3 + .../service/IQcCheckTaskIncomeService.java | 3 + .../quality/service/IQcCheckTypeService.java | 4 ++ .../op/quality/service/QcProCheckService.java | 4 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 56 ++++++++++++++- .../QcCheckReportIncomeServiceImpl.java | 3 +- .../QcCheckReportProduceServiceImpl.java | 2 +- .../QcCheckReportProductServiceImpl.java | 2 +- .../serviceImpl/QcProCheckServiceImpl.java | 13 ++++ .../quality/QcCheckTaskIncomeMapper.xml | 28 +++++++- .../mapper/quality/QcProCheckMapper.xml | 47 ++++++++++++- 21 files changed, 249 insertions(+), 62 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java index ef37bf940..db84819b5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java @@ -248,40 +248,40 @@ public class MesPrepareServiceImpl implements IMesPrepareService { //报工 public void reportWorkByFactory(String poolName) { MesReportWork mesReportWork = new MesReportWork(); - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); - for(MesReportWork work:reportWorks) { - SapRFW sapRFW = new SapRFW(); - sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 - sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 - ltgs.setConf_activity1(work.getSac1());//人工 - ltgs.setConf_activity2(work.getSac2()); - ltgs.setConf_activity3(work.getSac3()); - ltgs.setConf_activity4(work.getSac4()); - ltgs.setConf_activity5(work.getSac5()); - ltgs.setConf_activity6(work.getSac6()); - SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 - lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; - lthw.setMaterial(work.getProcessCode()); - R r = remoteSapService.sapRFWOrder(sapRFW); - //上传成功,更改mes_report_work状态 - if (r.getCode() == 200) { - work.setUploadStatus("1"); - } else { - work.setUploadStatus("2"); - work.setUploadMsg(r.getMsg()); - } - work.setUploadTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateSyncSapStatus(work); - //关闭订单 - remoteSapService.sapCloseOrder(work.getOrderCode()); - //pro_work_order status->w4报工 - work.setStatus("w4"); - work.setUpdateTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateWorkOrderStatus(work); - } +// mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 +// mesReportWork.setProdType("prod"); +// List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); +// for(MesReportWork work:reportWorks) { +// SapRFW sapRFW = new SapRFW(); +// sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 +// sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 +// SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 +// ltgs.setConf_activity1(work.getSac1());//人工 +// ltgs.setConf_activity2(work.getSac2()); +// ltgs.setConf_activity3(work.getSac3()); +// ltgs.setConf_activity4(work.getSac4()); +// ltgs.setConf_activity5(work.getSac5()); +// ltgs.setConf_activity6(work.getSac6()); +// SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 +// lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; +// lthw.setMaterial(work.getProcessCode()); +// R r = remoteSapService.sapRFWOrder(sapRFW); +// //上传成功,更改mes_report_work状态 +// if (r.getCode() == 200) { +// work.setUploadStatus("1"); +// } else { +// work.setUploadStatus("2"); +// work.setUploadMsg(r.getMsg()); +// } +// work.setUploadTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateSyncSapStatus(work); +// //关闭订单 +// remoteSapService.sapCloseOrder(work.getOrderCode()); +// //pro_work_order status->w4报工 +// work.setStatus("w4"); +// work.setUpdateTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateWorkOrderStatus(work); +// } } public static void main(String args[]) { List list = new ArrayList<>(); 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 34401f485..c10cc1b83 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 @@ -445,7 +445,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 49ba40346..eef5e8e8e 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -205,7 +205,7 @@ public class OpenServiceImpl implements OpenService { ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); - //工单完成,关闭工单 + //工单完成,关闭母工单 List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 for(String sapWorkOrder:sapWorkOrders){ R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 40ab74cef..6057fab1e 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 9ed1c9605..fc41f382c 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -522,9 +522,6 @@ public class ProOrderServiceImpl implements IProOrderService { failOrder = proOrder.getOrderCode(); logger.info("=======订单"+failOrder+"同步失败"); } -// else {//关闭订单 -// remoteSapService.sapCloseOrder(proOrder.getOrderCode()); -// } } return failOrder; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index d5f4972ed..ce1bf79c5 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -294,6 +294,8 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { //顺序母子 Collections.reverse(wids); Collections.reverse(wcodes); + Collections.reverse(ordercodes); + sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 @@ -346,11 +348,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { //获取领料单 this.getMesPrepare(returnCodes,wcodes); - //关闭订单//订单的订单编码 - for(String orderCode:ordercodes){ - R closeR= remoteSapService.sapCloseOrder(orderCode); - logger.info(workorderId+"下发工单后关闭母订单"+orderCode+":"+closeR.getMsg()); - } + //关闭母订单子订单会自动关闭//订单的订单编码 + //for(String orderCode:ordercodes){ + R closeR= remoteSapService.sapCloseOrder(ordercodes.get(0)); + logger.info(workorderId+"下发工单后关闭母订单"+ordercodes.get(0)+":"+closeR.getMsg()); + //} //下达工单 String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); proOrderWorkorderMapper.downWorkorders(idsArrayAll); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index d242a381b..fc0cc81e9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -2,18 +2,18 @@ package com.op.quality.controller; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; +import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; -import com.op.quality.service.IQcCheckTaskProduceService; -import com.op.quality.service.IQcCheckTaskWarehousingService; -import com.op.quality.service.IQcCheckTypeService; -import com.op.quality.service.QcProCheckService; +import com.op.quality.service.*; import com.op.system.api.RemoteMesService; import com.op.system.api.domain.dto.WCSDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -40,6 +40,9 @@ public class QuaController extends BaseController { @Autowired private IQcCheckTypeService qcCheckTypeService; + @Autowired + private IQcCheckTaskIncomeService qcCheckTaskIncomeService; + @PostMapping("/saveQcProCheck") public R saveQcProCheck(@RequestBody QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); @@ -177,10 +180,37 @@ public class QuaController extends BaseController { */ @GetMapping(value = "getCheckTaskList") public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { -// if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ -// return error("[factoryCode]不能为空"); -// } -// return success(qcCheckTypeService.getCheckType(qcCheckType)); - return null; + if(StringUtils.isBlank(qcCheckTaskIncome.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getCheckType())){ + return error("[checkType]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getCheckManCode())){ + return error("[checkManCode]不能为空"); + } + return success(qcProCheckService.getCheckTaskList(qcCheckTaskIncome)); } + /** + * 获取待检验信息列表 + */ + @GetMapping(value = "getCheckTaskDetailList") + public AjaxResult getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + if(StringUtils.isBlank(qcCheckTaskDetail.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskDetail.getBelongTo())){ + return error("[belongTo]不能为空"); + } + return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); + } + /**检测结果提交**/ + @PostMapping("/commitCheckResults") + public AjaxResult commitCheckResults(@RequestBody List details) { + if(CollectionUtils.isEmpty(details)){ + return error("[List]不能为空"); + } + return toAjax(qcCheckTaskIncomeService.commitCheckResults(details)); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 6aef89b54..0f66846dd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -25,7 +25,7 @@ public class QcCheckTaskIncome extends BaseEntity { private String checkNo; /** 来料批次号 */ - @Excel(name = "来料批次号") + @Excel(name = "批次号") private String incomeBatchNo; /** 订单号 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java index d75d4a5e0..c267cb334 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java @@ -58,7 +58,7 @@ public class QcCheckTaskWarehousing extends BaseEntity { /** 来料时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date incomeTime; /** 检测地点 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 71fb885f8..f5b04059f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -8,6 +8,7 @@ import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcSupplier; import com.op.system.api.domain.SysUser; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 来料检验Mapper接口 @@ -74,4 +75,8 @@ public interface QcCheckTaskIncomeMapper { int getTodayMaxNum(QcCheckTaskIncome qcCheckTaskIncome); List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail); + + int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); + + int updateQcCheckTaskDetails(@Param("list") List details); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java index a64b5c60e..f68842a66 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java @@ -2,6 +2,7 @@ package com.op.quality.mapper; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcProCheck; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,4 +35,6 @@ public interface QcProCheckMapper { List getEquipmentList(QcProCheck qcProCheck); List getDictList(QcProCheck qcProCheck); + + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 72cb2094f..a6a508865 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -76,5 +76,8 @@ public interface IQcCheckTaskIncomeService { int commitCheckResult(QcCheckTaskIncome qcCheckTaskIncome); + int commitCheckResults(List details); + List getDefectList(QcDefectType qcDefectType); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java index a2588c9e3..84478087f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java @@ -1,6 +1,8 @@ package com.op.quality.service; import java.util.List; + +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckType; /** @@ -61,4 +63,6 @@ public interface IQcCheckTypeService { List getCheckType(QcCheckType qcCheckType); List getTopTaskInfo(QcCheckType qcCheckType); + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index ca4bf2491..46bb5cc0f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import com.op.common.core.domain.R; //import com.op.quality.domain.BaseFile; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; @@ -30,4 +31,7 @@ public interface QcProCheckService { List getDictList(QcProCheck qcProCheck); + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); + + List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index e0cd35b58..584aa143f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -13,6 +14,8 @@ import com.op.quality.domain.*; import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskProduceService; import com.op.system.api.domain.SysUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.service.IQcCheckTaskIncomeService; @@ -31,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; */ @Service public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; @@ -190,8 +194,8 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckTaskIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckTaskIncomeMapper.getQcListUser(sysUser); } @@ -285,4 +289,54 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckUnqualifiedMapper.getDefectList(qcDefectType); } + @Override + public int commitCheckResults(List details) { + DynamicDataSourceContextHolder.push("ds_"+details.get(0).getFactoryCode()); + Date nowTime = DateUtils.getNowDate(); + String factoryCode = details.get(0).getFactoryCode(); + String updateBy = details.get(0).getUpdateBy(); + String belongId = details.get(0).getBelongTo(); + + //默认合格 + String result = "Y"; + for(QcCheckTaskDetail detail:details){ + if("N".equals(detail.getStatus())){ + result = "N";//不合格 + break; + } + } + + int n = 0; + QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome(); + qcCheckTask.setUpdateBy(updateBy); + qcCheckTask.setRecordId(belongId); + qcCheckTask.setCheckResult("2");//检测状态0待检测1检测中2检测完成 + qcCheckTask.setUpdateTime(nowTime); + qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 + /**qc_check_task**/ + n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask); + logger.info("qc_check_task:"+n); + /**更新qc_check_task_detail**/ + for(QcCheckTaskDetail detail:details){ + + } + + n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);; + logger.info("更新qc_check_task_detail:"+n); + //不合格处理 + if("N".equals(result)){ +// QcCheckUnqualified unqualified = new QcCheckUnqualified(); +// unqualified.setId(IdUtils.fastSimpleUUID()); +// unqualified.setTaskId(qcCheckTaskIncome.getRecordId()); +// unqualified.setCreateTime(DateUtils.getNowDate()); +// unqualified.setCreateBy(qcCheckTaskIncome.getUpdateBy()); +// unqualified.setFactoryCode(factoryCode); +// unqualified.setType(qcCheckTaskIncome.getCheckType()); +// /**qc_check_unqualified**/ +// qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); + } + + return n ; + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java index aa75c98fc..aeb97d41c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java @@ -2,6 +2,7 @@ package com.op.quality.service.serviceImpl; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -176,8 +177,8 @@ public class QcCheckReportIncomeServiceImpl implements IQcCheckReportIncomeServi return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java index 45ea3f41c..1feb39527 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java @@ -178,7 +178,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java index f415b74c7..8c34e2c29 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java @@ -178,7 +178,7 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java index 037557f32..005a118de 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java @@ -8,6 +8,7 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; import com.op.quality.mapper.QcCheckTaskIncomeMapper; @@ -114,4 +115,16 @@ public class QcProCheckServiceImpl implements QcProCheckService { return qcProCheckMapper.getDictList(qcProCheck); } + @Override + public List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskIncome.getFactoryCode()); + return qcProCheckMapper.getCheckTaskList(qcCheckTaskIncome); + } + + @Override + public List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskDetail.getFactoryCode()); + return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 2ec646ded..37ede2cac 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -131,12 +131,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" td.create_time createTime, td.update_by updateBy, td.update_time updateTime, + td.update_time updateTime, + td.belong_to belongTo, qctp.upper_diff upperDiff, qctp.down_diff downDiff, qctp.sample from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id - where td.belong_to = #{belongTo} + where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' @@ -242,6 +244,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where record_id = #{recordId} + + update qc_check_task + set + check_status = #{checkStatus}, + check_time = #{checkTime}, + check_result = #{checkResult}, + update_by = #{updateBy}, + update_time = #{updateTime} + where record_id = #{recordId} + + + + update qc_check_task_detail + set + zh_desc = #{item.name1}, + contact_phone = #{item.telf1}, + address = #{item.stras}, + factory_code = #{item.bukrs}, + create_time= #{item.erdat}, + update_time = #{item.erdat} + where + supplier_code = #{item.lifnr} + + delete from qc_check_task where record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index a41e49872..9e36c0ea6 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -35,7 +35,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,rfid,factory_id,factory_code,order_id,machine_id,bad_meg,product_id,isqua,file_id,attr1,attr2, attr3,attr4,create_by,create_time,update_by,update_time,order_code,machine_code, @@ -212,4 +243,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_data where dict_type = #{equipmentTypeCode} + From 988ee5d7f41b1fd0b57b2d9ef131df6c0c72bd90 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 28 Nov 2023 17:42:01 +0800 Subject: [PATCH 49/64] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9-=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=B1=9E=E6=80=A7=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/op/device/domain/EquCheckItem.java | 11 +++++++++++ .../java/com/op/device/domain/EquOrderDetail.java | 10 ++++++++++ .../main/java/com/op/device/domain/EquPlanDetail.java | 10 ++++++++++ .../com/op/device/domain/dto/EquCheckItemDTO.java | 11 +++++++++++ .../java/com/op/device/domain/vo/EquCheckItemVO.java | 11 +++++++++++ .../service/impl/DeviceInterfaceServiceImpl.java | 11 ++++++----- .../resources/mapper/device/EquCheckItemMapper.xml | 7 ++++++- .../resources/mapper/device/EquOrderDetailMapper.xml | 6 +++++- .../resources/mapper/device/EquPlanDetailMapper.xml | 7 ++++++- 9 files changed, 76 insertions(+), 8 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 67a5bbf74..45abf7d61 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -95,6 +95,17 @@ public class EquCheckItem extends BaseEntity { // 更新日期结束 private String updateTimeEnd; + // 检查项工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + private List equCheckItemDetailList; public List getEquCheckItemDetailList() { diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java index 4fb380770..b5358bd8b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java @@ -72,6 +72,16 @@ public class EquOrderDetail extends BaseEntity { private List standardList; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getStandardList() { return standardList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java index 49b55557f..3dc3daf11 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java @@ -80,6 +80,16 @@ public class EquPlanDetail extends BaseEntity { // 主计划code private String planCode; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getPlanCode() { return planCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 8e74f792c..810a3cd11 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -62,6 +62,17 @@ public class EquCheckItemDTO { // 设备编码list private List equipmentCodeList; + // 检查工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getEquipmentCodeList() { return equipmentCodeList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index 3f10a6d66..a8f4c44f9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -46,6 +46,17 @@ public class EquCheckItemVO { // 设备编码 private String equipmentCode; + // 检查工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getEquipmentName() { return equipmentName; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 0a7cb9ebc..057b6d5f5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -87,11 +87,11 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); // 开机运行时间运行总时间累加 if (operationRecord.getType().equals("on")) { - totalTime+=diffTime; + totalTime += diffTime; } // 维修停机时间累加(故障) if (operationRecord.getMaintenanceType().equals("repair")) { - downTime+=diffTime; + downTime += diffTime; } } @@ -99,7 +99,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { if (downTime == 0L) { // 如果未查到该设备停机故障时间 equipmentVO.setFailureRate(0D); - }else { + } else { // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) double failureRate = downTime / totalTime; equipmentVO.setFailureRate(failureRate); @@ -118,7 +118,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); - }else { + } else { // 如果未查到该信息,则默认设置为0 equipmentVO.setUtilizationRatio(0D); } @@ -130,6 +130,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备维修质量TOP10 * 设备维修质量:故障时间/故障次数 + * * @return */ @Override @@ -153,7 +154,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 计算维修质量(故障时间(小时)/故障次数) long rapairQuantity = runTime / 3600000 / workOrderList.size(); equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); - }else { + } else { // 没有该记录则默认为0 equipmentVO.setRapairQuantity(0D); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml index 281ab3f95..4869ab8c6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml @@ -21,10 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by from equ_check_item + select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools from equ_check_item @@ -87,6 +89,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -107,6 +110,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml index 0caa0b000..0e55988c4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml @@ -25,12 +25,13 @@ + select id, code, plan_id,plan_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_plan_detail @@ -51,6 +52,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' ORDER BY item_name @@ -94,6 +96,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -116,6 +119,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -141,6 +145,7 @@ create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + item_tools = #{itemTools}, where id = #{id} and del_flag = '0' From 134c9d271d4151f514d763b4d887efeae71ac020 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 28 Nov 2023 17:56:59 +0800 Subject: [PATCH 50/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF=20?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceInterfaceController.java | 22 +++++ .../op/device/domain/EquOperationRecord.java | 84 +++++++++++++++++++ .../op/device/mapper/EquEquipmentMapper.java | 1 - .../mapper/EquOperationRecordMapper.java | 6 ++ .../service/IDeviceInterfaceService.java | 15 ++++ .../impl/DeviceInterfaceServiceImpl.java | 32 +++++++ .../device/EquOperationRecordMapper.xml | 30 +++++++ 7 files changed, 189 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index 1e4a53c3b..ee308a848 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -1,6 +1,7 @@ package com.op.device.controller; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -49,4 +50,25 @@ public class DeviceInterfaceController { return deviceInterfaceService.getRepairQuantity(); } + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentStability") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentStabilityList(equOperationRecord); + } + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentIntactRate") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java index 6c435598f..c8702aa2b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -64,6 +64,26 @@ public class EquOperationRecord extends BaseEntity { /** 删除标识 */ private String delFlag; + //MTBF接口字段 + //序号 + private String serialNumber; + //开机时间 + private String onTime; + //故障次数 + private String shutDownNumber; + //mtbf + private String mtbf; + + //IntactRate 完好设备占比字段 + //运行设备 + private String operationEquipment; + //故障设备 + private String faultEquipment; + //总设备 + private String totalEquipment; + //百分比 + private String intactRate; + public void setId(String id) { this.id = id; } @@ -149,6 +169,70 @@ public class EquOperationRecord extends BaseEntity { return delFlag; } + //虚拟字段 序号 + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + public String getSerialNumber() { + return serialNumber; + } + + //开机时间 + public void setOnTime(String onTime) { + this.onTime = onTime; + } + public String getOnTime() { + return onTime; + } + + //故障次数 + public void setShutDownNumber(String shutDownNumber) { + this.shutDownNumber = shutDownNumber; + } + public String getShutDownNumber() { + return shutDownNumber; + } + + //mtbf + public void setMtbf(String mtbf) { + this.mtbf = mtbf; + } + public String getMtbf() { + return mtbf; + } + + //运行设备 + public void setOperationEquipment(String operationEquipment) { + this.operationEquipment = operationEquipment; + } + public String getOperationEquipment() { + return operationEquipment; + } + + //故障设备 + public void setFaultEquipment(String faultEquipment) { + this.faultEquipment = faultEquipment; + } + public String getFaultEquipment() { + return faultEquipment; + } + + //总设备 + public void setTotalEquipment(String totalEquipment) { + this.totalEquipment = totalEquipment; + } + public String getTotalEquipment() { + return totalEquipment; + } + + //完好率 + public void setIntactRate(String intactRate) { + this.intactRate = intactRate; + } + public String getIntactRate() { + return intactRate; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java index 9165576eb..d293d8dbe 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java @@ -62,5 +62,4 @@ public interface EquEquipmentMapper { //查询设备类型 List getEquipmentTypeList(EquEquipment equEquipment); - } \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java index c26347bf8..3a356f441 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -65,4 +65,10 @@ public interface EquOperationRecordMapper { * @return */ List selectEquOperationRecordByEquipmentCode(String equipmentCode); + + //设备稳定性 MTBF设备平均故障间隔 + List getMTBFList(EquOperationRecord equOperationRecord); + + //设备完好率 + EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index da05dd4fb..466671e22 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -1,6 +1,7 @@ package com.op.device.service; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; /** * 设备看板接口 @@ -24,4 +25,18 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getRepairQuantity(); + + /** + * 设备稳定性MTBF 实际运转时间/停止次数 + * @return + */ + AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord); + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 057b6d5f5..1aea47573 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -5,6 +5,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.MesReportWork; +import com.op.device.mapper.EquEquipmentMapper; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.mapper.DeviceInterfaceMapper; @@ -36,6 +37,12 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquOperationRecordMapper equOperationRecordMapper; + @Autowired + private EquEquipmentMapper equEquipmentMapper; + + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; + /** * 获取待维修的维修工单 * @@ -180,4 +187,29 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { return success(top10); } + + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + List equipmentList = equOperationRecordMapper.getMTBFList(equOperationRecord); + return success(equipmentList); + } + + + /** + * 完好设备占比 + * 公式:维修/故障设备 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); + return success(equipmentIntactRate); + } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 8f958d4d6..ebd25fc16 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -149,4 +149,34 @@ #{id} + + + + + + + \ No newline at end of file From fe60faa025307bdb9cc96674e4df415f7d8a49b4 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 28 Nov 2023 18:03:34 +0800 Subject: [PATCH 51/64] =?UTF-8?q?mapper=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/service/impl/DeviceInterfaceServiceImpl.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 1aea47573..a58cb1377 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -37,12 +37,6 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquOperationRecordMapper equOperationRecordMapper; - @Autowired - private EquEquipmentMapper equEquipmentMapper; - - @Autowired - private EquOperationRecordMapper equOperationRecordMapper; - /** * 获取待维修的维修工单 * From fbf3b3a30f16405ea9e49a6d776dbbd1fd282710 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 29 Nov 2023 10:17:34 +0800 Subject: [PATCH 52/64] 1 --- .../com/op/device/domain/EquPlanStandard.java | 20 +++++++++++++++++++ .../mapper/device/EquOrderDetailMapper.xml | 5 +++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java index 08ccb5339..37d7bbc06 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java @@ -78,6 +78,26 @@ public class EquPlanStandard extends BaseEntity { private Boolean showFlag; + private String itemMethod; + + private String itemTools; + + public String getItemMethod() { + return itemMethod; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public Boolean getShowFlag() { return showFlag; } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml index 3a81ae976..ea050820f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml @@ -119,7 +119,7 @@ id, order_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, del_flag, - create_by, create_time + create_by, create_time,item_tools ) VALUES @@ -127,7 +127,7 @@ #{item.id},#{item.parentCode}, #{item.itemCode},#{item.itemName},#{item.itemMethod}, #{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag}, - #{item.createBy},#{item.createTime} + #{item.createBy},#{item.createTime},#{itemTools} ) @@ -145,6 +145,7 @@ item_type = #{itemType}, item_type_name = #{itemTypeName}, factory_code = #{factoryCode}, + item_tools = #{itemTools}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, From 55047b2f7175637a8fa9e39a6f7978ee5f5fb287 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 29 Nov 2023 13:48:02 +0800 Subject: [PATCH 53/64] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9+=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/EquCheckItem.java | 22 +++++++++++++++++++ .../op/device/domain/dto/EquCheckItemDTO.java | 22 +++++++++++++++++++ .../op/device/domain/vo/EquCheckItemVO.java | 22 +++++++++++++++++++ .../mapper/device/EquCheckItemMapper.xml | 12 +++++++++- 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 45abf7d61..7afc7db7f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -98,6 +98,28 @@ public class EquCheckItem extends BaseEntity { // 检查项工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 810a3cd11..f5c3826ce 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -65,6 +65,28 @@ public class EquCheckItemDTO { // 检查工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index a8f4c44f9..3d92c776e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -49,6 +49,28 @@ public class EquCheckItemVO { // 检查工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml index 4869ab8c6..15da54108 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml @@ -22,10 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools from equ_check_item + select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools ,item_loop,item_loop_type from equ_check_item diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index eef5e8e8e..8383c9a4d 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -209,7 +209,7 @@ public class OpenServiceImpl implements OpenService { List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 for(String sapWorkOrder:sapWorkOrders){ R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); - logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+rclose.getCode()+",返回信息:"+rclose.getMsg()); } work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 6057fab1e..40ab74cef 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index ce1bf79c5..788fcaa81 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -348,14 +348,17 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { //获取领料单 this.getMesPrepare(returnCodes,wcodes); - //关闭母订单子订单会自动关闭//订单的订单编码 - //for(String orderCode:ordercodes){ - R closeR= remoteSapService.sapCloseOrder(ordercodes.get(0)); - logger.info(workorderId+"下发工单后关闭母订单"+ordercodes.get(0)+":"+closeR.getMsg()); - //} - //下达工单 - String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); - proOrderWorkorderMapper.downWorkorders(idsArrayAll); + //关闭母子订单//订单的订单编码 + R closeR = null; + for(String orderCode:ordercodes){ + closeR= remoteSapService.sapCloseOrder(orderCode); + logger.info(workorderId+"下发工单后关闭母订单"+orderCode+":"+closeR.getCode()+","+closeR.getMsg()); + } + if(closeR.getCode()==200){ + //下达工单 + String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); + proOrderWorkorderMapper.downWorkorders(idsArrayAll); + } } } return 1; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java index 5d5bcf840..d5c864fdc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java @@ -26,7 +26,7 @@ import com.op.common.core.web.page.TableDataInfo; /** * 物料检验项目维护Controller - * + * * @author Open Platform * @date 2023-10-17 */ @@ -35,8 +35,6 @@ import com.op.common.core.web.page.TableDataInfo; public class QcCheckTypeProjectController extends BaseController { @Autowired private IQcCheckTypeProjectService qcCheckTypeProjectService; - @Autowired - private IQcMaterialGroupService qcMaterialGroupService; /** * 查询物料检验项目维护列表 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index fc0cc81e9..d63fb8308 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -7,10 +7,12 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; +import com.op.common.security.annotation.RequiresPermissions; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; import com.op.quality.service.*; import com.op.system.api.RemoteMesService; +import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.dto.WCSDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -39,7 +41,8 @@ public class QuaController extends BaseController { private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService; @Autowired private IQcCheckTypeService qcCheckTypeService; - + @Autowired + private IQcMaterialGroupService qcMaterialGroupService; @Autowired private IQcCheckTaskIncomeService qcCheckTaskIncomeService; @@ -179,17 +182,14 @@ public class QuaController extends BaseController { * 获取待检验信息列表 */ @GetMapping(value = "getCheckTaskList") - public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { - if(StringUtils.isBlank(qcCheckTaskIncome.getFactoryCode())){ - return error("[factoryCode]不能为空"); + public TableDataInfo getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { + + if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckStatus())){ + qcCheckTaskIncome.setCheckStatus("'"+ qcCheckTaskIncome.getCheckStatus().replace(",","','")+"'"); } - if(StringUtils.isBlank(qcCheckTaskIncome.getCheckType())){ - return error("[checkType]不能为空"); - } - if(StringUtils.isBlank(qcCheckTaskIncome.getCheckManCode())){ - return error("[checkManCode]不能为空"); - } - return success(qcProCheckService.getCheckTaskList(qcCheckTaskIncome)); + startPage(); + List list = qcProCheckService.getCheckTaskList(qcCheckTaskIncome); + return getDataTable(list); } /** * 获取待检验信息列表 @@ -204,13 +204,44 @@ public class QuaController extends BaseController { } return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); } - /**检测结果提交**/ - @PostMapping("/commitCheckResults") - public AjaxResult commitCheckResults(@RequestBody List details) { - if(CollectionUtils.isEmpty(details)){ + + /** + * 获取待检验信息列表 + */ + @PostMapping(value = "commitCheckResults") + public AjaxResult commitCheckResults(@RequestBody List qcCheckTaskDetails) { + if(CollectionUtils.isEmpty(qcCheckTaskDetails)){ return error("[List]不能为空"); } - return toAjax(qcCheckTaskIncomeService.commitCheckResults(details)); + return success(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskDetails)); + } + /** + * 检验单位 + */ + @GetMapping(value = "getQcUnitList") + public TableDataInfo getQcUnitList(SysDictData sysDictData) { + startPage(); + List list = qcProCheckService.getQcUnitList(sysDictData); + return getDataTable(list); + } + /** + * 检验项目 + */ + @GetMapping("/pdaMaterialTree") + public AjaxResult pdaMaterialTree(QcMaterialGroup materialGroup) { + DynamicDataSourceContextHolder.push("ds_"+materialGroup.getFactoryCode()); + return success(qcMaterialGroupService.selectQcMaterialTreeList(materialGroup)); } + /** + * 查询物料检验项目维护列表 + */ + + @GetMapping("/getCheckTypeProjectList") + public TableDataInfo list(QcCheckTypeProject qcCheckTypeProject) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTypeProject.getFactoryCode()); + startPage(); + List list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject); + return getDataTable(list); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java index 72b8ac8d3..4517e5621 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java @@ -95,6 +95,15 @@ public class QcCheckTaskDetail extends BaseEntity { private List actualValues; private String typeProjectId; private String defectCode; + private String checkType; + + public String getCheckType() { + return checkType; + } + + public void setCheckType(String checkType) { + this.checkType = checkType; + } public String getDefectCode() { return defectCode; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java index bc93b9a06..5619b9b99 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java @@ -70,10 +70,48 @@ public class QcCheckTypeProject extends BaseEntity { @Excel(name = "物料编码") private String materialCode; + private String materialName; + private Integer sort; private String projectNo; + private String checkTool; + private String checkMode; + private String uint; + + public String getUint() { + return uint; + } + + public void setUint(String uint) { + this.uint = uint; + } + + public String getCheckTool() { + return checkTool; + } + + public void setCheckTool(String checkTool) { + this.checkTool = checkTool; + } + + public String getCheckMode() { + return checkMode; + } + + public void setCheckMode(String checkMode) { + this.checkMode = checkMode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + public Integer getSort() { return sort; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index f5b04059f..bfe823578 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -6,6 +6,7 @@ import com.op.quality.domain.QcBomComponent; import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcSupplier; +import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.SysUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -79,4 +80,6 @@ public interface QcCheckTaskIncomeMapper { int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); int updateQcCheckTaskDetails(@Param("list") List details); + + List getQcUnitList(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java index 169691713..15c7b8f39 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java @@ -1,9 +1,12 @@ package com.op.quality.mapper; import java.util.List; +import java.util.Map; import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTypeProject; +import com.op.system.api.domain.SysDictData; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; /** @@ -65,4 +68,8 @@ public interface QcCheckTypeProjectMapper { List getTPByTypeMaterial(QcCheckTypeProject qctp); List getTPByTypeGroup(QcCheckTypeProject qctp); + + List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject); + @MapKey("dictValue") + Map getDictMap(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java index 1ed5f6358..32d573c95 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java @@ -1,20 +1,22 @@ package com.op.quality.service; import java.util.List; + +import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcMaterialGroup; import com.op.quality.domain.vo.TreeSelect; import com.op.system.api.domain.SysDept; /** * 物料组Service接口 - * + * * @author materialGroup * @date 2023-10-16 */ public interface IQcMaterialGroupService { /** * 查询物料组 - * + * * @param id 物料组主键 * @return 物料组 */ @@ -22,7 +24,7 @@ public interface IQcMaterialGroupService { /** * 查询物料组列表 - * + * * @param qcMaterialGroup 物料组 * @return 物料组集合 */ @@ -38,7 +40,7 @@ public interface IQcMaterialGroupService { /** * 新增物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -46,7 +48,7 @@ public interface IQcMaterialGroupService { /** * 修改物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -54,7 +56,7 @@ public interface IQcMaterialGroupService { /** * 批量删除物料组 - * + * * @param ids 需要删除的物料组主键集合 * @return 结果 */ @@ -62,11 +64,13 @@ public interface IQcMaterialGroupService { /** * 删除物料组信息 - * + * * @param id 物料组主键 * @return 结果 */ public int deleteQcMaterialGroupById(String id); public boolean validationData(String id); + + List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index 46bb5cc0f..785a37c39 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -6,6 +6,7 @@ import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; +import com.op.system.api.domain.SysDictData; import java.util.List; @@ -34,4 +35,6 @@ public interface QcProCheckService { List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); + + List getQcUnitList(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java similarity index 97% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java index c37f5bc59..6e6fd6068 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; @@ -19,7 +19,7 @@ import javax.servlet.http.HttpServletRequest; /** * 检验项目维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-13 */ @@ -30,7 +30,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 查询检验项目维护 - * + * * @param id 检验项目维护主键 * @return 检验项目维护 */ @@ -42,7 +42,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 查询检验项目维护列表 - * + * * @param qcCheckProject 检验项目维护 * @return 检验项目维护 */ @@ -54,7 +54,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 新增检验项目维护 - * + * * @param qcCheckProject 检验项目维护 * @return 结果 */ @@ -77,7 +77,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 修改检验项目维护 - * + * * @param qcCheckProject 检验项目维护 * @return 结果 */ @@ -91,7 +91,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 批量删除检验项目维护 - * + * * @param ids 需要删除的检验项目维护主键 * @return 结果 */ @@ -103,7 +103,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 删除检验项目维护信息 - * + * * @param id 检验项目维护主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java similarity index 99% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java index aeb97d41c..7cec9cea5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java similarity index 99% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java index 1feb39527..0dd13d133 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java similarity index 95% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java index 8c34e2c29..3dbfaf3da 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; @@ -102,12 +102,12 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer qctp.setTypeId(qcCheckReportIncome.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckReportIncome.getMaterialCode());//特性 /**qc_check_type_project**/ - List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - if(CollectionUtils.isEmpty(items)){ - /**qc_material_group_detail**/ + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + if(CollectionUtils.isEmpty(items)){ + /**qc_material_group_detail**/ QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckReportIncome.getMaterialCode()); if(group == null){ - return 0;//没有找到检测项目 + return 0;//没有找到检测项目 } qctp.setGroupId(group.getGroupId());//共性 items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 584aa143f..b1544f82f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -296,6 +296,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { String factoryCode = details.get(0).getFactoryCode(); String updateBy = details.get(0).getUpdateBy(); String belongId = details.get(0).getBelongTo(); + String checkType = details.get(0).getCheckType(); //默认合格 String result = "Y"; @@ -318,22 +319,23 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { logger.info("qc_check_task:"+n); /**更新qc_check_task_detail**/ for(QcCheckTaskDetail detail:details){ - + detail.setUpdateTime(nowTime); } - n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);; + n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details); logger.info("更新qc_check_task_detail:"+n); //不合格处理 if("N".equals(result)){ -// QcCheckUnqualified unqualified = new QcCheckUnqualified(); -// unqualified.setId(IdUtils.fastSimpleUUID()); -// unqualified.setTaskId(qcCheckTaskIncome.getRecordId()); -// unqualified.setCreateTime(DateUtils.getNowDate()); -// unqualified.setCreateBy(qcCheckTaskIncome.getUpdateBy()); -// unqualified.setFactoryCode(factoryCode); -// unqualified.setType(qcCheckTaskIncome.getCheckType()); -// /**qc_check_unqualified**/ -// qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); + QcCheckUnqualified unqualified = new QcCheckUnqualified(); + unqualified.setId(IdUtils.fastSimpleUUID()); + unqualified.setTaskId(belongId); + unqualified.setCreateTime(DateUtils.getNowDate()); + unqualified.setCreateBy(updateBy); + unqualified.setFactoryCode(factoryCode); + unqualified.setType(checkType); + /**qc_check_unqualified**/ + n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); + logger.info("qc_check_unqualified:"+n); } return n ; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java similarity index 84% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index adc747b70..142444992 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -1,11 +1,14 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; +import java.util.Map; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckTypeProjectMapper; @@ -18,7 +21,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料检验项目维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-17 */ @@ -29,7 +32,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 查询物料检验项目维护 - * + * * @param id 物料检验项目维护主键 * @return 物料检验项目维护 */ @@ -41,19 +44,29 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 查询物料检验项目维护列表 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 物料检验项目维护 */ @Override @DS("#header.poolName") public List selectQcCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { - return qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); + List dtos = qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); + DynamicDataSourceContextHolder.push("master"); + SysDictData sData = new SysDictData(); + sData.setDictType("unit"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if(dictMap != null){ + for(QcCheckTypeProject dto:dtos){ + dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + } + } + return dtos; } /** * 新增物料检验项目维护 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 结果 */ @@ -71,7 +84,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 修改物料检验项目维护 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 结果 */ @@ -85,7 +98,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 批量删除物料检验项目维护 - * + * * @param ids 需要删除的物料检验项目维护主键 * @return 结果 */ @@ -97,7 +110,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 删除物料检验项目维护信息 - * + * * @param id 物料检验项目维护主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java similarity index 98% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java index 0c7ff187d..88ee8cb94 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java similarity index 97% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java index 5867ad430..0d8325da1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; @@ -18,7 +18,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料组成员Service业务层处理 - * + * * @author Open Platform * @date 2023-10-18 */ @@ -29,7 +29,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 查询物料组成员 - * + * * @param id 物料组成员主键 * @return 物料组成员 */ @@ -41,7 +41,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 查询物料组成员列表 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 物料组成员 */ @@ -53,7 +53,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 新增物料组成员 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 结果 */ @@ -71,7 +71,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 修改物料组成员 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 结果 */ @@ -84,7 +84,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 批量删除物料组成员 - * + * * @param ids 需要删除的物料组成员主键 * @return 结果 */ @@ -96,7 +96,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 删除物料组成员信息 - * + * * @param id 物料组成员主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java similarity index 85% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index 4307a3bc3..08c509b49 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.ArrayList; import java.util.Iterator; @@ -7,13 +7,17 @@ import java.util.Map; import java.util.stream.Collectors; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.SpringUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.datascope.annotation.DataScope; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.vo.TreeSelect; +import com.op.quality.mapper.QcCheckTypeProjectMapper; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcMaterialGroupMapper; @@ -26,7 +30,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料组Service业务层处理 - * + * * @author materialGroup * @date 2023-10-16 */ @@ -34,10 +38,12 @@ import javax.servlet.http.HttpServletRequest; public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { @Autowired private QcMaterialGroupMapper qcMaterialGroupMapper; + @Autowired + private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; /** * 查询物料组 - * + * * @param id 物料组主键 * @return 物料组 */ @@ -46,7 +52,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { return qcMaterialGroupMapper.selectQcMaterialGroupById(id); } @Override - @DataScope(deptAlias = "d") + //@DataScope(deptAlias = "d") @DS("#header.poolName") public List selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup) { return qcMaterialGroupMapper.selectQcMaterialGroupList(qcMaterialGroup); @@ -54,7 +60,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 查询物料树列表 - * + * * @param qcMaterialGroup 物料组 * @return 物料组 */ @@ -119,7 +125,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 新增物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -137,7 +143,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 修改物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -151,7 +157,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 批量删除物料组 - * + * * @param ids 需要删除的物料组主键 * @return 结果 */ @@ -163,7 +169,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 删除物料组信息 - * + * * @param id 物料组主键 * @return 结果 */ @@ -179,6 +185,21 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { return qcMaterialGroupMapper.validationData(id).size() > 0; } + @Override + public List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { + List dtos = qcCheckTypeProjectMapper.getCheckTypeProjectList(qcCheckTypeProject); + DynamicDataSourceContextHolder.push("master"); + SysDictData sData = new SysDictData(); + sData.setDictType("unit"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if(dictMap != null){ + for(QcCheckTypeProject dto:dtos){ + dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + } + } + return dtos; + } + private boolean hasChild(List list, QcMaterialGroup t) { return getChildList(list, t).size() > 0 ? true : false; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java similarity index 93% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 005a118de..12f7129a1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -1,5 +1,6 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; @@ -14,6 +15,7 @@ import com.op.quality.domain.QcProCheck; import com.op.quality.mapper.QcCheckTaskIncomeMapper; import com.op.quality.mapper.QcProCheckMapper; import com.op.quality.service.QcProCheckService; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -127,4 +129,10 @@ public class QcProCheckServiceImpl implements QcProCheckService { return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); } + @Override + @DS("master") + public List getQcUnitList(SysDictData sysDictData) { + return qcCheckTaskIncomeMapper.getQcUnitList(sysDictData); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java similarity index 98% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java index 1e4a33797..016f5a277 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.Date; import java.util.List; @@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest; /** * 人员物料绑定Service业务层处理 - * + * * @author Open Platform * @date 2023-10-09 */ @@ -35,7 +35,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 查询人员物料绑定 - * + * * @param userCode 人员物料绑定主键 * @return 人员物料绑定 */ @@ -53,7 +53,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 查询人员物料绑定列表 - * + * * @param qcUserMaterial 人员物料绑定 * @return 人员物料绑定 */ @@ -65,7 +65,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 新增人员物料绑定 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ @@ -105,7 +105,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 修改人员物料绑定 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ @@ -118,7 +118,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 批量删除人员物料绑定 - * + * * @param userCodes 需要删除的人员物料绑定主键 * @return 结果 */ @@ -130,7 +130,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 删除人员物料绑定信息 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 37ede2cac..01fc97674 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -131,7 +131,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" td.create_time createTime, td.update_by updateBy, td.update_time updateTime, - td.update_time updateTime, td.belong_to belongTo, qctp.upper_diff upperDiff, qctp.down_diff downDiff, @@ -140,8 +139,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join qc_check_type_project qctp on td.type_project_id = qctp.id where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' + - + insert into qc_check_task record_id, @@ -258,14 +264,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update qc_check_task_detail set - zh_desc = #{item.name1}, - contact_phone = #{item.telf1}, - address = #{item.stras}, - factory_code = #{item.bukrs}, - create_time= #{item.erdat}, - update_time = #{item.erdat} + actual_value = #{item.actualValue}, + status = #{item.status}, + update_by = #{item.updateBy}, + update_time = #{item.updateTime} where - supplier_code = #{item.lifnr} + record_id = #{item.recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index dc43d312e..231ccdbcf 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -26,7 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num from qc_check_type_project + select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1, + create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num + from qc_check_type_project - + + insert into qc_check_type_project diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index 9e36c0ea6..6d96fc3a9 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -248,12 +248,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.material_code, qct.material_name, qct.quality, qct.unit, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code,qct.check_man_name, qct.check_time, qct.check_result, - qct.status,qct.create_by,qct.create_time + qct.status,qct.create_by,qct.create_time,qct.check_type from qc_check_task qct and qct.del_flag = '0' and qct.check_type = #{checkType} and qct.check_man_code = #{checkManCode} + and qct.check_status in (#{checkStatus}) order by qct.create_time desc From 3fc57331874cfc4562da6ac847af488e74a08771 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Wed, 29 Nov 2023 16:53:07 +0800 Subject: [PATCH 57/64] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/controller/DeviceInterfaceController.java | 10 ++++++++++ .../com/op/device/mapper/DeviceInterfaceMapper.java | 6 ++++++ .../op/device/service/IDeviceInterfaceService.java | 6 ++++++ .../service/impl/DeviceInterfaceServiceImpl.java | 11 +++++++++++ .../resources/mapper/device/DeviceInterfaceMapper.xml | 6 ++++++ 5 files changed, 39 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index ee308a848..bd048a058 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -71,4 +71,14 @@ public class DeviceInterfaceController { public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord); } + + /** + * 设备看板刷新时间 + * 初始值:五分钟刷新一次 + */ + @GetMapping("/getDeviceRefreshTime") + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getDeviceRefreshTime(equOperationRecord); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java index c0391bb88..9f63567c1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -37,4 +37,10 @@ public interface DeviceInterfaceMapper { MesReportWork selectReportWorkByEquipmentCode(String equipmentCode); List selectRepairRecordByEquipmentCode(String equipmentCode); + + /** + * 设备看板刷新时间 + * 初始值:5分钟 + */ + String getDeviceRefreshTime(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index 466671e22..db04b5393 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -39,4 +39,10 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); + + /** + * 设备看板刷新时间 + * 初始值:5分钟 + */ + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index a58cb1377..da8fba1c7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -206,4 +206,15 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); return success(equipmentIntactRate); } + + /** + * 看板刷新时间 + */ + @Override + @DS("master") + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) { + String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperationRecord); + int time = Integer.parseInt(refreshTime); + return success(time); + } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 27dfd636f..bd81324d5 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -58,4 +58,10 @@ and wo.work_status = '1' + + \ No newline at end of file From 680ea6bbd640ec75e6990f072e2bff614523cac9 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 29 Nov 2023 16:54:27 +0800 Subject: [PATCH 58/64] =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=8C=89=E5=B7=A1?= =?UTF-8?q?=E6=A3=80=E8=AE=A1=E5=88=92=E9=80=BB=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/EquPlanDetail.java | 20 +++++++++++ .../java/com/op/device/domain/EquPlanEqu.java | 20 +++++++++++ .../com/op/device/domain/EquPlanStandard.java | 20 +++++++++++ .../service/impl/EquPlanServiceImpl.java | 2 ++ .../service/impl/EquSpotCheckServiceImpl.java | 33 ++++++++++--------- .../mapper/device/DeviceInterfaceMapper.xml | 2 +- 6 files changed, 81 insertions(+), 16 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java index 3dc3daf11..17ad616f6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java @@ -82,6 +82,26 @@ public class EquPlanDetail extends BaseEntity { private String itemTools; + private String itemLoopType; + + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java index dbc4c85be..99ac57ef2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java @@ -66,6 +66,26 @@ public class EquPlanEqu extends BaseEntity { private String spareOnList; + private int itemLoop; + + private String itemLoopType; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + public String getSpareOnList() { return spareOnList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java index 37d7bbc06..93be774d8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java @@ -82,6 +82,26 @@ public class EquPlanStandard extends BaseEntity { private String itemTools; + private int itemLoop; + + private String itemLoopType; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + public String getItemMethod() { return itemMethod; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java index d72e0b73a..cecda23b8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java @@ -365,6 +365,8 @@ public class EquPlanServiceImpl implements IEquPlanService { List standardList = equPlanStandardMapper.selectEquPlanStandardListByParentCode(detail.getId()); for (EquPlanStandard standard : standardList) { standard.setShowFlag(true); + standard.setItemLoop(detail.getItemLoop()); + standard.setItemLoopType(detail.getItemLoopType()); } // 置入标准 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java index 869c5b835..7301bc0a2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java @@ -46,26 +46,29 @@ public class EquSpotCheckServiceImpl implements IEquSpotCheckService { if (equCheckItemList.size() > 0) { List detailList = new ArrayList<>(); for (EquCheckItem checkItem : equCheckItemList) { - EquPlanDetail detail = new EquPlanDetail(); - BeanUtils.copyProperties(checkItem,detail); + // 只需要循环周期一致的检查项 + if(checkItem.getItemLoop() == data.getItemLoop() && checkItem.getItemLoopType().equals(data.getItemLoopType())) { + EquPlanDetail detail = new EquPlanDetail(); + BeanUtils.copyProperties(checkItem,detail); - if (!detail.getItemCode().isEmpty()) { - itemTempName.append(detail.getItemName()).append(","); - // 获取检查项详情list - List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); - if (equCheckItemList.size() > 0) { - List standardList = new ArrayList<>(); - for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { - EquPlanStandard standard = new EquPlanStandard(); - BeanUtils.copyProperties(standardTemp,standard); + if (!detail.getItemCode().isEmpty()) { + itemTempName.append(detail.getItemName()).append(","); + // 获取检查项详情list + List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); + if (equCheckItemList.size() > 0) { + List standardList = new ArrayList<>(); + for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { + EquPlanStandard standard = new EquPlanStandard(); + BeanUtils.copyProperties(standardTemp,standard); - standard.setShowFlag(true); - standardList.add(standard); + standard.setShowFlag(true); + standardList.add(standard); + } + detail.setEquPlanStandardList(standardList); } - detail.setEquPlanStandardList(standardList); } + detailList.add(detail); } - detailList.add(detail); } data.setEquPlanDetailList(detailList); data.setItemTempName(itemTempName.toString()); diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 27dfd636f..e47ea09b0 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,7 +21,7 @@ + diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index cf5d03ba0..9a00d021d 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -21,6 +21,7 @@ import com.op.system.api.RemoteSapService; import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.dto.MesPrepareDTO; import com.op.system.api.domain.dto.MesPrepareDetailDTO; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapMaterialPreparation; import com.op.system.api.domain.sap.SapShopOrderQuery; @@ -306,14 +307,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sapList.add(sap); //添加调用sap日志 - SysSapLog sysSapLog = new SysSapLog(); - sysSapLog.setId(IdUtils.fastSimpleUUID()); - sysSapLog.setMesssge(Arrays.asList(sapList).toString()); - sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds"); - sysSapLog.setReqcode("请求"); - sysSapLog.setCreateTime(DateUtils.getNowDate()); - proOrderMapper.addSapLog(sysSapLog); - +// SysSapLog sysSapLog = new SysSapLog(); +// sysSapLog.setId(IdUtils.fastSimpleUUID()); +// sysSapLog.setMesssge(Arrays.asList(sapList).toString()); +// sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds"); +// sysSapLog.setReqcode("请求"); +// sysSapLog.setCreateTime(DateUtils.getNowDate()); +// proOrderMapper.addSapLog(sysSapLog); + logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap虚拟工单号开始:"+Arrays.asList(sapList).toString()); R>> r = remoteSapService.SapCreateOrder(sapList); logger.info("sap工单回传:" + r.getMsg()); if (500 == r.getCode()) { @@ -328,7 +329,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } Date updateTime = DateUtils.getNowDate(); if (!CollectionUtils.isEmpty(returnCodes)) { - logger.info("sap工单回传sap虚拟工单号:" + StringUtils.join(returnCodes, ",")); + logger.info("sap工单回传sap虚拟工单号结束:" + StringUtils.join(returnCodes, ",")); //按照母子顺序进行更新 for (int m=0;m Date: Wed, 29 Nov 2023 18:26:19 +0800 Subject: [PATCH 61/64] =?UTF-8?q?sap=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B42?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/open/service/impl/OpenServiceImpl.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 252f8d659..bd553c455 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -1,6 +1,7 @@ package com.op.open.service.impl; import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; @@ -190,11 +191,11 @@ public class OpenServiceImpl implements OpenService { lt_hwList.add(lthw); } }else{ - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"mes_report_work_consume没有数据"); - return R.fail("mes_report_work_consume没有数据"); + logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"==mes_report_work_consume没有数据"); + //return R.fail("mes_report_work_consume没有数据"); } sapRFW.setLt_hwList(lt_hwList); - + logger.info(work.getWorkorderCodeSap()+"母sap工单报工请求:"+ JSONObject.toJSONString(sapRFW)); R r = remoteSapService.sapRFWOrder(sapRFW); logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); //上传成功,更改mes_report_work状态 @@ -209,9 +210,7 @@ public class OpenServiceImpl implements OpenService { //工单完成数量>工单数量:关闭订单 MesReportWorkDTO proResult = openMapper.getProdResult(work); //ProOrderWorkorderDTO topOrder = this.getTopOrder(work.getWorkorderCode()); - if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0 - || - "1".equals(work.getEndReport())//最终报工标识 + if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识 ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); From d248021e95f80f8ef7f7e55c5e9e9f44707ffb88 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 29 Nov 2023 18:33:05 +0800 Subject: [PATCH 62/64] =?UTF-8?q?sap=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B43?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/open/service/impl/OpenServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index bd553c455..ebdcc7bd4 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -213,7 +213,6 @@ public class OpenServiceImpl implements OpenService { if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识 ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); - //工单完成,关闭母工单 List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 //关闭母子订单//订单的订单编码 From e230ba1bd38418e8262d2ca488467f34501490ae Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Wed, 29 Nov 2023 23:06:29 +0800 Subject: [PATCH 63/64] =?UTF-8?q?SAP=E6=8A=A5=E5=B7=A5=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/domain/sap/SapRFW.java | 4 +- .../op/common/core/constant/Constants.java | 10 + .../com/op/sap/controller/SapController.java | 184 +++++++++--------- .../sap/service/impl/SapOrderServiceImpl.java | 11 +- 4 files changed, 113 insertions(+), 96 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java index 6d21a1167..534fd004d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -44,7 +44,7 @@ public class SapRFW { } - public class lt_gs + public static class lt_gs { String conf_activity1; String conf_activity2; @@ -114,7 +114,7 @@ public class SapRFW { } } - public class lt_hw{ + public static class lt_hw{ String material; String entry_qnt; diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java b/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java index a22d102ba..3a8f7782e 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java @@ -137,4 +137,14 @@ public class Constants { public static final String LOW="LOW"; public static final String HIGH="HIGH"; + + /** + * SAP物料移动类型 + */ + + //退料 + public static final Integer TL=262; + + //领料 + public static final Integer LL=261; } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 77640f012..cdc632b12 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -52,27 +52,8 @@ public class SapController extends BaseController { @Autowired private SapBomMapper sapBomMapper; - /** - * 订单同步接口 - * @return - */ - @PostMapping("/shopOrderSync") - @Log(title = "同步SAP订单", businessType = BusinessType.SAP) - public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder){ - return sapOrderService.shopOrderSync(sapProOrder); - } - - /** - * SAP订单修改接口 - * 传递母订单号和母订单数量 - */ - @PostMapping("/shopUpdateSync") - @Log(title = "修改SAP订单", businessType = BusinessType.SAP) - public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder){ - return sapOrderService.shopUpdateSync(sapProOrder); - } - + /**====================主数据相关===================================================================================*/ /** * 物料同步接口 * @param @@ -113,7 +94,7 @@ public class SapController extends BaseController { } /** - * 物料清单同步接口 + * 物料清单BOM同步接口 * @return */ @PostMapping("/bomSync") @@ -151,7 +132,6 @@ public class SapController extends BaseController { } - /** * 工艺路线同步 * @return @@ -176,7 +156,7 @@ public class SapController extends BaseController { calendar.setTime(maxTime0); calendar.add(Calendar.DAY_OF_YEAR, 1); Date maxTime = calendar.getTime(); - // qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + // qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 } qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 @@ -190,74 +170,6 @@ public class SapController extends BaseController { return R.ok(); } - /** - * 生产订单备料单接口 - * @param shopOrder - * @return - */ - - @PostMapping("/materialPreparation") - @Log(title = "生产订单备料单接口", businessType = BusinessType.SAP) - public R> materialPreparation(@RequestParam("shopOrder") String shopOrder){ - return sapMaterialPreparationService.MaterialPreparation(shopOrder); - } - - - /** - * 反冲物料领料过账接口 - * ***与包材领料分开过账 - * @param sapBackflushMPQueryList - * @return - */ - @PostMapping("/sapBackflushMP") - @Log(title = "", businessType = BusinessType.SAP) - public R sapBackflushMP(@RequestBody List sapBackflushMPQueryList){ - return sapItemSyncService.sapBackflushMP(sapBackflushMPQueryList); - } - - @PostMapping("/sapMaterialPosting") - @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) - public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ - return sapItemSyncService.sapMaterialPosting(sapMaterialPosting); - } - - - /** - * 生产订单创建接口 - * @param sapCreateOrderList - * @return - */ - - @PostMapping("/sapCreateOrder") - @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) - public R>> SapCreateOrder(@RequestBody List sapCreateOrderList){ - return sapOrderService.SapCreateOrder(sapCreateOrderList); - } - - /** - * 生产订单关闭接口 - * 传母订单号即可 - * @param sapCloseOrderQuery - * @return - */ - @PostMapping("/sapCloseOrder") - @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) - public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){ - return sapOrderService.sapCloseOrder(sapCloseOrderQuery); - } - - /** - * 报工 - * @param sapRFW - * @return - */ - @PostMapping("/sapRFWOrder") - @Log(title = "生产订单报工接口", businessType = BusinessType.SAP) - public R sapRFWOrder(@RequestBody SapRFW sapRFW){ - return sapOrderService.sapRFWOrder(sapRFW); - } - - /** * 工作中心 * @return @@ -382,6 +294,96 @@ public class SapController extends BaseController { } + /**==================================生产订单相关============================================================================*/ + + /** + * 订单同步接口 + * @return + */ + @PostMapping("/shopOrderSync") + @Log(title = "同步SAP订单", businessType = BusinessType.SAP) + public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder){ + return sapOrderService.shopOrderSync(sapProOrder); + } + /** + * 生产订单创建接口 + * @param sapCreateOrderList + * @return + */ + + @PostMapping("/sapCreateOrder") + @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) + public R>> SapCreateOrder(@RequestBody List sapCreateOrderList){ + return sapOrderService.SapCreateOrder(sapCreateOrderList); + } + /** + * SAP订单修改接口 + * 传递母订单号和母订单数量 + */ + @PostMapping("/shopUpdateSync") + @Log(title = "修改SAP订单", businessType = BusinessType.SAP) + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder){ + return sapOrderService.shopUpdateSync(sapProOrder); + } + + + /** + * 报工 + * @param sapRFW + * @return + */ + @PostMapping("/sapRFWOrder") + @Log(title = "生产订单报工接口", businessType = BusinessType.SAP) + public R sapRFWOrder(@RequestBody SapRFW sapRFW){ + return sapOrderService.sapRFWOrder(sapRFW); + } + + /** + * 生产订单关闭接口 + * 传母订单号即可 + * @param sapCloseOrderQuery + * @return + */ + @PostMapping("/sapCloseOrder") + @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) + public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){ + return sapOrderService.sapCloseOrder(sapCloseOrderQuery); + } + + + + /** + * 生产订单备料单接口 + * @param shopOrder + * @return + */ + + @PostMapping("/materialPreparation") + @Log(title = "生产订单备料单接口", businessType = BusinessType.SAP) + public R> materialPreparation(@RequestParam("shopOrder") String shopOrder){ + return sapMaterialPreparationService.MaterialPreparation(shopOrder); + } + + /** + * 反冲物料领料过账接口 + * ***与包材领料分开过账 + * @param sapBackflushMPQueryList + * @return + */ + @PostMapping("/sapBackflushMP") + @Log(title = "", businessType = BusinessType.SAP) + public R sapBackflushMP(@RequestBody List sapBackflushMPQueryList){ + return sapItemSyncService.sapBackflushMP(sapBackflushMPQueryList); + } + + + @PostMapping("/sapMaterialPosting") + @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) + public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ + return sapItemSyncService.sapMaterialPosting(sapMaterialPosting); + } + + /** * 采购订单接口 */ diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index adc7b5bfc..e3dca4824 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.sap.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.op.common.core.constant.Constants; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; @@ -244,6 +245,8 @@ public class SapOrderServiceImpl implements SapOrderService { @Override public R sapRFWOrder(SapRFW sapRFW) { + String json= JSONObject.toJSONString(sapRFW); + System.out.println(json); String MESSAGE=null; try { //获取连接 @@ -300,10 +303,10 @@ public class SapOrderServiceImpl implements SapOrderService { JCoParameterList J= func.getExportParameterList(); System.out.println(J); MESSAGE= func.getExportParameterList().getString("MESSAGE"); - if (StringUtils.isEmpty(MESSAGE)){ - return R.fail("订单号:"+sapRFW.getAufnr()+"报工失败"); + if (StringUtils.contains(MESSAGE,"错误")){ + return R.fail("订单号:"+sapRFW.getAufnr()+"报工失败"+MESSAGE); } - return R.ok(MESSAGE); + return R.ok("",MESSAGE); }catch (Exception e){ return R.fail(e.getMessage()); @@ -404,6 +407,8 @@ public class SapOrderServiceImpl implements SapOrderService { return R.fail(e.getMessage()); } } + + } From 304370cde2702982719c2af0ec911dc337df4fb5 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 30 Nov 2023 09:09:48 +0800 Subject: [PATCH 64/64] =?UTF-8?q?sap=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B43?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/system/api/domain/sap/SapRFW.java | 2 +- .../java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java | 2 +- .../src/main/java/com/op/open/service/impl/OpenServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java index 534fd004d..19a581c84 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -114,7 +114,7 @@ public class SapRFW { } } - public static class lt_hw{ + public class lt_hw{ String material; String entry_qnt; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index edc31d230..435f3d3a8 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -298,7 +298,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.new lt_gs();//生产订单报工工时修改 + SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 ltgs.setConf_activity1(work.getSac1());//人工 ltgs.setConf_activity2(work.getSac2()); ltgs.setConf_activity3(work.getSac3());//机器 diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index ebdcc7bd4..2bd5a1aac 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -168,7 +168,7 @@ public class OpenServiceImpl implements OpenService { SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.new lt_gs();//生产订单报工工时修改 + SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 ltgs.setConf_activity1(work.getSac1());//人工 ltgs.setConf_activity2(work.getSac2()); ltgs.setConf_activity3(work.getSac3());//机器