src/main/kotlin/cn/flightfeather/supervision/domain/entity/UserSetting.java
@@ -74,6 +74,12 @@ private Boolean selfPatrolPromise; /** * èªå·¡æ¥æ¿è¯ºä¹¦å 容 */ @Column(name = "sp_promise_content") private String spPromiseContent; /** * @return id */ public Integer getId() { @@ -364,4 +370,22 @@ public void setSelfPatrolPromise(Boolean selfPatrolPromise) { this.selfPatrolPromise = selfPatrolPromise; } /** * è·åèªå·¡æ¥æ¿è¯ºä¹¦å 容 * * @return sp_promise_content - èªå·¡æ¥æ¿è¯ºä¹¦å 容 */ public String getSpPromiseContent() { return spPromiseContent; } /** * 设置èªå·¡æ¥æ¿è¯ºä¹¦å 容 * * @param spPromiseContent èªå·¡æ¥æ¿è¯ºä¹¦å 容 */ public void setSpPromiseContent(String spPromiseContent) { this.spPromiseContent = spPromiseContent == null ? null : spPromiseContent.trim(); } } src/main/kotlin/cn/flightfeather/supervision/domain/entity/UserSettingRecord.java
@@ -1,5 +1,6 @@ package cn.flightfeather.supervision.domain.entity; import java.util.Date; import javax.persistence.*; @Table(name = "sm_t_setting_record") @@ -16,6 +17,12 @@ */ @Column(name = "self_patrol_promised") private Boolean selfPatrolPromised; /** * ä¸ä¸æ¬¡æ¿è¯ºæ¶é´ */ @Column(name = "last_promised_time") private Date lastPromisedTime; /** * è·åç¨æ·id @@ -52,4 +59,22 @@ public void setSelfPatrolPromised(Boolean selfPatrolPromised) { this.selfPatrolPromised = selfPatrolPromised; } /** * è·åä¸ä¸æ¬¡æ¿è¯ºæ¶é´ * * @return last_promised_time - ä¸ä¸æ¬¡æ¿è¯ºæ¶é´ */ public Date getLastPromisedTime() { return lastPromisedTime; } /** * 设置ä¸ä¸æ¬¡æ¿è¯ºæ¶é´ * * @param lastPromisedTime ä¸ä¸æ¬¡æ¿è¯ºæ¶é´ */ public void setLastPromisedTime(Date lastPromisedTime) { this.lastPromisedTime = lastPromisedTime; } } src/main/kotlin/cn/flightfeather/supervision/domain/repository/UserSettingRep.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package cn.flightfeather.supervision.domain.repository import cn.flightfeather.supervision.domain.mapper.UserSettingMapper import cn.flightfeather.supervision.domain.mapper.UserSettingRecordMapper import org.springframework.stereotype.Repository import java.time.LocalDate import java.time.LocalDateTime import java.time.ZoneId /** * * @date 2026/1/20 * @author feiyu02 */ @Repository class UserSettingRep( private val userSettingMapper: UserSettingMapper, private val userSettingRecordMapper: UserSettingRecordMapper, ) { /** * æ¥è¯¢ç¨æ·èªå·¡æ¥æ¿è¯ºæ¯å¦ææ * ç¾ç½²æ¶é´çå½å¹´å ä¸ºææ */ fun checkIsSelfPatrolPromised(userId: String): Boolean { val record = userSettingRecordMapper.selectByPrimaryKey(userId) ?: return false record.lastPromisedTime ?: return false val now = LocalDate.now().year val recordYear = LocalDateTime.ofInstant(record.lastPromisedTime.toInstant(), ZoneId.systemDefault()).year return record.selfPatrolPromised && (now == recordYear) } } src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/LedgerServiceImpl.kt
@@ -11,6 +11,7 @@ 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 @@ -43,6 +44,7 @@ private val ledgerMediaFileRep: LedgerMediaFileRep, private val userInfoRep: UserInfoRep, private val ledgerRep: LedgerRep, private val userSettingRep: UserSettingRep, ) : LedgerService { @Value("\${imgPath}") @@ -509,6 +511,7 @@ sceneType: Int, time: String, ): List<LedgerRecord> { // æ¥è¯¢ç¸å ³çææå°è´¦ç±»å val ledgerSubTypes = ledgerSubTypeMapper.selectByExample(Example(LedgerSubType::class.java).apply { if (ledgerSubTypeId != null) { createCriteria().andEqualTo("lsSubtypeid", ledgerSubTypeId) @@ -516,6 +519,17 @@ 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 @@ -529,10 +543,11 @@ } 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) @@ -540,6 +555,7 @@ .andLessThanOrEqualTo("lrMonth", endMon.toByte()) .andIn("lsSubtypeid", v) }) // ç鿝ç§å°è´¦è®°å½ä¸çææ°ä¸æ¡ val monMap = mutableMapOf<Int, LedgerRecord>() r.forEach { if (monMap.containsKey(it.lsSubtypeid)) { src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/SelfPatrolServiceImpl.kt
@@ -30,6 +30,7 @@ private val selfPatrolMediaFileMapper: SelfPatrolMediaFileMapper, private val userinfoMapper: UserinfoMapper, private val ledgerSubTypeMapper: LedgerSubTypeMapper, private val userSettingRecordMapper: UserSettingRecordMapper, ) : SelfPatrolService { @Value("\${imgPath}") @@ -463,7 +464,20 @@ * èªå¯»æ¥æ¿è¯º * æ¿è¯ºå®æåï¼å¨ä¸ä¸ªèªç¶å¹´å è®°å½é½ææï¼ä¹å¯ä»¥è¦çä¸ä¼ */ override fun promiseSelfPatrol(record: UserSettingRecord): UserSettingRecord? { TODO("Not yet implemented") override fun promiseSelfPatrol(userId: String): UserSettingRecord? { var record = userSettingRecordMapper.selectByPrimaryKey(userId) if (record == null) { record = UserSettingRecord().apply { this.userId = userId this.selfPatrolPromised = true this.lastPromisedTime = Date() } userSettingRecordMapper.insert(record) } else { record.selfPatrolPromised = true record.lastPromisedTime = Date() userSettingRecordMapper.updateByPrimaryKey(record) } return record } } src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SelfPatrolService.kt
@@ -58,5 +58,5 @@ */ fun checkSelfPatrolFinished(taskId: String?, justFinishedNum: Int) fun promiseSelfPatrol(record: UserSettingRecord): UserSettingRecord? fun promiseSelfPatrol(userId: String): UserSettingRecord? } src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SelfPatrolController.kt
@@ -88,8 +88,8 @@ @ApiOperation("èªå·¡æ¥æ¿è¯º") @PostMapping("/promise") fun promiseSelfPatrol( @RequestBody record: UserSettingRecord, ) = resPack { selfPatrolService.promiseSelfPatrol(record) } @ApiParam(value = "ç¨æ·id") @RequestParam userId: String, ) = resPack { selfPatrolService.promiseSelfPatrol(userId) } } src/main/resources/mapper/UserSettingMapper.xml
@@ -26,6 +26,12 @@ <result column="ledger_deadline" property="ledgerDeadline" jdbcType="INTEGER" /> <result column="self_patrol_promise" property="selfPatrolPromise" jdbcType="BIT" /> </resultMap> <resultMap id="ResultMapWithBLOBs" type="cn.flightfeather.supervision.domain.entity.UserSetting" extends="BaseResultMap" > <!-- WARNING - @mbg.generated --> <result column="sp_promise_content" property="spPromiseContent" jdbcType="LONGVARCHAR" /> </resultMap> <sql id="Base_Column_List" > <!-- WARNING - @mbg.generated @@ -35,4 +41,10 @@ Area, Management_Company_Id, Management_Company, scene_type_id, ledger_deadline, self_patrol_promise </sql> <sql id="Blob_Column_List" > <!-- WARNING - @mbg.generated --> sp_promise_content </sql> </mapper> src/main/resources/mapper/UserSettingRecordMapper.xml
@@ -7,11 +7,12 @@ --> <id column="user_id" property="userId" jdbcType="VARCHAR" /> <result column="self_patrol_promised" property="selfPatrolPromised" jdbcType="BIT" /> <result column="last_promised_time" property="lastPromisedTime" jdbcType="TIMESTAMP" /> </resultMap> <sql id="Base_Column_List" > <!-- WARNING - @mbg.generated --> user_id, self_patrol_promised user_id, self_patrol_promised, last_promised_time </sql> </mapper>