| | |
| | | import cn.flightfeather.supervision.domain.repository.LedgerMediaFileRep |
| | | import cn.flightfeather.supervision.domain.repository.LedgerRep |
| | | import cn.flightfeather.supervision.domain.repository.UserInfoRep |
| | | import cn.flightfeather.supervision.domain.repository.UserSettingRep |
| | | import cn.flightfeather.supervision.infrastructure.utils.DateUtil |
| | | import cn.flightfeather.supervision.infrastructure.utils.FileUtil |
| | | import cn.flightfeather.supervision.infrastructure.utils.UUIDGenerator |
| | |
| | | private val ledgerMediaFileRep: LedgerMediaFileRep, |
| | | private val userInfoRep: UserInfoRep, |
| | | private val ledgerRep: LedgerRep, |
| | | private val userSettingRep: UserSettingRep, |
| | | ) : LedgerService { |
| | | |
| | | @Value("\${imgPath}") |
| | |
| | | sceneType = it.getlScenetype(), |
| | | iconUrl = it.getlIconurl(), |
| | | realTime = it.getlRealTime(), |
| | | copy = it.getlAutoCopy() ?: false, |
| | | description = it.getlDescription(), |
| | | notRelated = it.getlNotRelatedSwitch() ?: true, |
| | | multigroup = it.getlMultiGroup() ?: false |
| | |
| | | ledgerType = type?.get(0)?.getlTypename() |
| | | ledgerFinished = true |
| | | isUpLoad = true |
| | | this.year = it.lrYear |
| | | this.month = it.lrMonth |
| | | this.day = it.lrDay |
| | | updateDate = it.lrSubmitdate |
| | | updateType = it.lrUpdatetype |
| | | fileType = it.lrEasubmitkind.toInt() |
| | |
| | | .andEqualTo("mfFiletype", it.lrEasubmitkind) |
| | | orderBy("mfSavetime").desc() |
| | | } |
| | | ) |
| | | )?.takeIf { it.isNotEmpty() }?.get(0) |
| | | val type = ledgerSubTypeMapper.selectByExample( |
| | | Example(LedgerSubType::class.java).apply { |
| | | createCriteria().andEqualTo("lsSubtypeid", it.lsSubtypeid) |
| | | } |
| | | ) |
| | | result.add(LedgerVo().apply { |
| | | |
| | | id = it.lrGuid |
| | | this.ledgerSubTypeId = it.lsSubtypeid |
| | | ledgerName = it.lsSubtypename |
| | |
| | | ledgerType = type?.get(0)?.getlTypename() |
| | | ledgerFinished = true |
| | | isUpLoad = true |
| | | this.year = it.lrYear |
| | | this.month = it.lrMonth |
| | | this.day = it.lrDay |
| | | updateDate = it.lrSubmitdate |
| | | updateType = it.lrUpdatetype |
| | | fileType = it.lrEasubmitkind.toInt() |
| | | path1 = media?.get(0)?.mfPath1 |
| | | remark1 = media?.get(0)?.mfDescription1 |
| | | path2 = media?.get(0)?.mfPath2 |
| | | remark2 = media?.get(0)?.mfDescription2 |
| | | path1 = media?.mfPath1 |
| | | remark1 = media?.mfDescription1 |
| | | path2 = media?.mfPath2 |
| | | remark2 = media?.mfDescription2 |
| | | this.sceneType = if (it.lrExtension1 == null) SceneType.Restaurant.value else it.lrExtension1.toInt() |
| | | }) |
| | | } |
| | |
| | | sceneType: Int, |
| | | time: String, |
| | | ): List<LedgerRecord> { |
| | | // 查询相关的所有台账类型 |
| | | val ledgerSubTypes = ledgerSubTypeMapper.selectByExample(Example(LedgerSubType::class.java).apply { |
| | | if (ledgerSubTypeId != null) { |
| | | createCriteria().andEqualTo("lsSubtypeid", ledgerSubTypeId) |
| | |
| | | createCriteria().andEqualTo("lScenetype", sceneType) |
| | | } |
| | | }) |
| | | // 2026.1.20 新增自巡查承诺后,自巡查的有效周期延长至一年(当年内) |
| | | val promised = userSettingRep.checkIsSelfPatrolPromised(userId) |
| | | if (promised) { |
| | | ledgerSubTypes.onEach { |
| | | if (it.getlTypeid() == -1) { |
| | | it.setlPeriod(12) |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | val c = Calendar.getInstance().apply { this.time = DateUtil.StringToDate(time) } |
| | | val year = c.get(Calendar.YEAR) |
| | | val month = c.get(Calendar.MONTH) + 1 |
| | |
| | | } |
| | | val records = mutableListOf<LedgerRecord>() |
| | | map.forEach { (p, v) -> |
| | | // 按照周期分组,统一查询相同周期的所有台账 |
| | | // FIXME: 2020/11/10 此处根据周期和当前月份计算得到当前月份所在周期的始末月,只适用于周期小于等于12个月的情况。后续待修改 |
| | | val startMon = ceil(month.toDouble() / p).toInt().minus(1).times(p).plus(1) |
| | | var endMon = startMon + p - 1 |
| | | if (endMon > month) endMon = month |
| | | // if (endMon > month) endMon = month |
| | | val r = ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { |
| | | createCriteria().andEqualTo("lrSubmitid", userId) |
| | | .andEqualTo("lrYear", year) |
| | |
| | | .andLessThanOrEqualTo("lrMonth", endMon.toByte()) |
| | | .andIn("lsSubtypeid", v) |
| | | }) |
| | | // 筛选每种台账记录中的最新一条 |
| | | val monMap = mutableMapOf<Int, LedgerRecord>() |
| | | r.forEach { |
| | | if (monMap.containsKey(it.lsSubtypeid)) { |
| | |
| | | } |
| | | |
| | | override fun copyLedger(userId: String, time: String, copyLedgerList: List<CopyLedgerVo>): BaseResponse<String> { |
| | | val year = time.split("-")[0] |
| | | val month = time.split("-")[1] |
| | | val year = time.split("-")[0].toIntOrNull() ?: return BaseResponse(false, "年份格式错误") |
| | | val month = time.split("-")[1].toIntOrNull() ?: return BaseResponse(false, "月份格式错误") |
| | | val date = DateUtil.StringToDate(time, DateUtil.DateStyle.YYYY_MM) |
| | | copyLedgerList.forEach { |
| | | //去重判断 |
| | |
| | | return@forEach |
| | | } |
| | | |
| | | val y = it.time?.split("-")?.get(0) ?: return@forEach |
| | | val m = it.time?.split("-")?.get(1) ?: return@forEach |
| | | val y = it.time?.split("-")?.get(0) |
| | | val m = it.time?.split("-")?.get(1) |
| | | ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { |
| | | createCriteria().andEqualTo("lrSubmitid", userId) |
| | | .andEqualTo("lsSubtypeid", it.subTypeId) |
| | | .andEqualTo("lrYear", y) |
| | | .andEqualTo("lrMonth", m) |
| | | }).forEach record@{ lr -> |
| | | orderBy("lrYear").desc() |
| | | .orderBy("lrMonth").desc() |
| | | .orderBy("lrSubmitdate").desc() |
| | | }).takeIf { list-> list.isNotEmpty() }?.get(0)?.let record@{ lr -> |
| | | //获取记录对应的文件信息 |
| | | val fileList = ledgerMediaFileMapper.selectByExample(Example(LedgerMediaFile::class.java).apply { |
| | | createCriteria().andEqualTo("lrGuid", lr.lrGuid) |