feiyu02
2022-06-28 5670e4a15fba292ef5f8fb90e96072de976bb621
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
@@ -72,13 +71,18 @@
                    it.getlTypename(),
                    needUpdate = it.getlNeedupdate(),
                    sceneType = it.getlScenetype(),
                    iconUrl = it.getlIconurl()
                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
                }
            }
@@ -373,4 +377,86 @@
        return records
    }
    override fun copyLedger(userId: String, time: String, copyLedgerList: List<CopyLedgerVo>): BaseResponse<String> {
        val year = time.split("-")[0]
        val month = time.split("-")[1]
        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)
        }
    }
}