From 500080842a73d7619ca9d9c098635e5f121bb01e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 21 一月 2025 15:26:12 +0800
Subject: [PATCH] 合同考核工单抽查方式调整
---
ycl-server/src/main/java/com/ycl/task/ContractTask.java | 308 +++++++++++++++++++++++++-------------------------
ycl-server/src/test/java/com/ycl/Test.java | 35 +++++
2 files changed, 190 insertions(+), 153 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index 1d637c2..0aaf6e6 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -65,7 +65,6 @@
private static final Integer Offline = -1;
private static final String AuditStatus_Pass = "1";
private static final String Remark = "绯荤粺鐢熸垚";
- private static final Integer randomSize = 30;
/**
* 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴�
@@ -80,11 +79,11 @@
.filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_Online.getName().equals(calculateRuleVO.getRuleName()))
.collect(Collectors.toList());
List<Integer> unitIds = ruleVos.stream().map(CalculateRuleVO::getUnitId).collect(Collectors.toList());
- List<YwPoint> ywPoints = ywPointMapper.selectList(new QueryWrapper<YwPoint>().in("unit_id", unitIds).eq("examine_status",1));
+ List<YwPoint> ywPoints = ywPointMapper.selectList(new QueryWrapper<YwPoint>().in("unit_id", unitIds).eq("examine_status", 1));
//key鏄痷nitId value鏄澶囩紪鐮侀泦鍚�
Map<Long, List<YwPoint>> unitMap = ywPoints.stream().filter(point -> point.getUnitId() != null)
.collect(Collectors.groupingBy(
- YwPoint::getUnitId
+ YwPoint::getUnitId
)
);
//鏌ヨ鎶ュ鍒楄〃
@@ -200,7 +199,7 @@
deductErrorType.add(ErrorType.ABNORMAL_PIC.getValue());
deductErrorType.add(ErrorType.POINT_INFO_ERROR.getValue());
deductErrorType.add(ErrorType.CLOCK_SKEW.getValue());
- List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(),deductErrorType,"瀹℃牳閫氳繃");
+ List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(), deductErrorType, "瀹℃牳閫氳繃");
//瀛樺湪鏈変袱绉嶆墸鍒嗙殑鏁呴殰 鍙墸鍑忕涓�涓晠闅�
Map<String, WorkOrderVO> map = workOrders.stream()
.collect(Collectors.toMap(
@@ -270,12 +269,12 @@
double diffTime = (double) (passTime.getTime() - createTime.getTime() - auditDuration) / (1000 * 60 * 60);
//鎵惧埌瀵瑰簲瑙勫垯銆侀�夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
for (CalculateRuleVO rule : rules) {
- if(ErrorType.OSD_ERROR.getValue().equals(errorType)){
- if(!rule.getRuleCondition().equals("OSD鏍囪瘑")) continue;
- }else if(ErrorType.CLOCK_SKEW.getValue().equals(errorType)){
- if(!rule.getRuleCondition().equals("鏃堕挓鍚屾")) continue;
- }else if( ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)){
- if(!rule.getRuleCondition().equals("涓�鏈轰竴妗�")) continue;
+ if (ErrorType.OSD_ERROR.getValue().equals(errorType)) {
+ if (!rule.getRuleCondition().equals("OSD鏍囪瘑")) continue;
+ } else if (ErrorType.CLOCK_SKEW.getValue().equals(errorType)) {
+ if (!rule.getRuleCondition().equals("鏃堕挓鍚屾")) continue;
+ } else if (ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)) {
+ if (!rule.getRuleCondition().equals("涓�鏈轰竴妗�")) continue;
}
if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
@@ -304,7 +303,7 @@
long auditDuration = getAuditDuration(auditTimes, handleTimes);
//瀹℃牳閫氳繃鏃堕棿
Date passTime = Collections.max(auditTimes);
- double diffTime = (double) (passTime.getTime() - createTime.getTime() -auditDuration) / (1000 * 60 * 60);
+ double diffTime = (double) (passTime.getTime() - createTime.getTime() - auditDuration) / (1000 * 60 * 60);
//閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
for (CalculateRuleVO rule : rules) {
if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
@@ -346,7 +345,7 @@
Date nearestHandleTime = null;
long minDifference = Long.MAX_VALUE;
for (Date handleTime : handleTimes) {
- if(handleTime.before(auditTime)) {
+ if (handleTime.before(auditTime)) {
long difference = Math.abs(auditTime.getTime() - handleTime.getTime());
if (difference < minDifference) {
minDifference = difference;
@@ -354,7 +353,7 @@
}
}
}
- auditDuration += auditTime.getTime()-nearestHandleTime.getTime();
+ auditDuration += auditTime.getTime() - nearestHandleTime.getTime();
}
return auditDuration;
}
@@ -362,169 +361,172 @@
/**
* 涓嶅畾鏈熸鏌ユ暟鎹� 鎵i櫎绉垎
- * 姣忓ぉ涓�娆¢殢鏈烘暟鍒ゆ柇鎴愬姛灏辨墽琛�
* 娴峰悍鍙栦汉鑴歌溅杈�
*/
public void randomDeductPic() {
- Random random = new Random();
- Integer num = randomSize;
- //缁欏畾闅忔満鑼冨洿
- String count = sysConfigMapper.checkConfigKeyUnique("check.contract.sample").getConfigValue();
- if (!StringUtils.isEmpty(count)) {
- Integer temp = Integer.valueOf(count);
- if (temp > 0) {
- num = temp;
- }
- }
- int number = random.nextInt(num);
- if (number == 0) {
- log.info("寮�濮嬫娊鏌ュ浘鐗囧畬鏁寸姸鎬�");
- //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
- List<ContractScore> contractScoreList = new ArrayList<>();
- //鏌ヨ鎶ュ鍒楄〃
- List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- Date date = new Date();
- //鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
- Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
- .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_PicComplete.getName().equals(calculateRuleVO.getRuleName()))
- .collect(Collectors.groupingBy(CalculateRuleVO::getContractId));
+ log.info("寮�濮嬫娊鏌ュ浘鐗囧畬鏁寸姸鎬�");
+ //杩欎釜鏈堥殢鏈烘娊鍙栦竴澶�
+ Date date = getRandomDate();
+ //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
+ List<ContractScore> contractScoreList = new ArrayList<>();
+ //鏌ヨ鎶ュ鍒楄〃
+ List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
+ //鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
+ Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
+ .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_PicComplete.getName().equals(calculateRuleVO.getRuleName()))
+ .collect(Collectors.groupingBy(CalculateRuleVO::getContractId));
- //鍒ゆ柇杞﹁締銆佷汉鑴稿浘鐗囨槸鍚﹀彲鐢�
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
- List<PicAccessResult> picAccessResults = mongoTemplate.find(query, PicAccessResult.class);
- List<String> serialNumbers = picAccessResults.stream().map(PicAccessResult::getExternalIndexCode).collect(Collectors.toList());
- QueryWrapper<YwPoint> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("serial_number", serialNumbers);
- //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
- Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
- .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
- Collectors.mapping(
- YwPoint::getSerialNumber,
- Collectors.toList())));
- if (!CollectionUtils.isEmpty(contractMap)) {
- contractMap.forEach((contractId, ruleList) -> {
- boolean deduct = false;
- String serialNumber = null;
- //姝よ鍒欏搴旂殑unitId鍧囩浉绛�
- CalculateRuleVO ruleVO = ruleList.get(0);
- Integer unitId = ruleVO.getUnitId();
- List<String> monitorList = unitMonitorMap.get(Long.parseLong(unitId + ""));
- for (PicAccessResult picAccessResult : picAccessResults) {
- //鍒ゆ柇鏄惁鎶ュ杩�
- if (!CollectionUtils.isEmpty(reportNumbers)) {
- if (reportNumbers.contains(picAccessResult.getExternalIndexCode())) continue;
- }
- //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
- if (monitorList.contains(picAccessResult.getExternalIndexCode())) {
- //瀛樺湪鍥剧墖璁块棶寮傚父鏁版嵁閲忥紝闇�瑕佹墸鍑�
- if (picAccessResult.getExpCount() > 0) {
- deduct = true;
- serialNumber = picAccessResult.getExternalIndexCode();
- break;
- }
+ //鍒ゆ柇杞﹁締銆佷汉鑴稿浘鐗囨槸鍚﹀彲鐢�
+ Query query = new Query(Criteria
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ List<PicAccessResult> picAccessResults = mongoTemplate.find(query, PicAccessResult.class);
+ List<String> serialNumbers = picAccessResults.stream().map(PicAccessResult::getExternalIndexCode).collect(Collectors.toList());
+ QueryWrapper<YwPoint> queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("serial_number", serialNumbers);
+ //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
+ Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
+ .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
+ Collectors.mapping(
+ YwPoint::getSerialNumber,
+ Collectors.toList())));
+ if (!CollectionUtils.isEmpty(contractMap)) {
+ contractMap.forEach((contractId, ruleList) -> {
+ boolean deduct = false;
+ String serialNumber = null;
+ //姝よ鍒欏搴旂殑unitId鍧囩浉绛�
+ CalculateRuleVO ruleVO = ruleList.get(0);
+ Integer unitId = ruleVO.getUnitId();
+ List<String> monitorList = unitMonitorMap.get(Long.parseLong(unitId + ""));
+ for (PicAccessResult picAccessResult : picAccessResults) {
+ //鍒ゆ柇鏄惁鎶ュ杩�
+ if (!CollectionUtils.isEmpty(reportNumbers)) {
+ if (reportNumbers.contains(picAccessResult.getExternalIndexCode())) continue;
+ }
+ //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
+ if (monitorList.contains(picAccessResult.getExternalIndexCode())) {
+ //瀛樺湪鍥剧墖璁块棶寮傚父鏁版嵁閲忥紝闇�瑕佹墸鍑�
+ if (picAccessResult.getExpCount() > 0) {
+ deduct = true;
+ serialNumber = picAccessResult.getExternalIndexCode();
+ break;
}
}
- if (deduct) {
- //闇�瑕佹墸闄ょ殑鍒嗘暟锛屾瑙勫垯鍙湁涓�鏉′笉闇�瑕佸垽鏂寖鍥�
- Double deductScore = ruleVO.getCalcFraction();
- ContractScore contractScore = getContractScore(ruleVO, deductScore, "1", Remark + "鍥芥爣鐮佷负:" + serialNumber + "鏃堕棿锛�" + new Date() + "瀛樺湪澶у浘涓嶅彲鐢ㄦ暟鎹�");
- contractScoreList.add(contractScore);
- }
- });
- }
- contractScoreService.saveBatch(contractScoreList);
- log.info("缁撴潫鎶芥煡鍥剧墖瀹屾暣鐘舵��");
+ }
+ if (deduct) {
+ //闇�瑕佹墸闄ょ殑鍒嗘暟锛屾瑙勫垯鍙湁涓�鏉′笉闇�瑕佸垽鏂寖鍥�
+ Double deductScore = ruleVO.getCalcFraction();
+ ContractScore contractScore = getContractScore(ruleVO, deductScore, "1", Remark + "鍥芥爣鐮佷负:" + serialNumber + "鏃堕棿锛�" + new Date() + "瀛樺湪澶у浘涓嶅彲鐢ㄦ暟鎹�");
+ contractScoreList.add(contractScore);
+ }
+ });
}
+ contractScoreService.saveBatch(contractScoreList);
+ log.info("缁撴潫鎶芥煡鍥剧墖瀹屾暣鐘舵��");
}
/**
* 涓嶅畾鏈熸鏌ユ暟鎹� 鎵i櫎绉垎
- * 姣忓ぉ涓�娆¢殢鏈烘暟鍒ゆ柇鎴愬姛灏辨墽琛�
* 浼樹簯鍙栧綍鍍�
*/
public void randomDeductVideo() {
- Random random = new Random();
- //缁欏畾闅忔満鑼冨洿
- Integer num = randomSize;
- //缁欏畾闅忔満鑼冨洿
- String count = sysConfigMapper.checkConfigKeyUnique("check.contract.sample").getConfigValue();
- if (!StringUtils.isEmpty(count)) {
- Integer temp = Integer.valueOf(count);
- if (temp > 0) {
- num = temp;
- }
- }
- int number = random.nextInt(num);
- if (number == 0) {
- log.info("寮�濮嬫娊鏌ュ綍鍍忓畬鏁寸姸鎬�");
- //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
- List<ContractScore> contractScoreList = new ArrayList<>();
- //鏌ヨ鎶ュ鍒楄〃
- List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- Date date = new Date();
- //鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
- Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
- .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_VideoRecord.getName().equals(calculateRuleVO.getRuleName()))
- .collect(Collectors.groupingBy(CalculateRuleVO::getContractId));
+ log.info("寮�濮嬫娊鏌ュ綍鍍忓畬鏁寸姸鎬�");
+ //杩欎釜鏈堥殢鏈烘娊鍙栦竴澶�
+ Date date = getRandomDate();
+ //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
+ List<ContractScore> contractScoreList = new ArrayList<>();
+ //鏌ヨ鎶ュ鍒楄〃
+ List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
+ //鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
+ Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
+ .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_VideoRecord.getName().equals(calculateRuleVO.getRuleName()))
+ .collect(Collectors.groupingBy(CalculateRuleVO::getContractId));
- //鍙栧綍鍍忔暟鎹�
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
- List<RecordMetaDSumResult> recordMetaDSumResults = mongoTemplate.find(query, RecordMetaDSumResult.class);
- List<String> serialNumbers = recordMetaDSumResults.stream().map(RecordMetaDSumResult::getDeviceId).collect(Collectors.toList());
- QueryWrapper<YwPoint> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("serial_number", serialNumbers);
- //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
- Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
- .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
- Collectors.mapping(
- YwPoint::getSerialNumber,
- Collectors.toList())));
- if (!CollectionUtils.isEmpty(contractMap)) {
- contractMap.forEach((contractId, ruleList) -> {
- //姝よ鍒欏搴旂殑unitId鍧囩浉绛�
- CalculateRuleVO ruleVO = ruleList.get(0);
- Integer unitId = ruleVO.getUnitId();
- List<String> monitorList = unitMonitorMap.get(Long.parseLong(unitId + ""));
- for (RecordMetaDSumResult result : recordMetaDSumResults) {
- //鍒ゆ柇鏄惁鎶ュ杩�
- if (!CollectionUtils.isEmpty(reportNumbers)) {
- if (reportNumbers.contains(result.getDeviceId())) continue;
- }
- //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
- if (monitorList.contains(result.getDeviceId())) {
- //褰曞儚鐘舵�佷笉瀹屾暣
- if (!Objects.equals(result.getRecordStatus(), ApiConstants.UY_RecordStatus_Integrity)) {
- for (CalculateRuleVO calculateRuleVO : ruleList) {
- Double max = calculateRuleVO.getMax();
- Double min = calculateRuleVO.getMin();
- //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂� 鍗曚綅鏄皬鏃惰浆鎹负鍒嗛挓
- if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration() * 60))) {
- if (calculateRuleVO.getNum() == null) {
- calculateRuleVO.setNum(1);
- } else {
- calculateRuleVO.setNum(calculateRuleVO.getNum() + 1);
- }
+ //鍙栧綍鍍忔暟鎹�
+ Query query = new Query(Criteria
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ List<RecordMetaDSumResult> recordMetaDSumResults = mongoTemplate.find(query, RecordMetaDSumResult.class);
+ List<String> serialNumbers = recordMetaDSumResults.stream().map(RecordMetaDSumResult::getDeviceId).collect(Collectors.toList());
+ QueryWrapper<YwPoint> queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("serial_number", serialNumbers);
+ //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
+ Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
+ .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
+ Collectors.mapping(
+ YwPoint::getSerialNumber,
+ Collectors.toList())));
+ if (!CollectionUtils.isEmpty(contractMap)) {
+ contractMap.forEach((contractId, ruleList) -> {
+ //姝よ鍒欏搴旂殑unitId鍧囩浉绛�
+ CalculateRuleVO ruleVO = ruleList.get(0);
+ Integer unitId = ruleVO.getUnitId();
+ List<String> monitorList = unitMonitorMap.get(Long.parseLong(unitId + ""));
+ for (RecordMetaDSumResult result : recordMetaDSumResults) {
+ //鍒ゆ柇鏄惁鎶ュ杩�
+ if (!CollectionUtils.isEmpty(reportNumbers)) {
+ if (reportNumbers.contains(result.getDeviceId())) continue;
+ }
+ //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
+ if (monitorList.contains(result.getDeviceId())) {
+ //褰曞儚鐘舵�佷笉瀹屾暣
+ if (!Objects.equals(result.getRecordStatus(), ApiConstants.UY_RecordStatus_Integrity)) {
+ for (CalculateRuleVO calculateRuleVO : ruleList) {
+ Double max = calculateRuleVO.getMax();
+ Double min = calculateRuleVO.getMin();
+ //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂� 鍗曚綅鏄皬鏃惰浆鎹负鍒嗛挓
+ if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration() * 60))) {
+ if (calculateRuleVO.getNum() == null) {
+ calculateRuleVO.setNum(1);
+ } else {
+ calculateRuleVO.setNum(calculateRuleVO.getNum() + 1);
}
}
}
}
}
- for (CalculateRuleVO calculateRuleVO : ruleList) {
- if (calculateRuleVO.getNum() != null && calculateRuleVO.getNum() > 0) {
- //闇�瑕佹墸闄ょ殑鍒嗘暟锛屾瑙勫垯鍙湁涓�鏉′笉闇�瑕佸垽鏂寖鍥�
- double deductScore = calculateRuleVO.getCalcFraction() * calculateRuleVO.getNum();
- ContractScore contractScore = getContractScore(calculateRuleVO, deductScore, calculateRuleVO.getNum() + "", Remark + calculateRuleVO.getNum() + "璺澶囪繚鍙嶈鍒�");
- contractScoreList.add(contractScore);
- }
+ }
+ for (CalculateRuleVO calculateRuleVO : ruleList) {
+ if (calculateRuleVO.getNum() != null && calculateRuleVO.getNum() > 0) {
+ //闇�瑕佹墸闄ょ殑鍒嗘暟锛屾瑙勫垯鍙湁涓�鏉′笉闇�瑕佸垽鏂寖鍥�
+ double deductScore = calculateRuleVO.getCalcFraction() * calculateRuleVO.getNum();
+ ContractScore contractScore = getContractScore(calculateRuleVO, deductScore, calculateRuleVO.getNum() + "", Remark + calculateRuleVO.getNum() + "璺澶囪繚鍙嶈鍒�");
+ contractScoreList.add(contractScore);
}
- });
- }
- contractScoreService.saveBatch(contractScoreList);
- log.info("缁撴潫鎶芥煡褰曞儚瀹屾暣鐘舵��");
+ }
+ });
}
+ contractScoreService.saveBatch(contractScoreList);
+ }
+
+ private Date getRandomDate() {
+ // 鑾峰彇褰撳墠鏃ュ巻瀹炰緥
+ Calendar calendar = Calendar.getInstance();
+
+ // 鑾峰彇褰撳墠鏃ユ湡
+ Date now = calendar.getTime();
+
+ // 璁剧疆涓哄綋鍓嶆湀浠界殑绗竴澶�
+ calendar.setTime(now);
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ Date firstDayOfMonth = calendar.getTime();
+
+ // 璁剧疆涓哄綋鍓嶆湀浠界殑鏈�鍚庝竴澶╋紙涓嬩釜鏈堢殑绗竴澶╁噺涓�锛�
+ calendar.add(Calendar.MONTH, 1);
+ calendar.set(Calendar.DAY_OF_MONTH, 0); // Calendar.DAY_OF_MONTH璁句负0琛ㄧず涓婁釜鏈堟渶鍚庝竴澶╋紝浣嗚繖閲屾槸涓轰簡寰楀埌鏈湀鏈�鍚庝竴澶╋紝鎵�浠ュ厛鍔犱竴鏈�
+ Date lastDayOfMonth = calendar.getTime();
+ log.info("鏈�鍚庝竴澶�" + lastDayOfMonth);
+ // 璁$畻澶╂暟宸紙鍔�1鍥犱负鍖呭惈璧峰鍜岀粨鏉熸棩鏈燂級
+ long daysBetween = (lastDayOfMonth.getTime() - firstDayOfMonth.getTime()) / (1000 * 60 * 60 * 24) + 1;
+
+ // 鐢熸垚闅忔満鏁�
+ Random random = new Random();
+ int randomDayIndex = random.nextInt((int) daysBetween);
+
+ // 鑾峰彇闅忔満鏃ユ湡
+ calendar.setTime(firstDayOfMonth);
+ calendar.add(Calendar.DAY_OF_MONTH, randomDayIndex);
+ Date randomDate = calendar.getTime();
+ return randomDate;
}
private boolean checkRange(Double min, Double max, BigDecimal index) {
diff --git a/ycl-server/src/test/java/com/ycl/Test.java b/ycl-server/src/test/java/com/ycl/Test.java
new file mode 100644
index 0000000..1cf81f4
--- /dev/null
+++ b/ycl-server/src/test/java/com/ycl/Test.java
@@ -0,0 +1,35 @@
+package com.ycl;
+
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.logging.SimpleFormatter;
+
+@SpringBootTest
+public class Test {
+
+
+ @org.junit.jupiter.api.Test
+ public void demo (){
+ // 鑾峰彇褰撳墠鏃ュ巻瀹炰緥
+ Calendar calendar = Calendar.getInstance();
+
+ // 鑾峰彇褰撳墠鏃ユ湡
+ Date now = calendar.getTime();
+
+ // 璁剧疆涓哄綋鍓嶆湀浠界殑绗竴澶�
+ calendar.setTime(now);
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ Date firstDayOfMonth = calendar.getTime();
+
+ // 璁剧疆涓哄綋鍓嶆湀浠界殑鏈�鍚庝竴澶╋紙涓嬩釜鏈堢殑绗竴澶╁噺涓�锛�
+ calendar.add(Calendar.MONTH, 1);
+ calendar.set(Calendar.DAY_OF_MONTH, 0); // Calendar.DAY_OF_MONTH璁句负0琛ㄧず涓婁釜鏈堟渶鍚庝竴澶╋紝浣嗚繖閲屾槸涓轰簡寰楀埌鏈湀鏈�鍚庝竴澶╋紝鎵�浠ュ厛鍔犱竴鏈�
+ Date lastDayOfMonth = calendar.getTime();
+ SimpleDateFormat simpleFormatter = new SimpleDateFormat("yyyy-MM-dd");
+ String format = simpleFormatter.format(lastDayOfMonth);
+ System.out.println("鏈�鍚庝竴澶�"+format);
+ }
+}
--
Gitblit v1.8.0