From 9de446b0b83610055437fbc5172d216bb374900f Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 21 十一月 2024 09:22:19 +0800 Subject: [PATCH] 1. 2024.11.21 修复部分bug --- src/main/resources/mapper/ds1/SubtaskMapper.xml | 10 ++ src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt | 43 ++++++++-- src/main/resources/mapper/ds1/ProblemlistMapper.xml | 53 ++++++++----- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt | 3 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt | 3 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt | 3 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt | 3 src/main/resources/mapper/ds1/ScenseMapper.xml | 28 +++++++ src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt | 10 +- src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProblemlistMapper.kt | 22 +---- src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ProblemRep.kt | 6 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt | 17 ++-- 12 files changed, 128 insertions(+), 73 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt index 575041e..96f71fa 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt @@ -68,7 +68,7 @@ */ fun areaName(): String { val t = dbMapper.taskMapper.selectByPrimaryKey(config.topTaskGuid) - return "${DateUtil.DateToString(t.starttime, DateUtil.DateStyle.YYYY_MM_CN)}${t.districtname}${if (area != t.districtname) area else ""}${Constant.SceneType.getDes(config.sceneType)}" + return "${DateUtil.DateToString(config.startTime, DateUtil.DateStyle.YYYY_MM_CN)}${t.districtname}${if (area != t.districtname) area else ""}${Constant.SceneType.getDes(config.sceneType)}" } /** @@ -92,12 +92,12 @@ if (area.isBlank()) area = it.districtname ?: "" } - //1. 鏌ユ壘鐗瑰畾鐨勫贰鏌ヤ换鍔℃垨鑰呮墍鏈夌殑璁″垝宸℃煡浠诲姟 - val taskSceneIdList = dbMapper.scenseMapper.getSceneByType(config.topTaskGuid, config.sceneType, - config.townCode).map { it.guid ?: "" } - // 缁熻鎬讳换鍔′笅鎵�鏈夊満鏅� if (config.allScene) { + //1. 鏌ユ壘鐗瑰畾鐨勫贰鏌ヤ换鍔℃垨鑰呮墍鏈夌殑璁″垝宸℃煡浠诲姟 + val taskSceneIdList = dbMapper.scenseMapper.getSceneByType(config.topTaskGuid, config.sceneType, + config.townCode).map { it.guid ?: "" } + val subTaskList = dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply { createCriteria().apply { if (taskSceneIdList.isNotEmpty()) andIn("scenseid", taskSceneIdList) diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProblemlistMapper.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProblemlistMapper.kt index b0759ad..9320bb7 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProblemlistMapper.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProblemlistMapper.kt @@ -2,6 +2,7 @@ import cn.flightfeather.supervision.domain.ds1.entity.Problemlist import cn.flightfeather.supervision.domain.util.MyMapper +import cn.flightfeather.supervision.lightshare.vo.AreaVo import cn.flightfeather.supervision.lightshare.vo.SceneProblemSummary import cn.flightfeather.supervision.lightshare.vo.StatisticsVo import cn.flightfeather.supervision.lightshare.vo.UnChangedPro @@ -13,18 +14,8 @@ /** * 鑾峰彇鏌愭椂闂存鍐呫�佹煇涓尯鍘跨殑鏌愮鍦烘櫙涓嬶紝鍚勭被鍨嬬殑闂鏁伴噺缁熻 - * @param districtCode 鍖哄幙琛屾斂缂栫爜 - * @param startTime 寮�濮嬫椂闂� - * @param endTime 缁撴潫鏃堕棿 - * @param sceneType 鍦烘櫙绫诲瀷 */ - fun getStatisticalResult( - districtCode: String?, - startTime: String?, - endTime: String?, - sceneType: String?, - sceneId: String?, - ): List<StatisticsVo> + fun getStatisticalResult(areaVo: AreaVo): List<StatisticsVo> fun getStatisticalResultById(topTaskId: String?, sceneTypeId: String?): List<Map<String, JvmType.Object>> @@ -59,12 +50,7 @@ fun getUnChangedProblem(deadLine: String): List<UnChangedPro> /** - * 鑾峰彇鎬讳换鍔� + * 鑾峰彇鍦烘櫙闂缁熻 */ - fun getSceneProSummary( - topTaskId: String, - sceneTypeId: String?, - sort: String?, - sortBy: String, - ): List<SceneProblemSummary> + fun getSceneProSummary(areaVo: AreaVo): List<SceneProblemSummary> } \ No newline at end of file diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ProblemRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ProblemRep.kt index 1fe80a5..dea0666 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ProblemRep.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ProblemRep.kt @@ -2,6 +2,7 @@ import cn.flightfeather.supervision.domain.ds1.entity.Problemlist import cn.flightfeather.supervision.domain.ds1.mapper.ProblemlistMapper +import cn.flightfeather.supervision.lightshare.vo.AreaVo import cn.flightfeather.supervision.lightshare.vo.SceneProblemSummary import org.springframework.stereotype.Repository @@ -20,9 +21,8 @@ /** * 鑾峰彇鍚勫満鏅殑闂鍜屾暣鏀规暟閲忕粺璁� */ - fun selectSceneProSummary(topTaskId: String, sceneTypeId: String?, sort: String?, sortBy: String): - List<SceneProblemSummary> { - return problemlistMapper.getSceneProSummary(topTaskId, sceneTypeId, sort, sortBy) + fun selectSceneProSummary(areaVo: AreaVo): List<SceneProblemSummary> { + return problemlistMapper.getSceneProSummary(areaVo) } fun findOne(guid: String?): Problemlist? { diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt index 21133a7..22d0ebb 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt @@ -13,16 +13,33 @@ @Repository class TaskRep(private val taskMapper: TaskMapper, private val monitorobjectversionMapper: MonitorobjectversionMapper) { - private fun exampleTask(areaVo: AreaVo): Task?{ + private fun exampleTask(areaVo: AreaVo, levelNum: Int? = null): Example? { areaVo.starttime ?: return null val mStart = areaVo.starttime!!.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0) val mEnd = mStart.plusMonths(1).minusSeconds(1) - return Task().apply { - provincecode = areaVo.provincecode - citycode = areaVo.citycode - districtcode = areaVo.districtcode - starttime = Date.from(mStart.atZone(ZoneId.systemDefault()).toInstant()) - endtime = Date.from(mEnd.atZone(ZoneId.systemDefault()).toInstant()) +// return Task().apply { +// provincecode = areaVo.provincecode +// citycode = areaVo.citycode +// districtcode = areaVo.districtcode +// starttime = Date.from(mStart.atZone(ZoneId.systemDefault()).toInstant()) +// endtime = Date.from(mEnd.atZone(ZoneId.systemDefault()).toInstant()) +// } + + return Example(Task::class.java).apply { + createCriteria() + .apply { + if (levelNum != null) { + andEqualTo("levelnum", levelNum) + } else { + andIsNull("levelnum") + } + } + .andEqualTo("provincecode", areaVo.provincecode) + .andEqualTo("citycode", areaVo.citycode) + .andEqualTo("districtcode", areaVo.districtcode) + .andGreaterThanOrEqualTo("starttime", mStart) + .andLessThanOrEqualTo("endtime", mEnd) + orderBy("starttime") } } @@ -34,13 +51,17 @@ * 鏌ユ壘涓�涓�讳换鍔� */ fun findOneTask(areaVo: AreaVo): Task? { - val example = exampleTask(areaVo) ?: return null - return taskMapper.selectOne(example) + val list = findTasks(areaVo) + return if (list.isEmpty()) { + null + } else { + list[0] + } } fun findTasks(areaVo: AreaVo): List<Task?> { - val example = exampleTask(areaVo) ?: return emptyList() - return taskMapper.select(example) + val example = exampleTask(areaVo, 2) ?: return emptyList() + return taskMapper.selectByExample(example) } fun findTasks(task: Task): List<Task?> { diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt index c872fee..dc869c1 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt @@ -56,6 +56,5 @@ fun getSceneByProType(areaVo: AreaVo, pType:String):List<Subtask?> - fun getSceneProSummary(areaVo: AreaVo, sortBy: String, page: Int, per_page: Int): Pair<DataHead?, - List<SceneProblemSummary>?> + fun getSceneProSummary(areaVo: AreaVo, page: Int, per_page: Int): Pair<DataHead?, List<SceneProblemSummary>?> } \ No newline at end of file diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt index 0a1dca0..02d7b7c 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt @@ -130,11 +130,11 @@ //鏍规嵁鍖哄幙銆佸満鏅被鍨嬨�佹椂闂磋幏鍙栧悇涓棶棰樻暟閲� override fun getStatisticalResult(areaVo: AreaVo): List<StatisticsVo> { - val districtcode = areaVo.districtcode - val sceneType = areaVo.scensetypeid - val startTime = areaVo.starttime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) - val endTime = areaVo.endtime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) - return problemlistMapper.getStatisticalResult(districtcode, startTime, endTime, sceneType, areaVo.sceneId) +// val districtcode = areaVo.districtcode +// val sceneType = areaVo.scensetypeid +// val startTime = areaVo.starttime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) +// val endTime = areaVo.endtime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + return problemlistMapper.getStatisticalResult(areaVo) } override fun getChargeResult(areaVo: AreaVo): ChargeInfoVo { @@ -595,14 +595,13 @@ override fun getSceneProSummary( areaVo: AreaVo, - sortBy: String, page: Int, per_page: Int, ): Pair<DataHead?, List<SceneProblemSummary>?> { - areaVo.scensetypeid ?: throw BizException("缂哄皯鍦烘櫙绫诲瀷鍙傛暟") - val task = taskRep.findOneTask(areaVo) ?: throw BizException("鏈壘鍒板搴旂殑宸℃煡鎬讳换鍔�") +// areaVo.scensetypeid ?: throw BizException("缂哄皯鍦烘櫙绫诲瀷鍙傛暟") +// val task = taskRep.findOneTask(areaVo) ?: throw BizException("鏈壘鍒板搴旂殑宸℃煡鎬讳换鍔�") val p = PageHelper.startPage<SceneProblemSummary>(page, per_page) - val res = problemRep.selectSceneProSummary(task.tguid!!, areaVo.scensetypeid!!, areaVo.sort, sortBy) + val res = problemRep.selectSceneProSummary(areaVo) return DataHead(p.pageNum, p.pages, p.total) to res } } \ No newline at end of file diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt index 1d3bdbf..62f46fb 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt @@ -946,7 +946,8 @@ districtName = t.districtname townCode = t.towncode townName = t.townname - subTaskSummary = subtaskMapper.getSummary(t.tguid!!, areaVo.scensetypeid?.toIntOrNull()) + areaVo.topTaskId = t.tguid + subTaskSummary = subTaskRep.findSummary(areaVo) } res.add(pro) } diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt index 104ab39..67dcd86 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt @@ -12,6 +12,9 @@ @JsonInclude(JsonInclude.Include.NON_NULL) @ApiModel("鍖哄煙鏉′欢") open class AreaVo { + @ApiModelProperty("鎬讳换鍔d") + var topTaskId: String? = null + @ApiModelProperty("鐪佷唤缂栫爜") var provincecode: String? = null diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt index 7b6154b..0c01066 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt @@ -146,8 +146,7 @@ @PostMapping("/summary/scene") fun getSceneProSummary( @RequestBody areaVo: AreaVo, - @ApiParam(value = "鎺掑簭瀛楁", allowableValues = "pro, changePer") @RequestParam sortBy: String, @ApiParam(value = "椤电爜") @RequestParam(value = "page") page: Int, @ApiParam(value = "鍗曢〉鏁版嵁閲�") @RequestParam(value = "per_page") perPage: Int, - ) = resPack { problemlistService.getSceneProSummary(areaVo, sortBy, page, perPage) } + ) = resPack { problemlistService.getSceneProSummary(areaVo, page, perPage) } } \ No newline at end of file diff --git a/src/main/resources/mapper/ds1/ProblemlistMapper.xml b/src/main/resources/mapper/ds1/ProblemlistMapper.xml index ff89068..a648def 100644 --- a/src/main/resources/mapper/ds1/ProblemlistMapper.xml +++ b/src/main/resources/mapper/ds1/ProblemlistMapper.xml @@ -76,21 +76,27 @@ LEFT JOIN sm_t_scense AS f ON a.S_GUID = f.S_GUID LEFT JOIN tm_t_subtask AS c ON a.ST_GUID = c.ST_GUID <where> - <if test="startTime != null"> - AND c.ST_PlanStartTime >= #{startTime} - </if> - <if test="endTime != null"> - AND c.ST_PlanStartTime <= #{endTime} - </if> - <if test="districtCode != null"> - AND f.S_DistrictCode = #{districtCode} - </if> - <if test="sceneType != null"> - AND f.S_TypeID = #{sceneType} - </if> - <if test="sceneId != null"> - AND a.S_GUID = #{sceneId} - </if> +<!-- <if test="startTime != null">--> +<!-- AND c.ST_PlanStartTime >= #{startTime}--> +<!-- </if>--> +<!-- <if test="endTime != null">--> +<!-- AND c.ST_PlanStartTime <= #{endTime}--> +<!-- </if>--> +<!-- <if test="districtCode != null">--> +<!-- AND f.S_DistrictCode = #{districtCode}--> +<!-- </if>--> + <if test="scensetypeid != null"> + AND f.S_TypeID = #{scensetypeid} + </if> + <if test="sceneId != null"> + AND a.S_GUID = #{sceneId} + </if> + <include refid="cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper.Where_Area"> + <property name="tableAlias" value="f"/> + </include> + <include refid="cn.flightfeather.supervision.domain.ds1.mapper.SubtaskMapper.Where_Plan_Time"> + <property name="tableAlias" value="c"/> + </include> </where> GROUP BY b.PT_TypeName @@ -214,11 +220,18 @@ sm_t_scense AS b LEFT JOIN tm_t_subtask AS a ON a.ST_ScenseID = b.S_GUID LEFT JOIN im_t_problemlist AS d ON a.ST_GUID = d.ST_GUID - WHERE - a.T_GUID = #{topTaskId} - <if test="sceneTypeId != null"> - and b.S_TypeID = #{sceneTypeId} - </if> + <where> + <include refid="cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper.Where_Area"> + <property name="tableAlias" value="b"/> + </include> + <include refid="cn.flightfeather.supervision.domain.ds1.mapper.SubtaskMapper.Where_Plan_Time"> + <property name="tableAlias" value="a"/> + </include> +<!-- a.T_GUID = #{topTaskId}--> + <if test="scensetypeid != null"> + and b.S_TypeID = #{scensetypeid} + </if> + </where> GROUP BY b.S_GUID ) as t_p diff --git a/src/main/resources/mapper/ds1/ScenseMapper.xml b/src/main/resources/mapper/ds1/ScenseMapper.xml index 5e1649d..6bd44be 100644 --- a/src/main/resources/mapper/ds1/ScenseMapper.xml +++ b/src/main/resources/mapper/ds1/ScenseMapper.xml @@ -42,6 +42,34 @@ S_Contacts, S_CreateDate, S_UpdateDate, S_Extension1, S_Extension2, S_Index, S_Remark </sql> + <!-- 琛屾斂鍖哄垝鏉′欢 --> + <sql id="Where_Area"> + <if test="provincecode != null"> + AND ${tableAlias}.S_ProvinceCode = #{provincecode} + </if> + <if test="provincename != null"> + AND ${tableAlias}.S_ProvinceName = #{provincename} + </if> + <if test="citycode != null"> + AND ${tableAlias}.S_CityCode = #{citycode} + </if> + <if test="cityname != null"> + AND ${tableAlias}.S_CityName = #{cityname} + </if> + <if test="districtcode != null"> + AND ${tableAlias}.S_DistrictCode = #{districtcode} + </if> + <if test="districtname != null"> + AND ${tableAlias}.S_DistrictName = #{districtname} + </if> + <if test="towncode != null"> + AND ${tableAlias}.S_TownCode = #{towncode} + </if> + <if test="townname != null"> + AND ${tableAlias}.S_TownName = #{townname} + </if> + </sql> + <select id="selectNoAccountScene" resultMap="BaseResultMap"> select a.* FROM sm_t_scense as a LEFT JOIN sm_t_userinfo as b on a.S_GUID = b.D_GUID WHERE b.UI_GUID is null </select> diff --git a/src/main/resources/mapper/ds1/SubtaskMapper.xml b/src/main/resources/mapper/ds1/SubtaskMapper.xml index e3a8cfe..1e1289b 100644 --- a/src/main/resources/mapper/ds1/SubtaskMapper.xml +++ b/src/main/resources/mapper/ds1/SubtaskMapper.xml @@ -403,12 +403,18 @@ <select id="getSummaryByArea" resultMap="SubTaskSummary"> <include refid="Sub_Task_Summary_Column_List"/> <where> - <include refid="Where_Area"> - <property name="tableAlias" value="a"/> + <include refid="cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper.Where_Area"> + <property name="tableAlias" value="b"/> </include> <include refid="Where_Plan_Time"> <property name="tableAlias" value="a"/> </include> + <if test="scensetypeid != null"> + AND b.S_TypeID = #{scensetypeid} + </if> + <if test="topTaskId != null"> + AND a.T_GUID = #{topTaskId} + </if> </where> GROUP BY a.ST_GUID -- Gitblit v1.9.3