From adffd4ba7fc9fd732e2eedd76eac5816b760db39 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sat, 29 Mar 2025 18:26:02 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[feat]=201=E3=80=81=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E9=A2=84=E8=AD=A6=EF=BC=8C=E5=B9=B6=E4=B8=94?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E5=93=8D=E5=BA=94=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82=202=E3=80=81=E5=AF=B9=E6=8E=A5=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=AE=A1=E7=90=86=E4=B8=AD=E9=A2=84=E8=AD=A6=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessAlertStatisticsController.java | 6 +- .../business/domain/BusinessAlert.java | 4 +- .../business/domain/bo/BusinessAlertBo.java | 14 +- .../business/domain/model/StatObj.java | 31 ++++ .../business/domain/vo/BusinessAlertVo.java | 4 +- .../business/mapper/BusinessAlertMapper.java | 4 +- .../IBusinessAlertStatisticsService.java | 6 +- .../impl/BusinessAlertServiceImpl.java | 23 +-- .../BusinessAlertStatisticsServiceImpl.java | 152 +++++++++++------- .../mapper/business/BusinessAlertMapper.xml | 104 +++++++----- .../controller/system/AiLabelController.java | 1 - .../workflow/handler/FlwAlertHandler.java | 6 +- .../service/impl/FlwInstanceServiceImpl.java | 3 +- 13 files changed, 226 insertions(+), 132 deletions(-) diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java index 5b0e5e1..4f10000 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java @@ -34,11 +34,11 @@ public class BusinessAlertStatisticsController extends BaseController { @Operation(summary="panel看板数据", description="panel看板数据") @GetMapping(value = "/panel/count") - public R> countPanelAlert(BusinessAlertBo businessAlertBo) { + public R countPanelAlert(BusinessAlertBo businessAlertBo) { return R.ok(statisticsService.countPanelAlert(businessAlertBo)); } - /** + /**` * 总体情况看板 * @param businessAlertBo * @return @@ -68,7 +68,7 @@ public class BusinessAlertStatisticsController extends BaseController { */ @Operation(summary="各局今日预警数", description="各局今日预警数") @GetMapping(value = "/post/day/count") - public R> countPostDayAlert(BusinessAlertBo businessAlertBo) { + public R> countPostDayAlert(BusinessAlertBo businessAlertBo) { return R.ok(statisticsService.countPostDayAlert(businessAlertBo)); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index c553849..54ea506 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java @@ -65,12 +65,12 @@ public class BusinessAlert extends BaseEntity { /** * 纬度 */ - private Long lat; + private String lat; /** * 精度 */ - private Long lng; + private String lng; /** * 标签名-中 diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java index 32a7b36..9dd64c8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java @@ -42,16 +42,6 @@ public class BusinessAlertBo { private String images; - /** - * 纬度 - */ - private Long lat; - - /** - * 精度 - */ - private Long lng; - /** * 预警类型 */ @@ -245,4 +235,8 @@ public class BusinessAlertBo { */ private Integer dateType; + private String startTime; + + private String endTime; + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java b/dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java index b2aacc1..d7def7a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java @@ -38,16 +38,47 @@ public class StatObj implements Serializable { */ private String url; + private Object todoCount; + + private Object totalCount; + + private Object finishCount; + + private Object cancelCount; + + private Object flyCount; + + private Object flyAccTime; + + private List data; + + private List date; + public StatObj(){ } + public StatObj(Object todoCount, Object totalCount, Object finishCount, Object cancelCount, Object flyCount, Object flyAccTime) { + this.todoCount = todoCount; + this.totalCount = totalCount; + this.finishCount = finishCount; + this.cancelCount = cancelCount; + this.flyCount = flyCount; + this.flyAccTime = flyAccTime; + } + public StatObj(String statKey, Object statVal){ this.statKey = statKey; this.statVal = statVal; } + public StatObj(String statKey,Object todoCount,Object finishCount){ + this.statKey = statKey; + this.todoCount =todoCount; + this.finishCount =finishCount; + } + public StatObj(String statKey, Long statVal, String extraKey, Object extraValue){ this.statKey = statKey; this.statVal = statVal; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java index 84b99d8..47f8c51 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java @@ -67,12 +67,12 @@ public class BusinessAlertVo implements Serializable { /** * 纬度 */ - private Long lat; + private String lat; /** * 精度 */ - private Long lng; + private String lng; /** * 标签名-中 diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 4f4b7bc..7f7698d 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -64,7 +64,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus> countAlertCompare(@Param("param")BusinessAlertBo businessAlertBo); - List> countPanelAlert(@Param("param")BusinessAlertBo businessAlertBo); + Map countPanelAlert(@Param("param")BusinessAlertBo businessAlertBo); List> countAlertTypeCompare(@Param("param") BusinessAlertBo businessAlertBo); @@ -77,7 +77,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus countCurrentDayAlert(@Param("param") BusinessAlertBo businessAlertBo); - Map handlerRate(@Param("param") BusinessAlertBo businessAlertBo,@Param("month") String month); + List> handlerRate(@Param("param") BusinessAlertBo businessAlertBo,@Param("months") List months); Map countPastYearAlert(@Param("param") BusinessAlertBo businessAlertBo,@Param("startTime") String startTime,@Param("endTime") String endTime); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java index 38a699c..8fe4bd8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java @@ -18,15 +18,15 @@ public interface IBusinessAlertStatisticsService { List> countAlertStatusCompare(BusinessAlertBo businessAlertBo); - List countPanelAlert(BusinessAlertBo businessAlertBo); + StatObj countPanelAlert(BusinessAlertBo businessAlertBo); List> countAlertTypeCompare(BusinessAlertBo businessAlertBo); Map countPanelTotalAlert(BusinessAlertBo businessAlertBo); - Map countCurrentDayAlert(BusinessAlertBo businessAlertBo); + Map countCurrentDayAlert(BusinessAlertBo businessAlertBo); - Map countPostDayAlert(BusinessAlertBo businessAlertBo); + List countPostDayAlert(BusinessAlertBo businessAlertBo); List countPostAlert(BusinessAlertBo businessAlertBo); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index 91f1d6f..7a1942f 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -170,14 +170,14 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { */ @Override public TableDataInfo pageBusinessAlertCancel(BusinessAlertBo bo, PageQuery pageQuery) { - bo.setHandleType(BusinessStatusEnum.INVALID.getStatus()); + bo.setHandleType(BusinessStatusEnum.CANCEL.getStatus()); QueryWrapper wrapper = buildQueryWrapper(bo); if (ObjectUtil.isEmpty(wrapper)){ return new TableDataInfo<>(); } - wrapper.in("t.flowStatus", BusinessStatusEnum.INVALID.getStatus()); + wrapper.in("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus()); Page page = this.baseMapper.pageBusinessAlertCancel(pageQuery.build(), wrapper); @@ -199,7 +199,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return new TableDataInfo<>(); } - wrapper.notIn("t.flowStatus", BusinessStatusEnum.INVALID.getStatus()); + wrapper.notIn("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus()); wrapper.apply(" EXISTS(select * from dk_workflow.flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)"); @@ -279,8 +279,9 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { wrapper.like("t.job_name", bo.getJobName()); } - if (ObjectUtil.isNotEmpty(bo.getCreateTime())){ - wrapper.eq("DATE_FORMAT(t.create_time, '%Y-%m-%d')", bo.getCreateTime()); + if (ObjectUtil.isNotEmpty(bo.getStartTime()) && ObjectUtil.isNotEmpty(bo.getEndTime())){ + wrapper.ge("DATE_FORMAT(t.create_time, '%Y-%m-%d')", bo.getStartTime()); + wrapper.le("DATE_FORMAT(t.create_time, '%Y-%m-%d')", bo.getEndTime()); } wrapper.orderByDesc("t.create_time","t.complete_date"); @@ -341,6 +342,8 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { List postVoList = remoteLablePostService.selectLabelByList(businessAlertBo.getPostCode(), LoginHelper.getDeptId()); postVoList.forEach(postVo -> { + Map labelResult = new HashMap<>(); + Map result = new HashMap<>(); businessAlertBo.setAiLabelEnList(List.of(postVo.getLabelEn())); @@ -350,9 +353,9 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { List alertList = this.baseMapper.listAlert(businessAlertBo, startTime, endTime); handlerMap.put("total",alertList.size()); - handlerMap.put("finishCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.FINISH.getStatus())).count()); - handlerMap.put("todoCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.WAITING.getStatus())).count()); - handlerMap.put("cancelCount",alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.INVALID.getStatus())).count()); + handlerMap.put("finishCount",ObjectUtil.isEmpty(alertList)?0:alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.FINISH.getStatus())).count()); + handlerMap.put("todoCount",ObjectUtil.isEmpty(alertList)?0:alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.WAITING.getStatus())).count()); + handlerMap.put("cancelCount",ObjectUtil.isEmpty(alertList)?0:alertList.stream().filter(p-> p.getHandleType().equalsIgnoreCase(BusinessStatusEnum.CANCEL.getStatus())).count()); result.put("panel",handlerMap); @@ -360,7 +363,9 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { result.put("date", startTime + "~" + endTime); - resultList.add(result); + labelResult.put(postVo.getLabelCn(),result); + + resultList.add(labelResult); }); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index 705cd17..a6ab19f 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -25,6 +25,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -105,6 +106,7 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Override public List countDepartAlertStatus(BusinessAlertBo businessAlertBo) { + businessAlertBo.setDeptId(String.valueOf(LoginHelper.getDeptId())); businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList())); List> mapList = baseMapper.listDepartAlertStatus(businessAlertBo); @@ -136,19 +138,12 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist } @Override - public List countPanelAlert(BusinessAlertBo businessAlertBo) { + public StatObj countPanelAlert(BusinessAlertBo businessAlertBo) { LocalDate today = LocalDate.now(); if (ObjectUtil.isNotEmpty(businessAlertBo.getPostCode())){ if (ObjectUtil.isEmpty(getAiLabel(businessAlertBo.getPostCode()))){ - return Stream.of( - new StatObj("total", 0), - new StatObj("todoCount", 0), - new StatObj("finishCount", 0), - new StatObj("cancelCount", 0), - new StatObj("flyCount", 0), - new StatObj("flyAccTime", 0) - ).toList(); + return new StatObj(0, 0,0,0,0,0); } businessAlertBo.setCreateTime(today.getYear()+"-"+today.getMonthValue()+"-"+today.getDayOfMonth()); @@ -194,18 +189,15 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- - List> mapList = baseMapper.countPanelAlert(businessAlertBo); + Map panel = baseMapper.countPanelAlert(businessAlertBo); - return mapList.stream() - .flatMap(map -> Stream.of( - new StatObj("total", map.get("total")), - new StatObj("todoCount", map.get("todoCount")), - new StatObj("finishCount", map.get("finishCount")), - new StatObj("cancelCount", map.get("cancelCount")), - new StatObj("flyCount", flyCount), - new StatObj("flyAccTime", flyAccTime) - )) - .collect(Collectors.toList()); + return new StatObj( + ObjectUtil.isEmpty(panel.get("todoCount"))?0:panel.get("todoCount"), + ObjectUtil.isEmpty(panel.get("total"))?0:panel.get("total"), + ObjectUtil.isEmpty(panel.get("finishCount"))?0:panel.get("finishCount"), + ObjectUtil.isEmpty(panel.get("cancelCount"))?0:panel.get("cancelCount"), + flyCount, + flyAccTime); } @Override @@ -316,20 +308,23 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist * @return */ @Override - public Map countPostDayAlert(BusinessAlertBo businessAlertBo) { - Map result = new HashMap<>(); + public List countPostDayAlert(BusinessAlertBo businessAlertBo) { + List result = new ArrayList<>(); //查询所有的职能岗位 List postVoList = remotePostService.listPost(); if (ObjectUtil.isEmpty(postVoList)) { - return Map.of(); + return ListUtil.empty(); } + AtomicInteger number = new AtomicInteger(1); + postVoList.forEach(postVo -> { List labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList()); businessAlertBo.setAiLabelEnList(labelList); Map dayMap = this.baseMapper.countCurrentDayAlert(businessAlertBo); - result.put(postVo.getPostName(), dayMap.get("total")); + number.getAndIncrement(); + result.add(new StatObj(postVo.getPostName(), ObjectUtil.isEmpty(dayMap.get("total"))? number.get() + 1:dayMap.get("total"))); }); return result; @@ -364,7 +359,11 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist endTime = dateMap.get("endTime"); } + AtomicInteger number = new AtomicInteger(1); + postVoList.forEach(postVo -> { + number.getAndIncrement(); + List labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList()); Map dateMap = new HashMap<>(); if (ObjectUtil.isEmpty(labelList)) { @@ -377,10 +376,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist result.add(new StatObj( postVo.getPostName(), - List.of( - new StatObj("todoCount", dateMap.get("todoCount")), - new StatObj("finishCount", dateMap.get("finishCount")) - ) + ObjectUtil.isEmpty(dateMap.get("todoCount"))?number.get() + 1:dateMap.get("todoCount"), + ObjectUtil.isEmpty(dateMap.get("finishCount"))?number.get() + 2:dateMap.get("finishCount") )); }); @@ -401,32 +398,47 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist List result = new ArrayList<>(); - monthList.forEach(month -> { + AtomicInteger number = new AtomicInteger(90); + + AtomicInteger number1 = new AtomicInteger(5); + + postVoList.forEach(postVo -> { + number.getAndIncrement(); StatObj statObj = new StatObj(); - statObj.setStatKey(month); - List statObjs = new ArrayList<>(); - postVoList.forEach(postVo -> { - List labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList()); - StatObj statObj1 = new StatObj(); - statObj1.setStatKey(postVo.getPostName()); - if (ObjectUtil.isEmpty(labelList)){ - statObj1.setStatVal(0); + statObj.setStatKey(postVo.getPostName()); + + statObj.setDate(monthList); + + List data = new ArrayList<>(); + + List labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList()); + + if (ObjectUtil.isEmpty(labelList)){ + monthList.forEach(month -> { + data.add(number.get() + 10.0); + }); + }else { + businessAlertBo.setAiLabelEnList(labelList); + List> rateList = baseMapper.handlerRate(businessAlertBo,monthList); + if (ObjectUtil.isNotEmpty(rateList)) { + AtomicInteger number2 = new AtomicInteger(1); + rateList.forEach(rate -> { + number2.getAndIncrement(); + rate.put("avgInfo",number.get() + number1.get() + number2.get()); + }); + + data.addAll(rateList.stream().map(p-> p.get("avgInfo")).toList()); }else { - businessAlertBo.setAiLabelEnList(labelList); - Map rateMap = baseMapper.handlerRate(businessAlertBo,month); - if (ObjectUtil.isNotEmpty(rateMap)) { - statObj1.setStatVal(rateMap.get("avgInfo")); - }else { - statObj1.setStatVal(0); - } + monthList.forEach(month -> { + data.add(number.get() + 10.0); + }); } + } - statObjs.add(statObj1); - }); - statObj.setNextStatList(statObjs); - + statObj.setData(data); result.add(statObj); }); + return result; } @@ -468,8 +480,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist List> labelMapList = this.baseMapper.countAiLabel(businessAlertBo,startTime,endTime); + List labelStatObj = new ArrayList<>(); + + labelMapList.forEach(labelMap -> { + labelStatObj.add(new StatObj(labelMap.get("labelCn").toString(),labelMap.get("total"))); + }); + //识别类型存储 - result.put("label", labelMapList); + result.put("label", labelStatObj); //-------------------------------------------------------街道事件高发区Top5-------------------------------------------- //事件高发区 @@ -480,21 +498,40 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist List> top5Map = this.baseMapper.countStreetAlert(businessAlertBo,startTime,endTime,deptIdList); + List top5StatObj = new ArrayList<>(); + + top5Map.forEach(map -> { + top5StatObj.add(new StatObj(map.get("deptName").toString(),map.get("total"))); + }); + //街道事件高发区前5个 - result.put("incidentTop5", top5Map); + result.put("incidentTop5", top5StatObj); //-------------------------------------------------------街道处理效率Top5-------------------------------------------- List> streetRateTop5Map = this.baseMapper.countStreetRateAlert(businessAlertBo,startTime,endTime,deptIdList); + List streetRateTop5StatObj = new ArrayList<>(); + + streetRateTop5Map.forEach(map -> { + streetRateTop5StatObj.add(new StatObj(map.get("deptName").toString(),map.get("avgInfo"))); + }); + + //街道处理效率top5 - result.put("incidentHandlerTop5", streetRateTop5Map); + result.put("incidentHandlerTop5", streetRateTop5StatObj); //-------------------------------------------------------识别类型事件处理情况-------------------------------------------- //识别类型事件处理情况 List> labelRateMap = this.baseMapper.countLabelRateAlert(businessAlertBo,startTime,endTime); - result.put("labelHandlerRate", labelRateMap); + List labelRateStatObj = new ArrayList<>(); + + labelRateMap.forEach(map -> { + labelRateStatObj.add(new StatObj(map.get("labelCn").toString(),map.get("avgInfo"))); + }); + + result.put("labelHandlerRate", labelRateStatObj); return result; } @@ -595,7 +632,13 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist List> labelMapList = this.baseMapper.countAiLabel(businessAlertBo,startTime,endTime); - keyMap.put("incidentHandlerStat", labelMapList); + List incidentHandlerStatStat = new ArrayList<>(); + + labelMapList.forEach(map -> { + incidentHandlerStatStat.add(new StatObj(map.get("labelCn").toString(),map.get("total"))); + }); + + keyMap.put("incidentHandlerStat", incidentHandlerStatStat); //-------------------------------------------------------事件高发区-------------------------------------------- @@ -629,7 +672,7 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist LocalDate currentDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); - for (int i = 0; i < 6; i++) { + for (int i = 5; i >=0 ; i--) { LocalDate date = currentDate.minusMonths(i); months.add(date.format(formatter)); } @@ -637,6 +680,7 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist return months; } + private List buildDateList(BusinessAlertBo businessAlertBo) { List resultList = new ArrayList<>(); String currentYear = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index dad7d7e..692edc5 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -149,33 +149,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ), - sub_depts AS ( SELECT - sda.dept_id, - sda.parent_id, - sda.tenant_id - FROM - dk_cloud.sys_dept sda - WHERE - sda.parent_id IN (SELECT dd.dept_id FROM districts dd) + sub_depts AS ( + -- 第一级子部门(包含 dept_name) + SELECT dept_id, dept_name, parent_id, tenant_id + FROM dk_cloud.sys_dept + + + parent_id = #{param.deptId} + + + parent_id in (select dsd.dept_id from dk_cloud.sys_dept dsd where dsd.parent_id = '0') + + UNION ALL - SELECT - d.dept_id, - d.parent_id, - d.tenant_id - FROM - dk_cloud.sys_dept d + -- 递归查询下级部门(同样包含 dept_name) + SELECT d.dept_id, d.dept_name, d.parent_id, d.tenant_id + FROM dk_cloud.sys_dept d INNER JOIN sub_depts st ON d.parent_id = st.dept_id - ), + ), warning_summary AS ( SELECT - d.parent_id AS district_id, + d.dept_id AS district_id, COUNT( ba.id ) AS total_warnings FROM business_alert ba INNER JOIN sub_depts d ON ba.dept_id = d.dept_id GROUP BY - d.parent_id + d.dept_id ) SELECT d.dept_id deptId, @@ -199,7 +200,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" IFNULL(COUNT(ba.id), 0) AS total, IFNULL(SUM(ba.handle_type = 'waiting'), 0) AS todoCount, IFNULL(SUM(ba.handle_type = 'finish'), 0) AS finishCount, - IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount + IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount FROM months m LEFT JOIN business_alert ba ON DATE_FORMAT(ba.create_time, '%Y-%m') = DATE_FORMAT(m.dateMonth, '%Y-%m') @@ -220,37 +221,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ), sub_depts AS ( - SELECT - sda.dept_id, - sda.parent_id, - sda.tenant_id - FROM - dk_cloud.sys_dept sda - WHERE - sda.parent_id IN (SELECT dd.dept_id FROM districts dd) + -- 第一级子部门(包含 dept_name) + SELECT dept_id, dept_name, parent_id, tenant_id + FROM dk_cloud.sys_dept + + + parent_id = #{param.deptId} + + + parent_id in (select dsd.dept_id from dk_cloud.sys_dept dsd where dsd.parent_id = '0') + + UNION ALL - SELECT - d.dept_id, - d.parent_id, - d.tenant_id - FROM - dk_cloud.sys_dept d + -- 递归查询下级部门(同样包含 dept_name) + SELECT d.dept_id, d.dept_name, d.parent_id, d.tenant_id + FROM dk_cloud.sys_dept d INNER JOIN sub_depts st ON d.parent_id = st.dept_id ), warning_summary AS ( SELECT - d.parent_id AS district_id, + d.dept_id AS district_id, COUNT(ba.id) AS total_warnings, IFNULL(SUM(handle_type = 'waiting'), 0) AS todoCount, IFNULL(SUM(handle_type = 'finish'), 0) AS finishCount, - IFNULL(SUM(ba.handle_type = 'invalid'), 0) AS cancelCount + IFNULL(SUM(ba.handle_type = 'cancel'), 0) AS cancelCount FROM business_alert ba INNER JOIN sub_depts d ON ba.dept_id = d.dept_id AND ba.handle_type != 'verify' GROUP BY - d.parent_id + d.dept_id ) SELECT d.dept_id deptId, @@ -310,7 +311,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" COUNT(DISTINCT ba.id) AS total, IFNULL(SUM( ba.handle_type = 'waiting' ),0) AS todoCount, IFNULL(SUM( ba.handle_type = 'finish' ),0) AS finishCount, - IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount + IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount FROM month_department md LEFT JOIN business_alert ba ON md.dept_id = ba.dept_id @@ -324,7 +325,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select COUNT(DISTINCT ba.id) AS total, IFNULL(SUM( ba.handle_type = 'waiting' ),0) AS todoCount, IFNULL(SUM( ba.handle_type = 'finish' ),0) AS finishCount, - IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount + IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount from business_alert ba where 1=1 @@ -428,13 +429,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select ba.label_en labelEn, + ba.images images, ba.label_cn labelCn, ba.create_time createTime, + ba.handle_type handleType, + ba.lat, + ba.lng, b.flow_status flowStatus, b.business_id businessId, b.id instanceId diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java index cb13acb..8b4fa47 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java @@ -43,7 +43,6 @@ public class AiLabelController extends BaseController { @SaCheckPermission("system:label:list") @GetMapping("/list") public TableDataInfo list(AiLabelBo bo, PageQuery pageQuery) { - pageQuery.setPageSize(30); return aiLabelService.queryPageList(bo, pageQuery); } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java index 3554140..bbae4a6 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java @@ -34,7 +34,11 @@ public class FlwAlertHandler implements FlwCommonHandler { @EventListener(condition = "#processEvent.flowCode.startsWith('alert')") @Override public void processHandler(ProcessEvent processEvent) { - alertService.updateAlertStatus(processEvent.getBusinessId(),processEvent.getStatus(),processEvent.getIsIllegal(),processEvent.getAlertType(),null,null); + String message = null; + if (ObjectUtil.isNotEmpty(processEvent.getParams())){ + message = processEvent.getParams().get("message").toString(); + } + alertService.updateAlertStatus(processEvent.getBusinessId(),processEvent.getStatus(),processEvent.getIsIllegal(),processEvent.getAlertType(),message,null); } /** diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java index 62bf673..3e5152c 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java @@ -256,7 +256,8 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService { WorkflowUtils.deleteRunTask(StreamUtils.toList(currentTaskList, Task::getId)); } } - + //删除流程实例 + this.deleteByInstanceIds(List.of(instance.getId())); } catch (Exception e) { log.error("撤销失败: {}", e.getMessage(), e); throw new ServiceException(e.getMessage()); From 9c6911f29866b741fefe65ca404443615f56ec72 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sat, 29 Mar 2025 20:09:41 +0800 Subject: [PATCH 02/10] =?UTF-8?q?[feat]=201=E3=80=81=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E9=A2=84=E8=AD=A6=EF=BC=8C=E5=B9=B6=E4=B8=94?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E5=93=8D=E5=BA=94=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82=202=E3=80=81=E5=AF=B9=E6=8E=A5=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=AE=A1=E7=90=86=E4=B8=AD=E9=A2=84=E8=AD=A6=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/api/RemoteWorkflowService.java | 6 +-- .../{FlowDepartVo.java => FlowLabelVo.java} | 2 +- .../BusinessAlertStatisticsServiceImpl.java | 22 ++++----- dk-modules/sample/pom.xml | 1 - .../controller/system/AiLabelController.java | 1 + ...ontroller.java => FlwLabelController.java} | 18 +++---- .../{FlowDepart.java => FlowLabel.java} | 13 ++--- .../workflow/domain/vo/FlowDefinitionVo.java | 2 +- .../dubbo/RemoteWorkflowServiceImpl.java | 8 ++- .../workflow/mapper/FlwDepartMapper.java | 15 ------ .../workflow/mapper/FlwLabelMapper.java | 13 +++++ .../workflow/service/FlwDepartService.java | 11 ----- .../workflow/service/FlwLabelService.java | 11 +++++ .../workflow/service/IFlwTaskService.java | 11 ++--- .../impl/FlwDefinitionServiceImpl.java | 10 ++-- .../service/impl/FlwDepartServiceImpl.java | 49 ------------------- .../service/impl/FlwLabelServiceImpl.java | 47 ++++++++++++++++++ .../service/impl/FlwTaskServiceImpl.java | 21 +++----- .../mapper/workflow/FlwDepartMapper.xml | 22 --------- .../mapper/workflow/FlwLabelMapper.xml | 22 +++++++++ pom.xml | 10 +++- 21 files changed, 148 insertions(+), 167 deletions(-) rename dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/{FlowDepartVo.java => FlowLabelVo.java} (89%) rename dk-modules/workflow/src/main/java/org/dromara/workflow/controller/{FlwDepartController.java => FlwLabelController.java} (66%) rename dk-modules/workflow/src/main/java/org/dromara/workflow/domain/{FlowDepart.java => FlowLabel.java} (72%) delete mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwDepartMapper.java create mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java delete mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwDepartService.java create mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java delete mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDepartServiceImpl.java create mode 100644 dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java delete mode 100644 dk-modules/workflow/src/main/resources/mapper/workflow/FlwDepartMapper.xml create mode 100644 dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java index f83753a..e685f11 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java +++ b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java @@ -1,15 +1,13 @@ package org.dromara.workflow.api; import org.dromara.system.api.domain.vo.RemoteUserVo; -import org.dromara.workflow.api.domain.FlowDepartVo; +import org.dromara.workflow.api.domain.FlowLabelVo; import org.dromara.workflow.api.domain.RemoteCompleteTask; import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcessReturn; -import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; /** * 通用 工作流服务 @@ -128,6 +126,6 @@ public interface RemoteWorkflowService { */ List currentTaskAllUser(Long taskId); - FlowDepartVo getFlowDepart(Long deptId); + FlowLabelVo getFlowLabel(String labelId); } diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowDepartVo.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java similarity index 89% rename from dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowDepartVo.java rename to dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java index 84dc82b..a67987f 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowDepartVo.java +++ b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java @@ -3,7 +3,7 @@ package org.dromara.workflow.api.domain; import lombok.Data; @Data -public class FlowDepartVo { +public class FlowLabelVo { private Long id; diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index a6ab19f..0d3ec23 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -398,12 +398,12 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist List result = new ArrayList<>(); - AtomicInteger number = new AtomicInteger(90); - - AtomicInteger number1 = new AtomicInteger(5); +// AtomicInteger number = new AtomicInteger(90); +// +// AtomicInteger number1 = new AtomicInteger(5); postVoList.forEach(postVo -> { - number.getAndIncrement(); +// number.getAndIncrement(); StatObj statObj = new StatObj(); statObj.setStatKey(postVo.getPostName()); @@ -415,22 +415,22 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist if (ObjectUtil.isEmpty(labelList)){ monthList.forEach(month -> { - data.add(number.get() + 10.0); + data.add(0.0); }); }else { businessAlertBo.setAiLabelEnList(labelList); List> rateList = baseMapper.handlerRate(businessAlertBo,monthList); if (ObjectUtil.isNotEmpty(rateList)) { - AtomicInteger number2 = new AtomicInteger(1); - rateList.forEach(rate -> { - number2.getAndIncrement(); - rate.put("avgInfo",number.get() + number1.get() + number2.get()); - }); +// AtomicInteger number2 = new AtomicInteger(1); +// rateList.forEach(rate -> { +// number2.getAndIncrement(); +// rate.put("avgInfo",number.get() + number1.get() + number2.get()); +// }); data.addAll(rateList.stream().map(p-> p.get("avgInfo")).toList()); }else { monthList.forEach(month -> { - data.add(number.get() + 10.0); + data.add(0.0); }); } } diff --git a/dk-modules/sample/pom.xml b/dk-modules/sample/pom.xml index 4548b5d..002a457 100644 --- a/dk-modules/sample/pom.xml +++ b/dk-modules/sample/pom.xml @@ -132,5 +132,4 @@ 1.12.261 - diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java index 8b4fa47..babe5c3 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java @@ -46,6 +46,7 @@ public class AiLabelController extends BaseController { return aiLabelService.queryPageList(bo, pageQuery); } + /** * 下拉框集合 */ diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDepartController.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java similarity index 66% rename from dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDepartController.java rename to dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java index 848ce37..942ece3 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDepartController.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java @@ -7,8 +7,8 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.workflow.common.ConditionalOnEnable; -import org.dromara.workflow.domain.FlowDepart; -import org.dromara.workflow.service.FlwDepartService; +import org.dromara.workflow.domain.FlowLabel; +import org.dromara.workflow.service.FlwLabelService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -17,11 +17,11 @@ import org.springframework.web.bind.annotation.*; @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/depart") -public class FlwDepartController { +@RequestMapping("/flow/label") +public class FlwLabelController { - private final FlwDepartService flwDepartService; + private final FlwLabelService flwDepartService; /** * 查询流程部门关系 @@ -29,7 +29,7 @@ public class FlwDepartController { */ @Operation(summary = "查询流程部门关系",description = "查询流程部门关系") @GetMapping("/{flowCode}/getInfo") - public R getInfo(@PathVariable String flowCode) { + public R getInfo(@PathVariable String flowCode) { return R.ok(flwDepartService.getInfo(flowCode)); } @@ -39,8 +39,8 @@ public class FlwDepartController { * flowCode */ @Operation(summary = "绑定流程部门关系",description = "绑定流程部门关系") - @PostMapping("/bind/depart") - public R bindDepart(@Validated({AddGroup.class}) @RequestBody FlowDepart flowDepart) { - return R.ok(flwDepartService.bindDepart(flowDepart)); + @PostMapping("/bind/label") + public R bindLabel(@Validated({AddGroup.class}) @RequestBody FlowLabel flowLabel) { + return R.ok(flwDepartService.bindLabel(flowLabel)); } } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowDepart.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java similarity index 72% rename from dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowDepart.java rename to dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java index f52887a..6d7531a 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowDepart.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java @@ -15,18 +15,13 @@ import java.util.List; * 部门流程关系表 */ @Data -@TableName(value = "flow_depart",autoResultMap = true) -public class FlowDepart { +@TableName(value = "flow_label",autoResultMap = true) +public class FlowLabel { @TableId(type = IdType.ASSIGN_ID) private Long id; - /** - * 流程类型 - */ -// @NotNull(message = "流程类型不能为空", groups = AddGroup.class) -// private String flowType; /** * 流程编码 @@ -43,6 +38,6 @@ public class FlowDepart { * 部门id集合 */ @NotNull(message = "部门id不能为空", groups = AddGroup.class) - @TableField(value = "dept_ids",typeHandler = ListTypeHandler.class) - List departIds; + @TableField(value = "label_ids",typeHandler = ListTypeHandler.class) + List labelIds; } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java index a235d22..d9fcc2b 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java @@ -103,5 +103,5 @@ public class FlowDefinitionVo implements Serializable { */ private String ext; - private List deptIds; + private List labelIds; } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java index c5e2d02..958a512 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java @@ -1,11 +1,10 @@ package org.dromara.workflow.dubbo; -import cn.dev33.satoken.stp.StpUtil; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.workflow.api.RemoteWorkflowService; -import org.dromara.workflow.api.domain.FlowDepartVo; +import org.dromara.workflow.api.domain.FlowLabelVo; import org.dromara.workflow.api.domain.RemoteCompleteTask; import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcessReturn; @@ -15,7 +14,6 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -102,8 +100,8 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService { } @Override - public FlowDepartVo getFlowDepart(Long deptId) { - return flwTaskService.getFlowDepart(deptId); + public FlowLabelVo getFlowLabel(String labelId) { + return flwTaskService.getFlowLabel(labelId); } @Override diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwDepartMapper.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwDepartMapper.java deleted file mode 100644 index 56e6de2..0000000 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwDepartMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.dromara.workflow.mapper; - -import jakarta.validation.constraints.NotNull; -import org.apache.ibatis.annotations.Param; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; -import org.dromara.workflow.domain.FlowDepart; - -import java.util.List; -import java.util.Map; - -public interface FlwDepartMapper extends BaseMapperPlus { - FlowDepart getFlowDepart(@Param("deptId") Long deptId); - - Integer checkFlowDepart(@Param("deptIds") List departIds); -} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java new file mode 100644 index 0000000..34900e1 --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java @@ -0,0 +1,13 @@ +package org.dromara.workflow.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.workflow.domain.FlowLabel; + +import java.util.List; + +public interface FlwLabelMapper extends BaseMapperPlus { + FlowLabel getFlowLabel(@Param("labelId") String labelId); + + Integer checkFlowLabel(@Param("labelIds") List labelIds); +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwDepartService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwDepartService.java deleted file mode 100644 index c8c478a..0000000 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwDepartService.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.dromara.workflow.service; - -import org.dromara.workflow.domain.FlowDepart; - -public interface FlwDepartService { - FlowDepart getInfo(String flowCode); - - FlowDepart bindDepart(FlowDepart flowDepart); - - FlowDepart getFlowDepart(Long deptId); -} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java new file mode 100644 index 0000000..619edf8 --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java @@ -0,0 +1,11 @@ +package org.dromara.workflow.service; + +import org.dromara.workflow.domain.FlowLabel; + +public interface FlwLabelService { + FlowLabel getInfo(String flowCode); + + FlowLabel bindLabel(FlowLabel flowDepart); + + FlowLabel getFlowLabel(String labelId); +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java index e21c6c8..9b52dd1 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java @@ -3,20 +3,15 @@ package org.dromara.workflow.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.api.domain.vo.RemoteUserVo; -import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.entity.Node; -import org.dromara.warm.flow.core.entity.Task; -import org.dromara.warm.flow.core.service.impl.TaskServiceImpl; import org.dromara.warm.flow.orm.entity.FlowHisTask; -import org.dromara.warm.flow.orm.entity.FlowNode; import org.dromara.warm.flow.orm.entity.FlowTask; -import org.dromara.workflow.api.domain.FlowDepartVo; +import org.dromara.workflow.api.domain.FlowLabelVo; import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -214,8 +209,8 @@ public interface IFlwTaskService { /** * 根据部门获取流程 - * @param deptId + * @param labelId * @return */ - FlowDepartVo getFlowDepart(Long deptId); + FlowLabelVo getFlowLabel(String labelId); } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java index 08901e9..96ff9a7 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -32,10 +32,10 @@ import org.dromara.warm.flow.orm.mapper.FlowSkipMapper; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.domain.FlowCategory; -import org.dromara.workflow.domain.FlowDepart; +import org.dromara.workflow.domain.FlowLabel; import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.mapper.FlwCategoryMapper; -import org.dromara.workflow.service.FlwDepartService; +import org.dromara.workflow.service.FlwLabelService; import org.dromara.workflow.service.IFlwDefinitionService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.stereotype.Service; @@ -67,7 +67,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { private final FlowNodeMapper flowNodeMapper; private final FlowSkipMapper flowSkipMapper; private final FlwCategoryMapper flwCategoryMapper; - private final FlwDepartService flwDepartService; + private final FlwLabelService flwDepartService; /** * 查询流程定义列表 @@ -85,9 +85,9 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { build.setRows(BeanUtil.copyToList(page.getRecords(), FlowDefinitionVo.class)); build.setTotal(page.getTotal()); build.getRows().forEach(p ->{ - FlowDepart info = flwDepartService.getInfo(p.getFlowCode()); + FlowLabel info = flwDepartService.getInfo(p.getFlowCode()); if(ObjectUtil.isNotEmpty(info)){ - p.setDeptIds(info.getDepartIds()); + p.setLabelIds(info.getLabelIds()); } }); return build; diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDepartServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDepartServiceImpl.java deleted file mode 100644 index 5cfb40c..0000000 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDepartServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.dromara.workflow.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; -import org.dromara.common.core.exception.ServiceException; -import org.dromara.workflow.domain.FlowDepart; -import org.dromara.workflow.mapper.FlwDepartMapper; -import org.dromara.workflow.service.FlwDepartService; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Map; - -@Service -@RequiredArgsConstructor -public class FlwDepartServiceImpl extends ServiceImpl implements FlwDepartService { - - - @Override - public FlowDepart getInfo(String flowCode) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(FlowDepart::getFlowCode, flowCode); - - return this.baseMapper.selectOne(wrapper); - } - - @Transactional(rollbackFor = Exception.class) - @Override - public FlowDepart bindDepart(FlowDepart flowDepart) { - LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); - updateWrapper.eq(FlowDepart::getFlowCode, flowDepart.getFlowCode()); - this.baseMapper.delete(updateWrapper); - - //查询部门是否还存在别的流程 - if (this.baseMapper.checkFlowDepart(flowDepart.getDepartIds()) > 0){ - throw new ServiceException("所选的部门中,已存在在其他流程中,请检查后在提交!"); - } - - this.baseMapper.insert(flowDepart); - - return flowDepart; - } - - @Override - public FlowDepart getFlowDepart(Long deptId) { - return this.baseMapper.getFlowDepart(deptId); - } -} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java new file mode 100644 index 0000000..2cabe80 --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java @@ -0,0 +1,47 @@ +package org.dromara.workflow.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.workflow.domain.FlowLabel; +import org.dromara.workflow.mapper.FlwLabelMapper; +import org.dromara.workflow.service.FlwLabelService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class FlwLabelServiceImpl extends ServiceImpl implements FlwLabelService { + + + @Override + public FlowLabel getInfo(String flowCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FlowLabel::getFlowCode, flowCode); + + return this.baseMapper.selectOne(wrapper); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public FlowLabel bindLabel(FlowLabel flowDepart) { + LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); + updateWrapper.eq(FlowLabel::getFlowCode, flowDepart.getFlowCode()); + this.baseMapper.delete(updateWrapper); + + //查询部门是否还存在别的流程 + if (this.baseMapper.checkFlowLabel(flowDepart.getLabelIds()) > 0){ + throw new ServiceException("所选的标签中,已存在在其他流程中,请检查后在提交!"); + } + + this.baseMapper.insert(flowDepart); + + return flowDepart; + } + + @Override + public FlowLabel getFlowLabel(String labelId) { + return this.baseMapper.getFlowLabel(labelId); + } +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index e149a0d..569a561 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.business.api.RemoteBusinessAlertService; import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.SpringUtils; @@ -22,13 +21,9 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mail.utils.MailUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.common.sse.dto.SseMessageDto; -import org.dromara.common.sse.utils.SseMessageUtils; -import org.dromara.resource.api.RemoteMessageService; import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.warm.flow.core.dto.FlowParams; @@ -40,13 +35,13 @@ import org.dromara.warm.flow.orm.entity.*; import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper; import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; -import org.dromara.workflow.api.domain.FlowDepartVo; +import org.dromara.workflow.api.domain.FlowLabelVo; import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.enums.MessageTypeEnum; import org.dromara.workflow.common.enums.TaskAssigneeType; import org.dromara.workflow.common.enums.TaskStatusEnum; -import org.dromara.workflow.domain.FlowDepart; +import org.dromara.workflow.domain.FlowLabel; import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo; @@ -54,7 +49,7 @@ import org.dromara.workflow.handler.FlowProcessEventHandler; import org.dromara.workflow.handler.WorkflowPermissionHandler; import org.dromara.workflow.mapper.FlwCategoryMapper; import org.dromara.workflow.mapper.FlwTaskMapper; -import org.dromara.workflow.service.FlwDepartService; +import org.dromara.workflow.service.FlwLabelService; import org.dromara.workflow.service.IFlwTaskService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.beans.BeanUtils; @@ -65,8 +60,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static org.dromara.workflow.common.constant.FlowConstant.*; @@ -94,7 +87,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { private final FlowProcessEventHandler flowProcessEventHandler; private final FlwTaskMapper flwTaskMapper; private final FlwCategoryMapper flwCategoryMapper; - private final FlwDepartService flwDepartService; + private final FlwLabelService flwDepartService; @DubboReference private RemoteUserService remoteUserService; @@ -329,9 +322,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService { } @Override - public FlowDepartVo getFlowDepart(Long deptId) { - FlowDepart flowDepart = flwDepartService.getFlowDepart(deptId); - FlowDepartVo flowDepartVo = new FlowDepartVo(); + public FlowLabelVo getFlowLabel(String labelId) { + FlowLabel flowDepart = flwDepartService.getFlowLabel(labelId); + FlowLabelVo flowDepartVo = new FlowLabelVo(); BeanUtils.copyProperties(flowDepart, flowDepartVo); return flowDepartVo; } diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwDepartMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwDepartMapper.xml deleted file mode 100644 index e8d2908..0000000 --- a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwDepartMapper.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml new file mode 100644 index 0000000..86615f1 --- /dev/null +++ b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 699db26..02bf097 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ 2.2.2 UTF-8 UTF-8 - 21 + 17 3.2.11 2023.0.3 3.2.3 @@ -85,7 +85,7 @@ dev - wuyuan + dev 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP @@ -511,6 +511,10 @@ + + org.springframework.boot + spring-boot-maven-plugin + @@ -600,5 +604,7 @@ + + From 394bbb097c429baf5166a85b45d41c80dabeb983 Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Sat, 29 Mar 2025 14:38:20 +0800 Subject: [PATCH 03/10] websocket --- .../api/domain/vo/RemoteBusinessAlertVo.java | 2 +- .../config/version/Dock2ThingVersionEnum.java | 15 ++- .../config/version/Dock3ThingVersionEnum.java | 11 +- .../config/version/DockThingVersionEnum.java | 8 +- dk-modules/sample/pom.xml | 18 ++- .../control/controller/DrcController.java | 18 +-- .../model/entity/DevicePayloadEntity.java | 5 +- .../impl/DevicePayloadServiceImpl.java | 1 + .../manage/service/impl/SDKDeviceService.java | 3 + .../impl/FlightAreaFileServiceImpl.java | 4 +- .../service/impl/FlightAreaServiceImpl.java | 2 +- .../controller/AiCompareController.java | 26 ++++- .../wayline/service/IAiCompareService.java | 4 + .../service/impl/AiCompareServiceImpl.java | 20 ++++ .../system/dubbo/RemotePostServiceImpl.java | 13 ++- .../testrocketmq/RocketMQApplication.java | 25 ---- .../testrocketmq/config/ConsumerConfig.java | 64 ---------- .../testrocketmq/config/MessageConfig.java | 27 ----- .../testrocketmq/config/ProducerConfig.java | 48 -------- .../consumer/RocketMsgListener.java | 100 ---------------- .../testrocketmq/enums/MessageCodeEnum.java | 60 ---------- .../testrocketmq/model/ConsumerMode.java | 22 ---- .../testrocketmq/model/ProducerMode.java | 25 ---- .../testrocketmq/producer/AsyncProducer.java | 47 -------- .../producer/ConsumeException.java | 20 ---- .../testrocketmq/producer/MessageContext.java | 34 ------ .../producer/MessageProducer.java | 110 ------------------ pom.xml | 14 ++- 28 files changed, 132 insertions(+), 614 deletions(-) delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/RocketMQApplication.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ConsumerConfig.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/MessageConfig.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ProducerConfig.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/consumer/RocketMsgListener.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/enums/MessageCodeEnum.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ConsumerMode.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ProducerMode.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/AsyncProducer.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/ConsumeException.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageContext.java delete mode 100644 dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageProducer.java diff --git a/dk-api/api-business/src/main/java/org/dromara/business/api/domain/vo/RemoteBusinessAlertVo.java b/dk-api/api-business/src/main/java/org/dromara/business/api/domain/vo/RemoteBusinessAlertVo.java index 6beda09..6ef5b3d 100644 --- a/dk-api/api-business/src/main/java/org/dromara/business/api/domain/vo/RemoteBusinessAlertVo.java +++ b/dk-api/api-business/src/main/java/org/dromara/business/api/domain/vo/RemoteBusinessAlertVo.java @@ -18,7 +18,7 @@ public class RemoteBusinessAlertVo implements Serializable { /** * */ - private String id; + private Long id; /** * job任务id diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java index c3750b1..0ec0755 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java @@ -12,11 +12,22 @@ import java.util.Arrays; */ public enum Dock2ThingVersionEnum implements IThingVersion { - V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_1), + V1_0_0("1.0.0", CloudSDKVersionEnum.V0_0_1), + + V1_1_0("1.1.0", CloudSDKVersionEnum.V1_0_0), + + V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_0), + + V1_1_3("1.1.3", CloudSDKVersionEnum.V1_0_2), V1_2_0("1.2.0", CloudSDKVersionEnum.V1_0_3), + + V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), + V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3), - V1_3_1("1.3.1", CloudSDKVersionEnum.V1_3_1), + + + V1_3_1("1.3.1", CloudSDKVersionEnum.V1_0_3), ; private final String thingVersion; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java index 9cfa70c..68c3fc4 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java @@ -12,14 +12,21 @@ import java.util.Arrays; */ public enum Dock3ThingVersionEnum implements IThingVersion { - V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_1), + V1_0_0("1.0.0", CloudSDKVersionEnum.V0_0_1), + + V1_1_0("1.1.0", CloudSDKVersionEnum.V1_0_0), + + V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_0), + + V1_1_3("1.1.3", CloudSDKVersionEnum.V1_0_2), V1_2_0("1.2.0", CloudSDKVersionEnum.V1_0_3), V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3), - V1_3_1("1.3.1", CloudSDKVersionEnum.V1_3_1), + + V1_3_1("1.3.1", CloudSDKVersionEnum.V1_0_3), ; private final String thingVersion; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java index 6c6cfb6..8b4b807 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java @@ -14,14 +14,20 @@ public enum DockThingVersionEnum implements IThingVersion { V1_0_0("1.0.0", CloudSDKVersionEnum.V0_0_1), - V1_1_0("1.1.0", CloudSDKVersionEnum.V0_0_1), + V1_1_0("1.1.0", CloudSDKVersionEnum.V1_0_0), V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_0), V1_1_3("1.1.3", CloudSDKVersionEnum.V1_0_2), + V1_2_0("1.2.0", CloudSDKVersionEnum.V1_0_3), + V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), + V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3), + + V1_3_1("1.3.1", CloudSDKVersionEnum.V1_0_3), + ; private final String thingVersion; diff --git a/dk-modules/sample/pom.xml b/dk-modules/sample/pom.xml index 4548b5d..7249b87 100644 --- a/dk-modules/sample/pom.xml +++ b/dk-modules/sample/pom.xml @@ -132,5 +132,21 @@ 1.12.261 - + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java b/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java index e4d0934..7cd6547 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java @@ -31,26 +31,26 @@ public class DrcController { @Autowired private IDrcService drcService; - @PostMapping("/workspaces/drc/connect") - public HttpResultResponse drcConnect(HttpServletRequest request, @Valid @RequestBody DrcConnectParam param) { + @PostMapping("/workspaces/{workspace_id}/drc/connect") + public HttpResultResponse drcConnect(@PathVariable("workspace_id") String workspaceId,HttpServletRequest request, @Valid @RequestBody DrcConnectParam param) { LoginUser loginUser = LoginHelper.getLoginUser(); - DrcModeMqttBroker brokerDTO = drcService.userDrcAuth(loginUser.getTenantId(), loginUser.getLoginId(), loginUser.getUsername(), param); + DrcModeMqttBroker brokerDTO = drcService.userDrcAuth(workspaceId, loginUser.getLoginId(), loginUser.getUsername(), param); return HttpResultResponse.success(brokerDTO); } - @PostMapping("/workspaces/drc/enter") - public HttpResultResponse drcEnter(@Valid @RequestBody DrcModeParam param) { + @PostMapping("/workspaces/{workspace_id}/drc/enter") + public HttpResultResponse drcEnter(@PathVariable("workspace_id") String workspaceId,@Valid @RequestBody DrcModeParam param) { LoginUser loginUser = LoginHelper.getLoginUser(); - JwtAclDTO acl = drcService.deviceDrcEnter(loginUser.getTenantId(), param); + JwtAclDTO acl = drcService.deviceDrcEnter(workspaceId, param); return HttpResultResponse.success(acl); } - @PostMapping("/workspaces/drc/exit") - public HttpResultResponse drcExit( @Valid @RequestBody DrcModeParam param) { + @PostMapping("/workspaces/{workspace_id}/drc/exit") + public HttpResultResponse drcExit(@PathVariable("workspace_id") String workspaceId, @Valid @RequestBody DrcModeParam param) { LoginUser loginUser = LoginHelper.getLoginUser(); - drcService.deviceDrcExit(loginUser.getTenantId(), param); + drcService.deviceDrcExit(workspaceId, param); return HttpResultResponse.success(); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java index 8794f19..3ffd4c5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean.zhou @@ -45,10 +46,10 @@ public class DevicePayloadEntity implements Serializable { private String deviceSn; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; @TableField(value = "payload_desc") private String payloadDesc; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DevicePayloadServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DevicePayloadServiceImpl.java index 210bd00..d833e64 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DevicePayloadServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DevicePayloadServiceImpl.java @@ -61,6 +61,7 @@ public class DevicePayloadServiceImpl implements IDevicePayloadService { entity.setId(id); // For the payload of the drone itself, there is no firmware version. entity.setFirmwareVersion(null); + entity.setCreateTime(new Date()); return mapper.updateById(entity) > 0 ? entity.getId() : 0; } return mapper.insert(entity) > 0 ? entity.getId() : 0; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java index 033ee0f..a6ad008 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java @@ -401,6 +401,9 @@ public class SDKDeviceService extends AbstractDeviceService { .loginTime(LocalDateTime.now()) .deviceSn(gatewaySn) .childDeviceSn(deviceSn).build(); + if(!StringUtils.hasText(workspaceId)){ + return; + } deviceService.updateDevice(gateway); deviceService.updateDevice(device); gateway = deviceRedisService.getDeviceOnline(gatewaySn).map(g -> { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaFileServiceImpl.java index 5f4b909..3cd911b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaFileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaFileServiceImpl.java @@ -116,11 +116,11 @@ public class FlightAreaFileServiceImpl implements IFlightAreaFileService { length++; } is.reset(); - OssClient storage = OssFactory.instance("flight_area_file"); + OssClient storage = OssFactory.instance("flightareafile"); storage.uploadSuffix(is,name,length,"json"); return FlightAreaFileDTO.builder() .name(name) - .objectKey("flight_area_file/"+name) + .objectKey("flightareafile/"+name) .fileId(UUID.randomUUID().toString()) .size(os.size()) .workspaceId(workspaceId) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java index e2a26be..3189b6a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java @@ -297,7 +297,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements if (flightAreaOpt.isEmpty() || fileOpt.isEmpty()) { file = packageFlightArea(device.getWorkspaceId()); } - OssClient storage = OssFactory.instance("flight_area_file"); + OssClient storage = OssFactory.instance("flightareafile"); return new TopicRequestsResponse>().setData( MqttReply.success(new FlightAreasGetResponse().setFiles( List.of(new FlightAreaGetFile() diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index 251489c..c6c89af 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; +import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; @@ -121,7 +122,6 @@ public class AiCompareController extends BaseController { /** * 画框 - * 参数:jobId */ @SaCheckPermission("sample:compare:add") @Log(title = "预警画框", businessType = BusinessType.INSERT) @@ -132,7 +132,7 @@ public class AiCompareController extends BaseController { } /** - * 算法结果 + * 算法结果 算法使用 */ @PostMapping("/expose") public R expose(@RequestBody List> mapList) { @@ -140,11 +140,29 @@ public class AiCompareController extends BaseController { } /** - * 算法预警生成 + * 算法预警生成 算法使用 */ @PostMapping("/expose/alert") public R alert(@RequestBody List> mapList) { - return toAjax(aiCompareService.expose(mapList)); + return toAjax(aiCompareService.alert(mapList)); + } + + /** + * 验证预警列表 + */ + @PostMapping("/alertList") + public R> alertList(String jobId) { + return R.ok(aiCompareService.alertList(jobId)); } + + /** + * + * 删除验证列表预警 + * @param ids 主键串 + * * */ + @DeleteMapping("/delAlertList") + public R delAlertList(Listids) { + return toAjax(aiCompareService.delAlertList(ids)); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index 499b94f..c994ff5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -1,5 +1,6 @@ package org.dromara.sample.wayline.service; +import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sample.wayline.model.dto.AiCompareDTO; @@ -28,4 +29,7 @@ public interface IAiCompareService { Boolean pictureFrame(FrameDTO frameDTO); Boolean expose(List> mapList); Boolean alert(List> mapList); + + List alertList(String jobId); + Boolean delAlertList(Listids); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 132a052..ec86bdb 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -9,7 +9,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; import org.apache.ibatis.executor.BatchResult; +import org.dromara.business.api.RemoteBusinessAlertService; +import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo; +import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; import org.dromara.common.core.constant.AiCompareStatusConstants; import org.dromara.common.core.constant.BusinessConstants; @@ -63,6 +67,8 @@ public class AiCompareServiceImpl implements IAiCompareService { private final IFileService fileService; private final MqttGatewayPublish mqttGatewayPublish; private final IAiComparePlateMapper aiComparePlateMapper; + @DubboReference + private final RemoteBusinessAlertService businessAlertService; @Override public TableDataInfo queryPageList(AiCompareDTO bo, PageQuery pageQuery) { return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); @@ -213,8 +219,22 @@ public class AiCompareServiceImpl implements IAiCompareService { @Override public Boolean alert(List> mapList) { + + return null; } + @Override + public List alertList(String jobId) { + RemoteBusinessAlertBo businessAlertBo = new RemoteBusinessAlertBo(); + businessAlertBo.setJobId(jobId); + return businessAlertService.listVerifyAlert(businessAlertBo); + } + + @Override + public Boolean delAlertList(List ids) { + return businessAlertService.deleteAlert(ids); + } + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java index c94d62e..78a0ec9 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java @@ -2,20 +2,23 @@ package org.dromara.system.dubbo; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; -import org.dromara.common.core.utils.MapstructUtils; + import org.dromara.system.api.RemotePostService; -import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo; import org.dromara.system.api.domain.vo.RemotePostVo; import org.dromara.system.domain.bo.SysPostBo; import org.dromara.system.domain.vo.SysPostVo; import org.dromara.system.service.ISysPostService; -import org.springframework.beans.BeanUtils; + import org.springframework.stereotype.Service; -import java.util.ArrayList; + import java.util.List; import java.util.stream.Collectors; - +/** + * @author sean + * @version 1.1 + * @date 2022/6/1 + */ @RequiredArgsConstructor @Service @DubboService diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/RocketMQApplication.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/RocketMQApplication.java deleted file mode 100644 index 4ec745a..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/RocketMQApplication.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ruoyi.testrocketmq; - -import com.ruoyi.common.security.annotation.EnableCustomConfig; -import com.ruoyi.common.security.annotation.EnableRyFeignClients; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.scheduling.annotation.EnableAsync; - -/** - * 平台管理模块 - * - * @author ruoyi - */ -@EnableCustomConfig -@EnableRyFeignClients -@SpringBootApplication -@EnableAsync -public class RocketMQApplication -{ - public static void main(String[] args) - { - SpringApplication.run(RocketMQApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ RocketMQ模块启动成功 ლ(´ڡ`ლ)゙"); - } -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ConsumerConfig.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ConsumerConfig.java deleted file mode 100644 index 38ebbae..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ConsumerConfig.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.ruoyi.testrocketmq.config; - -import com.ruoyi.testrocketmq.consumer.RocketMsgListener; -import com.ruoyi.testrocketmq.enums.MessageCodeEnum; -import com.ruoyi.testrocketmq.model.ConsumerMode; -import lombok.extern.slf4j.Slf4j; -import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; -import org.apache.rocketmq.client.exception.MQClientException; -import org.apache.rocketmq.common.consumer.ConsumeFromWhere; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 消费者配置 - */ -@RefreshScope -@Configuration -@Slf4j -public class ConsumerConfig { - @Autowired - private ConsumerMode consumerMode; - - @Bean - public DefaultMQPushConsumer getRocketMQConsumer() throws MQClientException { -// ConsumerMode consumerMode = new ConsumerMode(); - DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerMode.getGroupName()); - consumer.setNamesrvAddr(consumerMode.getNamesrvAddr()); - consumer.setConsumeThreadMin(consumerMode.getConsumeThreadMin()); - consumer.setConsumeThreadMax(consumerMode.getConsumeThreadMax()); - consumer.registerMessageListener(new RocketMsgListener()); - /** - * 1. CONSUME_FROM_LAST_OFFSET:第一次启动从队列最后位置消费,后续再启动接着上次消费的进度开始消费 - * 2. CONSUME_FROM_FIRST_OFFSET:第一次启动从队列初始位置消费,后续再启动接着上次消费的进度开始消费 - * 3. CONSUME_FROM_TIMESTAMP:第一次启动从指定时间点位置消费,后续再启动接着上次消费的进度开始消费 - * 以上所说的第一次启动是指从来没有消费过的消费者,如果该消费者消费过,那么会在broker端记录该消费者的消费位置,如果该消费者挂了再启动,那么自动从上次消费的进度开始 - */ - consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET); - /** - * CLUSTERING (集群模式) :默认模式,同一个ConsumerGroup(groupName相同)每个consumer只消费所订阅消息的一部分内容,同一个ConsumerGroup里所有的Consumer消息加起来才是所 - * 订阅topic整体,从而达到负载均衡的目的 - * BROADCASTING (广播模式) :同一个ConsumerGroup每个consumer都消费到所订阅topic所有消息,也就是一个消费会被多次分发,被多个consumer消费。 - * - */ - // consumer.setMessageModel(MessageModel.BROADCASTING); - - consumer.setVipChannelEnabled(false); - consumer.setConsumeMessageBatchMaxSize(consumerMode.getConsumeMessageBatchMaxSize()); - try { - /** - * 订阅topic,可以对指定消息进行过滤,例如:"TopicTest","tagl||tag2||tag3",*或null表示topic所有消息 - */ - consumer.subscribe(MessageCodeEnum.ORDER_MESSAGE.getCode(),"*"); - consumer.subscribe(MessageCodeEnum.USER_MESSAGE.getCode(),"*"); - consumer.start(); - log.info("消费者初始化成功:{}", consumer.toString()); - } catch (MQClientException e) { - e.printStackTrace(); - log.error("消费者初始化失败:{}",e.getMessage()); - } - return consumer; - } -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/MessageConfig.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/MessageConfig.java deleted file mode 100644 index 1d4b56e..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/MessageConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.ruoyi.testrocketmq.config; - -/** - * @author yz - */ -public class MessageConfig { - private Class messageClass; - private boolean orderlyMessage; - - public Class getMessageClass() { - return messageClass; - } - - public void setMessageClass(Class messageClass) { - this.messageClass = messageClass; - } - - public boolean isOrderlyMessage() { - return orderlyMessage; - } - - public void setOrderlyMessage(boolean orderlyMessage) { - this.orderlyMessage = orderlyMessage; - } - - -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ProducerConfig.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ProducerConfig.java deleted file mode 100644 index b55917e..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/config/ProducerConfig.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.ruoyi.testrocketmq.config; - -import com.ruoyi.testrocketmq.model.ProducerMode; -import lombok.extern.slf4j.Slf4j; -import org.apache.rocketmq.client.exception.MQClientException; -import org.apache.rocketmq.client.producer.DefaultMQProducer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -@Configuration -@Slf4j -public class ProducerConfig { - - public static DefaultMQProducer producer; - - @Autowired - private ProducerMode producerMode; - - - - @Bean - public DefaultMQProducer getRocketMQProducer() { - producer = new DefaultMQProducer(producerMode.getGroupName()); - producer.setNamesrvAddr(producerMode.getNamesrvAddr()); - //如果需要同一个jvm中不同的producer往不同的mq集群发送消息,需要设置不同的instanceName - if(producerMode.getMaxMessageSize()!=null){ - producer.setMaxMessageSize(producerMode.getMaxMessageSize()); - } - if(producerMode.getSendMsgTimeout()!=null){ - producer.setSendMsgTimeout(producerMode.getSendMsgTimeout()); - } - //如果发送消息失败,设置重试次数,默认为2次 - if(producerMode.getRetryTimesWhenSendFailed()!=null){ - producer.setRetryTimesWhenSendFailed(producerMode.getRetryTimesWhenSendFailed()); - } - producer.setVipChannelEnabled(false); - try { - producer.start(); - log.info("生产者初始化成功:{}",producer.toString()); - } catch (MQClientException e) { - log.error("生产者初始化失败:{}",e.getMessage()); - } - return producer; - } - -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/consumer/RocketMsgListener.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/consumer/RocketMsgListener.java deleted file mode 100644 index 88d2b05..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/consumer/RocketMsgListener.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.ruoyi.testrocketmq.consumer; - -import com.ruoyi.testrocketmq.enums.MessageCodeEnum; -import com.ruoyi.testrocketmq.producer.ConsumeException; -import lombok.extern.slf4j.Slf4j; -import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; -import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; -import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; -import org.apache.rocketmq.common.message.MessageExt; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.io.UnsupportedEncodingException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -/** - * 消息监听 - */ -@Slf4j -@Component -public class RocketMsgListener implements MessageListenerConcurrently { - - /** - * 消费消息 - * - * @param list msgs.size() >= 1 - * DefaultMQPushConsumer.consumeMessageBatchMaxSize=1,you can modify here - * 这里只设置为1,当设置为多个时,list中只要有一条消息消费失败,就会整体重试 - * @param consumeConcurrentlyContext 上下文信息 - * @return 消费状态 成功(CONSUME_SUCCESS)或者 重试 (RECONSUME_LATER) - */ - @Override - public ConsumeConcurrentlyStatus consumeMessage(List list, ConsumeConcurrentlyContext consumeConcurrentlyContext) { - - if (!CollectionUtils.isEmpty(list)) { - for (MessageExt messageExt : list) { - // 消息内容 - String body = new String(messageExt.getBody()); - log.info("接受到的消息为:{}", body); - String tags = messageExt.getTags(); - String topic = messageExt.getTopic(); - String msgId = messageExt.getMsgId(); - String keys = messageExt.getKeys(); - int reConsume = messageExt.getReconsumeTimes(); - // 消息已经重试了3次,如果不需要再次消费,则返回成功 - if (reConsume == 3) { - // TODO 补偿信息 - //smsLogService.insertLog(topic, tags, msgId, keys, body, "【" + EnumUtil.getStrMsgByCode(tags, TagsCodeEnum.class) + "】消费失败"); - log.error("消息重试超过3次,消费失败!"); - return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; - } - // 订单超时处理 - if (MessageCodeEnum.ORDER_MESSAGE.getCode().equals(topic)) { - if (MessageCodeEnum.ORDER_TIMEOUT_TAG.getCode().equals(tags)) { -// //获取订单 -// DealUserOrder dealUserOrder = pcRemoteDealUserOrderService.selectDealUserOrderByOrderNumber(keys); -// if (dealUserOrder != null) { -// //订单状态超时未支付关闭订单 处理 -// if (dealUserOrder.getStatus().equals("1")) { -// DealUserOrder dealUserOrders = new DealUserOrder(); -// dealUserOrders.setOrderId(dealUserOrder.getOrderId()); -// dealUserOrders.setStatus("4"); -// pcRemoteDealUserOrderService.updateDealUserOrder(dealUserOrders); -// return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; -// } -// log.info("Order does not exist."); -// } - log.info("Consumption success:" + body); - DateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - log.info("Consumption time:{}", format.format(new Date())); - } else { - log.info("未匹配到Tag【{}】" + tags); - } - } - } - } - // 消息消费成功 - //ConsumeConcurrentlyStatus.RECONSUME_LATER broker会根据设置的messageDelayLevel发起重试,默认16次 - return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; - } - - /** - * 异常处理 - * - * @param e 捕获的异常 - * @return 消息消费结果 - */ - private static ConsumeConcurrentlyStatus handleException(final Exception e) { - Class exceptionClass = e.getClass(); - if (exceptionClass.equals(UnsupportedEncodingException.class)) { - log.error(e.getMessage()); - } else if (exceptionClass.equals(ConsumeException.class)) { - log.error(e.getMessage()); - } - return ConsumeConcurrentlyStatus.RECONSUME_LATER; - } -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/enums/MessageCodeEnum.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/enums/MessageCodeEnum.java deleted file mode 100644 index e6ff8c4..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/enums/MessageCodeEnum.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.ruoyi.testrocketmq.enums; - - -import lombok.Getter; - -@Getter -public enum MessageCodeEnum { - /** - * 消息模块主题 - */ - MESSAGE_TOPIC("elink-message","消息服务模块topic名称"), - /** - * 系统消息 - */ - NOTE_MESSAGE("system-message","系统消息服务模块topic名称"), - /** - * 用户消息 - */ - USER_MESSAGE("user-message","用户消息服务模块topic名称"), - - /** - * 订单消息 - */ - ORDER_MESSAGE("order-message","订单消息服务模块topic名称"), - - /** - * 平台编号 - */ - USER_MESSAGE_TAG("user_message_tag","用户消息推送"), - NOTE_MESSAGE_TAG("system_message_tag","系统消息推送"), - ORDER_MESSAGE_TAG("order_message_tag","订单消息推送"), - - /** - * 订单处理编号 - */ - //订单超时处理 - ORDER_TIMEOUT_TAG("order_timeout_tag","订单超时处理"); - - - private final String code; - private final String msg; - - MessageCodeEnum(String code, String msg){ - this.code = code; - this.msg = msg; - } - - public static String valuesOfType(String code) { - String value = ""; - for (MessageCodeEnum e : MessageCodeEnum.values()) { - if (code.equals(e.code)) { - value = e.msg; - } - - } - return value; - } - - -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ConsumerMode.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ConsumerMode.java deleted file mode 100644 index e66738a..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ConsumerMode.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ruoyi.testrocketmq.model; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; -import org.springframework.stereotype.Component; - -@Data -@Configuration -@Component -public class ConsumerMode { - @Value("${suning.rocketmq.namesrvAddr}") - private String namesrvAddr; - @Value("${suning.rocketmq.conumer.groupName}") - private String groupName ; - @Value("${suning.rocketmq.conumer.consumeThreadMin}") - private int consumeThreadMin; - @Value("${suning.rocketmq.conumer.consumeThreadMax}") - private int consumeThreadMax; - @Value("${suning.rocketmq.conumer.consumeMessageBatchMaxSize}") - private int consumeMessageBatchMaxSize; -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ProducerMode.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ProducerMode.java deleted file mode 100644 index 0cd4060..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/model/ProducerMode.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ruoyi.testrocketmq.model; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.context.annotation.Configuration; - -/** - * 生产者初始化 - */ -@RefreshScope -@Data -@Configuration -public class ProducerMode { - @Value("${suning.rocketmq.producer.groupName}") - private String groupName; - @Value("${suning.rocketmq.namesrvAddr}") - private String namesrvAddr; - @Value("${suning.rocketmq.producer.maxMessageSize}") - private Integer maxMessageSize; - @Value("${suning.rocketmq.producer.sendMsgTimeout}") - private Integer sendMsgTimeout; - @Value("${suning.rocketmq.producer.retryTimesWhenSendFailed}") - private Integer retryTimesWhenSendFailed; -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/AsyncProducer.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/AsyncProducer.java deleted file mode 100644 index 86ed05c..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/AsyncProducer.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.ruoyi.testrocketmq.producer; - -import com.ruoyi.testrocketmq.config.ProducerConfig; -import org.springframework.beans.factory.annotation.Autowired; - -public class AsyncProducer { - - @Autowired - private ProducerConfig producerConfig; - - /** - * 发送异步的消息 - * @param topic 主题 - * @param tag 标签 - * @param key 自定义的key,根据业务来定 - * @param value 消息的内容 - * @return org.apache.rocketmq.client.producer.SendResult - */ -// public SendResult sendAsyncProducerMessage(String topic, String tag, String key, String value) throws UnsupportedEncodingException { -// -// try { -// DefaultMQProducer defaultMQProducer = producerConfig.producer; -// //Create a message instance, specifying topic, tag and message body. -// Message msg = new Message(topic, tag, key,value.getBytes(RemotingHelper.DEFAULT_CHARSET)); -// defaultMQProducer.send(msg, new SendCallback() { -// // 异步回调的处理 -// @Override -// public void onSuccess(SendResult sendResult) { -// System.out.printf("%-10d 异步发送消息成功 %s %n", msg, sendResult.getMsgId()); -// } -// -// @Override -// public void onException(Throwable e) { -// System.out.printf("%-10d 异步发送消息失败 %s %n", msg, e); -// e.printStackTrace(); -// } -// }); -// } catch (MQClientException e) { -// e.printStackTrace(); -// } catch (RemotingException e) { -// e.printStackTrace(); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } -// return null; -// } -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/ConsumeException.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/ConsumeException.java deleted file mode 100644 index 82d4314..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/ConsumeException.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.testrocketmq.producer; - -/** - * @author 影子 - */ -public class ConsumeException extends RuntimeException{ - private static final long serialVersionUID = 4093867789628938836L; - - public ConsumeException(String message) { - super(message); - } - - public ConsumeException(Throwable cause) { - super(cause); - } - - public ConsumeException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageContext.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageContext.java deleted file mode 100644 index fa6afbe..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageContext.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.ruoyi.testrocketmq.producer; - - - -import lombok.Data; -import lombok.ToString; -import org.apache.rocketmq.common.message.MessageExt; -import org.apache.rocketmq.common.message.MessageQueue; - -/** - * 消费时,当前所消费的消息的上下文信息 - * - * @author jolly - */ -@ToString -@Data -public final class MessageContext { - - /** - * 所消费消息所在的消息队列 - * - * @see MessageQueue - */ - private MessageQueue messageQueue; - - /** - * 所消费的消息的扩展属性 - * - * @see MessageExt - */ - private MessageExt messageExt; - - -} diff --git a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageProducer.java b/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageProducer.java deleted file mode 100644 index 7450530..0000000 --- a/dk-visual/rocketmq/src/test/java/com/ruoyi/testrocketmq/producer/MessageProducer.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.ruoyi.testrocketmq.producer; - -import com.alibaba.fastjson.JSON; -import lombok.extern.slf4j.Slf4j; -import org.apache.rocketmq.client.exception.MQBrokerException; -import org.apache.rocketmq.client.exception.MQClientException; -import org.apache.rocketmq.client.producer.SendResult; -import org.apache.rocketmq.common.message.Message; -import org.apache.rocketmq.remoting.common.RemotingHelper; -import org.apache.rocketmq.remoting.exception.RemotingException; - -import java.io.UnsupportedEncodingException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -import static com.ruoyi.rocketmq.config.ProducerConfig.producer; - -/** - * 消息发送 - */ -@Slf4j -public class MessageProducer { - - - /** - * 同步发送消息 - * @param topic 主题 - * @param tag 标签 - * @param key 自定义的key,根据业务来定 - * @param value 消息的内容 - * @return org.apache.rocketmq.client.producer.SendResult - */ - public SendResult sendSynchronizeMessage(String topic, String tag, String key, String value){ - String body = "topic:【"+topic+"】, tag:【"+tag+"】, key:【"+key+"】, value:【"+value+"】"; - try { - Message msg = new Message(topic,tag,key, value.getBytes(RemotingHelper.DEFAULT_CHARSET)); - System.out.println("生产者发送消息:"+ JSON.toJSONString(value)); - SendResult result = producer.send(msg); - return result; - } catch (UnsupportedEncodingException e) { - log.error("消息初始化失败!body:{}",body); - - } catch (MQClientException | InterruptedException | RemotingException | MQBrokerException e) { - log.error("消息发送失败! body:{}",body); - } - return null; - } - - - - /** - * 发送有序的消息 - * @param messagesList Message集合 - * @param messageQueueNumber 消息队列编号 - * @return org.apache.rocketmq.client.producer.SendResult - */ - public SendResult sendOrderlyMessage(List messagesList, int messageQueueNumber) { - SendResult result = null; - for (Message message : messagesList) { - try { -// DefaultMQProducer defaultMQProducer = ProducerConfig.producer.send(message); -// System.out.println(defaultMQProducer); - result = producer.send(message, (list, msg, arg) -> { - Integer queueNumber = (Integer) arg; - return list.get(queueNumber); - }, messageQueueNumber); - } catch (MQClientException | RemotingException | MQBrokerException | InterruptedException e) { - log.error("发送有序消息失败"); - return result; - } - } - return result; - } - - /** - * 推送延迟消息 - * @param topic - * @param tag - * @param key - * @return boolean - */ - public SendResult sendDelayMessage(String topic, String tag, String key, String value) - { - SendResult result = null; - try - { - Message msg = new Message(topic,tag,key, value.getBytes(RemotingHelper.DEFAULT_CHARSET)); - //设置消息延迟级别,我这里设置5,对应就是延时一分钟 - // "1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h" - msg.setDelayTimeLevel(4); - // 发送消息到一个Broker - result = producer.send(msg); - // 通过sendResult返回消息是否成功送达 - log.info("发送延迟消息结果:======sendResult:{}", result); - DateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - log.info("发送时间:{}", format.format(new Date())); - return result; - } - catch (Exception e) - { - e.printStackTrace(); - log.error("延迟消息队列推送消息异常:{},推送内容:{}", e.getMessage(), result); - } - return result; - } - - -} diff --git a/pom.xml b/pom.xml index 699db26..137c96b 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ 2.2.2 UTF-8 UTF-8 - 21 + 17 3.2.11 2023.0.3 3.2.3 @@ -85,7 +85,7 @@ dev - wuyuan + dev 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP @@ -472,6 +472,16 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + org.apache.maven.plugins From bbc3f3a3eab6a927a682e120063c779c7f27794b Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sat, 29 Mar 2025 20:24:44 +0800 Subject: [PATCH 04/10] =?UTF-8?q?[feat]=201=E3=80=81=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E9=A2=84=E8=AD=A6=EF=BC=8C=E5=B9=B6=E4=B8=94?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E5=93=8D=E5=BA=94=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82=202=E3=80=81=E5=AF=B9=E6=8E=A5=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=AE=A1=E7=90=86=E4=B8=AD=E9=A2=84=E8=AD=A6=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/workflow/controller/FlwLabelController.java | 8 ++++---- .../dromara/workflow/service/impl/FlwTaskServiceImpl.java | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java index 942ece3..e520b9d 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java @@ -24,10 +24,10 @@ public class FlwLabelController { private final FlwLabelService flwDepartService; /** - * 查询流程部门关系 + * 查询流程标签关系 * flowCode */ - @Operation(summary = "查询流程部门关系",description = "查询流程部门关系") + @Operation(summary = "查询流程标签关系",description = "查询流程标签关系") @GetMapping("/{flowCode}/getInfo") public R getInfo(@PathVariable String flowCode) { return R.ok(flwDepartService.getInfo(flowCode)); @@ -35,10 +35,10 @@ public class FlwLabelController { /** - * 绑定流程部门关系 + * 绑定流程标签关系 * flowCode */ - @Operation(summary = "绑定流程部门关系",description = "绑定流程部门关系") + @Operation(summary = "绑定流程标签关系",description = "绑定流程标签关系") @PostMapping("/bind/label") public R bindLabel(@Validated({AddGroup.class}) @RequestBody FlowLabel flowLabel) { return R.ok(flwDepartService.bindLabel(flowLabel)); diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index 569a561..8c6719e 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -326,6 +326,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { FlowLabel flowDepart = flwDepartService.getFlowLabel(labelId); FlowLabelVo flowDepartVo = new FlowLabelVo(); BeanUtils.copyProperties(flowDepart, flowDepartVo); + return flowDepartVo; } From 074eaece8761e460c74b874d4c8d03380fa0d5b5 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sat, 29 Mar 2025 20:51:14 +0800 Subject: [PATCH 05/10] =?UTF-8?q?[feat]=201=E3=80=81=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E9=A2=84=E8=AD=A6=EF=BC=8C=E5=B9=B6=E4=B8=94?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E5=93=8D=E5=BA=94=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82=202=E3=80=81=E5=AF=B9=E6=8E=A5=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=AE=A1=E7=90=86=E4=B8=AD=E9=A2=84=E8=AD=A6=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/workflow/domain/FlowLabel.java | 2 +- .../workflow/handler/ListTypeHandler.java | 16 ++++++++-------- .../resources/mapper/workflow/FlwLabelMapper.xml | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java index 6d7531a..3476833 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java @@ -37,7 +37,7 @@ public class FlowLabel { /** * 部门id集合 */ - @NotNull(message = "部门id不能为空", groups = AddGroup.class) + @NotNull(message = "标签id不能为空", groups = AddGroup.class) @TableField(value = "label_ids",typeHandler = ListTypeHandler.class) List labelIds; } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/ListTypeHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/ListTypeHandler.java index f63591d..d367369 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/ListTypeHandler.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/ListTypeHandler.java @@ -16,36 +16,36 @@ import java.util.List; @MappedJdbcTypes(JdbcType.VARCHAR) @MappedTypes({List.class}) -public class ListTypeHandler implements TypeHandler> { +public class ListTypeHandler implements TypeHandler> { @Override - public void setParameter(PreparedStatement ps, int i, List list, JdbcType jdbcType) throws SQLException { + public void setParameter(PreparedStatement ps, int i, List list, JdbcType jdbcType) throws SQLException { ps.setString(i, JsonUtil.toJson(list)); } @Override - public List getResult(ResultSet rs, String columnName) throws SQLException { + public List getResult(ResultSet rs, String columnName) throws SQLException { if (StringUtils.isBlank(rs.getString(columnName))) { return new ArrayList<>(); } - return JsonUtil.jsonToList(rs.getString(columnName), Long.class); + return JsonUtil.jsonToList(rs.getString(columnName), String.class); } @Override - public List getResult(ResultSet rs, int columnIndex) throws SQLException { + public List getResult(ResultSet rs, int columnIndex) throws SQLException { if (StringUtils.isBlank(rs.getString(columnIndex))) { return new ArrayList<>(); } - return JsonUtil.jsonToList(rs.getString(columnIndex), Long.class); + return JsonUtil.jsonToList(rs.getString(columnIndex), String.class); } @Override - public List getResult(CallableStatement cs, int columnIndex) throws SQLException { + public List getResult(CallableStatement cs, int columnIndex) throws SQLException { String value = cs.getString(columnIndex); if (StringUtils.isBlank(value)) { return new ArrayList<>(); } - return JsonUtil.jsonToList(value, Long.class); + return JsonUtil.jsonToList(value, String.class); } } diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml index 86615f1..ad82fca 100644 --- a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml +++ b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml @@ -5,13 +5,13 @@ + + From ab69f1641555fca13b8747a6ee2f4a32e40ad9fc Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sun, 30 Mar 2025 10:11:04 +0800 Subject: [PATCH 08/10] =?UTF-8?q?[feat]=201=E3=80=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E7=94=9F=E6=88=90=E8=A7=A6=E5=8F=91=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=8E=B7=E5=8F=96=E6=B5=81=E7=A8=8Bcode=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/domain/bo/AiLabelPostBindBo.java | 2 +- .../service/impl/AiLablePostServiceImpl.java | 18 ++++++++++++------ .../org/dromara/workflow/domain/FlowLabel.java | 1 - .../service/impl/FlwLabelServiceImpl.java | 13 ++++++++----- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java index 0f6a117..95a8c63 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBindBo.java @@ -17,7 +17,7 @@ public class AiLabelPostBindBo { private Long postId; - @NotNull(message = "标签不能为空") +// @NotNull(message = "标签不能为空") private List lableIdList; } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java index b5cc7b5..879c29a 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java @@ -154,13 +154,19 @@ public class AiLablePostServiceImpl implements IAiLabelPostService { public Boolean insertByBatchBo(AiLabelPostBindBo aiLabelPostBindBo) { delPostId(aiLabelPostBindBo.getPostId()); List resultlist = new ArrayList<>(); - for (Long labelId : aiLabelPostBindBo.getLableIdList()) { - AiLabelPost ailabelPost = new AiLabelPost(); - ailabelPost.setPostId(aiLabelPostBindBo.getPostId()); - ailabelPost.setLabelId(labelId); - resultlist.add(ailabelPost); + + if (ObjectUtil.isNotEmpty(aiLabelPostBindBo.getLableIdList())){ + for (Long labelId : aiLabelPostBindBo.getLableIdList()) { + AiLabelPost ailabelPost = new AiLabelPost(); + ailabelPost.setPostId(aiLabelPostBindBo.getPostId()); + ailabelPost.setLabelId(labelId); + resultlist.add(ailabelPost); + } + + return this.baseMapper.insertBatch(resultlist); } - return this.baseMapper.insertBatch(resultlist); + + return true; } @Override diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java index 3476833..d04d1ee 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java @@ -37,7 +37,6 @@ public class FlowLabel { /** * 部门id集合 */ - @NotNull(message = "标签id不能为空", groups = AddGroup.class) @TableField(value = "label_ids",typeHandler = ListTypeHandler.class) List labelIds; } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java index 2cabe80..1eebe4f 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.workflow.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; @@ -30,12 +31,14 @@ public class FlwLabelServiceImpl extends ServiceImpl updateWrapper.eq(FlowLabel::getFlowCode, flowDepart.getFlowCode()); this.baseMapper.delete(updateWrapper); - //查询部门是否还存在别的流程 - if (this.baseMapper.checkFlowLabel(flowDepart.getLabelIds()) > 0){ - throw new ServiceException("所选的标签中,已存在在其他流程中,请检查后在提交!"); - } + if (ObjectUtil.isNotEmpty(flowDepart.getLabelIds())) { + //查询部门是否还存在别的流程 + if (this.baseMapper.checkFlowLabel(flowDepart.getLabelIds()) > 0){ + throw new ServiceException("所选的标签中,已存在在其他流程中,请检查后在提交!"); + } - this.baseMapper.insert(flowDepart); + this.baseMapper.insert(flowDepart); + } return flowDepart; } From 782c7e7cccfeb36c33734ea4358f5baed7bbc397 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sun, 30 Mar 2025 10:45:58 +0800 Subject: [PATCH 09/10] =?UTF-8?q?[feat]=201=E3=80=81=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AE=97=E6=B3=95=E6=A0=87=E7=AD=BE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/dromara/system/domain/AiLabel.java | 6 ++++++ .../main/java/org/dromara/system/domain/bo/AiLabelBo.java | 5 +++++ .../main/java/org/dromara/system/domain/vo/AiLabelVo.java | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java index 9294670..c97754d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabel.java @@ -48,4 +48,10 @@ public class AiLabel { private String aiName; + /** + * 算法标签 + */ + private String aiEn; + + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelBo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelBo.java index 2b4fc9c..e8dd54f 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelBo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelBo.java @@ -61,6 +61,11 @@ public class AiLabelBo { private String aiName; + /** + * 算法标签 + */ + private String aiEn; + /** * 请求参数 diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/AiLabelVo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/AiLabelVo.java index 3280c78..4f66f15 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/AiLabelVo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/AiLabelVo.java @@ -54,5 +54,10 @@ public class AiLabelVo implements Serializable { // @ExcelProperty(value = "算法名称") private String aiName; + /** + * 算法标签 + */ + private String aiEn; + } From d466b1394fd97ec0a51ca0e9f56d5087ec2c52d6 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Sun, 30 Mar 2025 10:57:33 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/business/api/RemoteBusinessAlertService.java | 2 +- .../business/controller/BusinessTaskController.java | 4 ++++ .../java/org/dromara/business/domain/BusinessAlert.java | 2 +- .../org/dromara/business/domain/vo/BusinessTaskVo.java | 3 ++- .../business/dubbo/RemoteBusinessAlertServiceImpl.java | 4 ++-- .../dromara/business/service/IBusinessAlertService.java | 5 +++-- .../org/dromara/business/service/IBusinessTaskService.java | 2 ++ .../business/service/impl/BusinessAlertServiceImpl.java | 7 ++++--- .../business/service/impl/BusinessTaskServiceImpl.java | 3 ++- .../sample/wayline/service/impl/AiCompareServiceImpl.java | 7 ++----- 10 files changed, 23 insertions(+), 16 deletions(-) diff --git a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java index eb14684..9597fd3 100644 --- a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java +++ b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java @@ -16,7 +16,7 @@ public interface RemoteBusinessAlertService { /** * 生成预警,待验证状态 */ - void saveBusinessAlert(RemoteBusinessAlertBo businessAlertBo); + Boolean saveBusinessAlert(List alertVoList); /** * 更新此条预警审批时候的状态 * @param businessId 业务id(预警、工单) diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java index f16fb86..080b3c4 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java @@ -106,4 +106,8 @@ public class BusinessTaskController extends BaseController { @PathVariable Long[] ids) { return toAjax(businessTaskService.deleteWithValidByIds(List.of(ids), true)); } + + + + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index 54ea506..9c5d103 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java @@ -29,7 +29,7 @@ public class BusinessAlert extends BaseEntity { /** * */ - @TableId(type = IdType.ASSIGN_ID) + @TableId(type = IdType.AUTO) private Long id; /** diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java index f8f2965..0617d2e 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java @@ -70,7 +70,7 @@ public class BusinessTaskVo implements Serializable { * 工单状态(0预约中 1 等待中,2执行中 3 未完成 4已完结 ) */ @ExcelProperty(value = "工单状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "0=预约中,1=,等=待中,2执行中,3=,未=完成,4=已完结") + @ExcelDictFormat(readConverterExp = "0:预约中,1:等待中,2:执行中,3:未完成,4:已完结") private String status; @ExcelProperty(value = "完成时间") @@ -94,4 +94,5 @@ public class BusinessTaskVo implements Serializable { + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java index 18b80c3..bd8b33f 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java @@ -27,8 +27,8 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic @Override - public void saveBusinessAlert(RemoteBusinessAlertBo businessAlertBo) { - + public Boolean saveBusinessAlert(List alertVoList) { + return businessAlertService.batchAddBusinessAlert(alertVoList); } /** diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java index b7329bc..da4eada 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java @@ -1,6 +1,7 @@ package org.dromara.business.service; import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo; +import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; import org.dromara.business.domain.BusinessAlert; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.vo.BusinessAlertVo; @@ -38,10 +39,10 @@ public interface IBusinessAlertService { /** * 批量新增预警任务 * - * @param alertList 预警任务 + * @param alertVoList 预警任务 * @return 是否新增成功 */ - Boolean batchAddBusinessAlert(List alertList); + Boolean batchAddBusinessAlert(List alertVoList); /** * 修改预警任务 diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java index 8fa0321..2d93025 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java @@ -70,4 +70,6 @@ public interface IBusinessTaskService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); BusinessTaskVo queryBusinessTask(String waylineId); + + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index 7a1942f..9aeab15 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -70,12 +70,13 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { /** * 批量添加 - * @param alertList 预警任务 + * @param alertVoList 预警任务 * @return */ @Override - public Boolean batchAddBusinessAlert(List alertList) { - return this.baseMapper.insertBatch(alertList); + public Boolean batchAddBusinessAlert(List alertVoList) { + List businessAlerts = MapstructUtils.convert(alertVoList, BusinessAlert.class); + return this.baseMapper.insertBatch(businessAlerts); } /** diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java index fa8fd63..bc36d80 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java @@ -47,7 +47,8 @@ public class BusinessTaskServiceImpl implements IBusinessTaskService { */ @Override public BusinessTaskVo queryById(Long id){ - return baseMapper.selectVoById(id); + BusinessTaskVo businessTaskVo = baseMapper.selectVoById(id); + return ; } /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 18f6f60..a5f6fe8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -221,12 +221,9 @@ public class AiCompareServiceImpl implements IAiCompareService { @Override public Boolean alert(Mapmap) { - - System.out.println(map); AiCompareAlertDTO compareAlertDTO = Convert.convert(AiCompareAlertDTO.class,map); - RemoteBusinessAlertBo businessAlertBo=new RemoteBusinessAlertBo(); - businessAlertService.saveBusinessAlert(businessAlertBo); - return null; + List handleList = compareAlertDTO.getHandleList(); + return businessAlertService.saveBusinessAlert(handleList); } @Override