From 027bf7da7a012fa36f8835b2419c74da8b2f1c28 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 15 十一月 2022 11:00:21 +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