From 23bd719cebe5feeff4e48fde925b0b39755eea93 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 15 十一月 2022 10:59:50 +0800 Subject: [PATCH] 2022.11.15 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt | 191 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 148 insertions(+), 43 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt index 868eb5b..c9521ac 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt @@ -13,8 +13,7 @@ import cn.flightfeather.supervision.infrastructure.utils.FileUtil import cn.flightfeather.supervision.infrastructure.utils.UUIDGenerator import cn.flightfeather.supervision.lightshare.service.LedgerService -import cn.flightfeather.supervision.lightshare.vo.LedgerSubTypeVo -import cn.flightfeather.supervision.lightshare.vo.LedgerVo +import cn.flightfeather.supervision.lightshare.vo.* import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.ObjectMapper import com.github.pagehelper.PageHelper @@ -61,24 +60,30 @@ if (sceneType != SceneType.NoType.value) { createCriteria().andEqualTo("lScenetype", sceneType) } + orderBy("lTypeid") }) val records = getLedgerRecords(userId, null, sceneType, time) val resultList = mutableListOf<LedgerSubTypeVo>() ledgerSubTypes.forEach { val l = LedgerSubTypeVo( - it.lsSubtypeid, - it.lsName, - it.getlTypeid(), - it.getlTypename(), - needUpdate = it.getlNeedupdate(), - sceneType = it.getlScenetype(), - iconUrl = it.getlIconurl() + it.lsSubtypeid, + it.lsName, + it.getlTypeid(), + it.getlTypename(), + needUpdate = it.getlNeedupdate(), + sceneType = it.getlScenetype(), + iconUrl = it.getlIconurl(), + realTime = it.getlRealTime() ) for (r in records) { if (l.ledgerSubTypeId == r.lsSubtypeid) { l.ledgerFinished = true l.upLoad = true - l.checkStatus = r.lrVerifyrst?.toIntOrNull() ?: LedgerCheckStatus.UnCheck.value +// l.checkStatus = r.lrVerifyrst?.toIntOrNull() ?: LedgerCheckStatus.UnCheck.value + l.verified + l.verifierName = r.lrVerifierrealname + l.verified = r.lrIsverify + l.verifyRst = l.verifyRst break } } @@ -102,8 +107,8 @@ return result } - val startDate = DateUtil().StringToDate(startTime) - val endDate = DateUtil().StringToDate(endTime) + val startDate = DateUtil.StringToDate(startTime) + val endDate = DateUtil.StringToDate(endTime) val cal = Calendar.getInstance().apply { time = startDate } val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) + 1 @@ -166,8 +171,19 @@ } - override fun getLedgerDetail2(userId: String, ledgerSubTypeId: Int?, sceneType: Int, time: String): List<LedgerVo> { - val records = getLedgerRecords(userId, ledgerSubTypeId, sceneType, time) + override fun getLedgerDetail2(userId: String, ledgerSubTypeId: Int?, sceneType: Int, time: String?): List<LedgerVo> { + val records = if (time != null) { + getLedgerRecords(userId, ledgerSubTypeId, sceneType, time) + } else { + // FIXME: 2022/10/13 鏆傛椂鍙敮鎸乴edgerSubTypeId涓嶄负null鐨勬儏鍐� + if (ledgerSubTypeId == null) return emptyList() + PageHelper.startPage<LedgerRecord>(1, 1) + ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { + createCriteria().andEqualTo("lrSubmitid", userId) + .andEqualTo("lsSubtypeid", ledgerSubTypeId) + orderBy("lrSubmitdate").desc() + }) + } val result = ArrayList<LedgerVo>() records.forEach { val media = ledgerMediaFileMapper.selectByExample( @@ -211,41 +227,22 @@ val ledgerVos = mapper.readValue<List<LedgerVo>>(ledgerVoList, object :TypeReference<List<LedgerVo>>(){}) ledgerVos.forEach { + it.id = it.id ?: UUIDGenerator.generate16ShortUUID() + it.fileType = it.fileType ?: 1 + val userInfo = userinfoMapper.selectByPrimaryKey(userId) + userInfo.extension2?.toInt()?.let {s-> it.sceneType = s } + val today = Calendar.getInstance().apply { time = Date() } .get(Calendar.DAY_OF_MONTH) - val cal = Calendar.getInstance().apply { time = it.updateDate } + val cal = Calendar.getInstance().apply { time = it.updateDate ?: Date() } val updateYear = cal.get(Calendar.YEAR) val updateMonth = cal.get(Calendar.MONTH) + 1 val updateDay = cal.get(Calendar.DAY_OF_MONTH) - //鐢熸垚鍙拌处鏇存柊璁板綍 - val ledgerRecord = LedgerRecord().apply { - lrGuid = it.id - lsSubtypeid = it.ledgerSubTypeId - lsSubtypename = it.ledgerName - lrYear = updateYear - lrMonth = updateMonth.toByte() - lrDay = updateDay.toByte() - lrEasubmitkind = it.fileType?.toByte() ?: 1 - lrSubmitid = userId - lrSubmitname = userInfo?.acountname ?: "" - lrIssubmitontime = today <= 10 - lrSubmitdate = Date() - lrUpdatetype = it.updateType - lrExtension1 = it.sceneType.toString() - } - - //妫�鏌ユ暟鎹簱鏄惁宸叉湁璁板綍锛岄�夋嫨鎻掑叆鎴栨洿鏂� - val tmp = ledgerRecordMapper.selectByPrimaryKey(ledgerRecord.lrGuid) - if (tmp == null || tmp.lrGuid == null) { - ledgerRecordMapper.insert(ledgerRecord) - } else { - ledgerRecordMapper.updateByPrimaryKey(ledgerRecord) - } //瀵规瘡寮犲浘鐗囩敓鎴愮浉搴旂殑璺緞骞朵繚瀛� var picPath = "" - val time = DateUtil().DateToString(Date(), DateUtil.DateStyle.YYYY_MM) + val time = DateUtil.DateToString(Date(), DateUtil.DateStyle.YYYY_MM) files.forEach {file-> val fileName = file.originalFilename //TODO 姝ゅ鐨勬枃浠惰矾寰勯渶瑕佷慨鏀逛负鍔ㄦ�侀厤缃� @@ -258,7 +255,7 @@ } try { //璋冪敤鏂囦欢淇濆瓨鏂规硶 - FileUtil().uploadFile(file.bytes, basePath + path, fileName!!) + FileUtil.uploadFile(file.bytes, basePath + path, fileName!!) } catch (e: Exception) { e.printStackTrace() } @@ -288,6 +285,31 @@ //鎻掑叆鏂扮殑澶氬獟浣撴枃浠惰褰曟暟鎹� ledgerMediaFileMapper.insert(ledgerMedia) + + //鐢熸垚鍙拌处鏇存柊璁板綍 + val ledgerRecord = LedgerRecord().apply { + lrGuid = it.id + lsSubtypeid = it.ledgerSubTypeId + lsSubtypename = it.ledgerName + lrYear = updateYear + lrMonth = updateMonth.toByte() + lrDay = updateDay.toByte() + lrEasubmitkind = it.fileType?.toByte() ?: 1 + lrSubmitid = userId + lrSubmitname = userInfo?.acountname ?: "" + lrIssubmitontime = today <= 10 + lrSubmitdate = Date() + lrUpdatetype = it.updateType + lrExtension1 = it.sceneType.toString() + } + + //妫�鏌ユ暟鎹簱鏄惁宸叉湁璁板綍锛岄�夋嫨鎻掑叆鎴栨洿鏂� + val tmp = ledgerRecordMapper.selectByPrimaryKey(ledgerRecord.lrGuid) + if (tmp == null || tmp.lrGuid == null) { + ledgerRecordMapper.insert(ledgerRecord) + } else { + ledgerRecordMapper.updateByPrimaryKey(ledgerRecord) + } return true } @@ -331,7 +353,7 @@ return emptyList() } - private fun getLedgerRecords(userId: String, ledgerSubTypeId: Int?, sceneType: Int, time: String): List<LedgerRecord> { + override fun getLedgerRecords(userId: String, ledgerSubTypeId: Int?, sceneType: Int, time: String): List<LedgerRecord> { val ledgerSubTypes = ledgerSubTypeMapper.selectByExample(Example(LedgerSubType::class.java).apply { if (ledgerSubTypeId != null) { createCriteria().andEqualTo("lsSubtypeid", ledgerSubTypeId) @@ -339,7 +361,7 @@ createCriteria().andEqualTo("lScenetype", sceneType) } }) - val c = Calendar.getInstance().apply { this.time = DateUtil().StringToDate(time) } + val c = Calendar.getInstance().apply { this.time = DateUtil.StringToDate(time) } val year = c.get(Calendar.YEAR) val month = c.get(Calendar.MONTH) + 1 val map = mutableMapOf<Int, MutableList<Int>>() @@ -373,4 +395,87 @@ return records } + + override fun copyLedger(userId: String, time: String, copyLedgerList: List<CopyLedgerVo>): BaseResponse<String> { + val year = time.split("-")[0] + val month = time.split("-")[1] + val date = DateUtil.StringToDate(time, DateUtil.DateStyle.YYYY_MM) + copyLedgerList.forEach { + //鍘婚噸鍒ゆ柇 + val r = ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { + createCriteria().andEqualTo("lrSubmitid", userId) + .andEqualTo("lsSubtypeid", it.subTypeId) + .andEqualTo("lrYear", year) + .andEqualTo("lrMonth", month) + }) + if (r.size > 0) { + return@forEach + } + + val y = it.time?.split("-")?.get(0) ?: return@forEach + val m = it.time?.split("-")?.get(1) ?: return@forEach + ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { + createCriteria().andEqualTo("lrSubmitid", userId) + .andEqualTo("lsSubtypeid", it.subTypeId) + .andEqualTo("lrYear", y) + .andEqualTo("lrMonth", m) + }).forEach record@ {lr -> + //鑾峰彇璁板綍瀵瑰簲鐨勬枃浠朵俊鎭� + val fileList = ledgerMediaFileMapper.selectByExample(Example(LedgerMediaFile::class.java).apply { + createCriteria().andEqualTo("lrGuid", lr.lrGuid) + }) + if (fileList.size == 0) return@record + val file = fileList[0] ?: return@record + + //淇敼璁板綍淇℃伅锛屽鍒朵负鏂扮殑鍙拌处 + lr.lrGuid = UUIDGenerator.generate16ShortUUID() + lr.lrYear = year.toInt() + lr.lrMonth = month.toByte() + lr.lrIssubmitontime = true + lr.lrSubmitdate = date + lr.lrExtension2 = "copy"//琛ㄦ槑鏄鍒剁殑鍙拌处 + ledgerRecordMapper.insert(lr) + + //淇敼瀵瑰簲鐨勬枃浠朵俊鎭� + file.apply { + mfGuid = UUIDGenerator.generate16ShortUUID() + lrGuid = lr.lrGuid + mfSavetime = Date() + } + ledgerMediaFileMapper.insert(file) + } + } + + return BaseResponse(true) + } + + override fun checkLedger(verifierId: String, remark: String?, recordList: List<LedgerCheckVo>): BaseResponse<Boolean> { + val recordIdList = mutableListOf<String?>() + recordList.forEach { recordIdList.add(it.recordId) } + val records = ledgerRecordMapper.selectByExample(Example(LedgerRecord::class.java).apply { + createCriteria().andIn("lrGuid", recordIdList) + .andIsNotNull("lrGuid") + }) + return if (records.isEmpty()) { + BaseResponse(false, "鎵�閫夎褰曚笉瀛樺湪") + } else { + records.forEach { + for (r in recordList) { + if (r.recordId == it.lrGuid) { + it.lrVerifierid = verifierId + it.lrVerifierrealname + it.lrVerifydate = Date() + it.lrIsverify = r.result + it.lrVerifyrst = r.remark + it.lrAiverifytime = if (it.lrAiverifytime == null) 0 else it.lrAiverifytime++ + it.lrIsai = false + + ledgerRecordMapper.updateByPrimaryKey(it) + continue + } + } + } + BaseResponse(true) + } + } } \ No newline at end of file -- Gitblit v1.9.3