Commit 3e8c91e7 by 高晓磊

采砂预警设置和预警记录的忽略和统计

parent 931b300d
...@@ -277,4 +277,48 @@ public class DateTimeUtils { ...@@ -277,4 +277,48 @@ public class DateTimeUtils {
return calendar.getTime(); return calendar.getTime();
} }
/**
* 判断1个日期是否小于当前时间所在年
* eg: now = new Date 2021-04-16
* isLtNowYear(2020-12-31) true
* isLtNowYear(2021-01-01) false
* @return Boolean
*/
public static Boolean isLtNowYear(Date date) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(new Date());
return cal1.get(Calendar.YEAR) < cal2.get(Calendar.YEAR);
}
/**
* 判断2个日期是否同年
* eg: isSameYear(2020-12-31,2021-01-01) false
* isSameYear(2020-01-01,2020-12-31) true
* @return Boolean
*/
public static Boolean isSameYear(Date startDate , Date endDate) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(startDate);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(endDate);
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR);
}
/**
* 判断2个日期是否同月
* eg: isSameYear(2020-12-31,2021-01-01) false
* isSameYear(2020-12-31,2020-12-01) true
* isSameYear(2020-12-31,2021-12-01) true
* @return Boolean
*/
public static Boolean isSameMonth(Date startDate , Date endDate) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(startDate);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(endDate);
return cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);
}
} }
\ No newline at end of file
...@@ -125,7 +125,11 @@ public class BaseBusinessWarn { ...@@ -125,7 +125,11 @@ public class BaseBusinessWarn {
//2.当前存在执行中的预警记录,则修改预警执行信息 //2.当前存在执行中的预警记录,则修改预警执行信息
Date currentTime = new Date(); Date currentTime = new Date();
warnExeRecord.setRecentlyTime(currentTime); warnExeRecord.setRecentlyTime(currentTime);
if(!isWarning) {//2.1 如果没有处罚预警,则结束该预警记录 if(!isWarning) {//2.1 如果没有触发预警,则结束该预警记录
//如果预警已经结束,则不修改
if((WarnStateEnum.OVER.getValue()+"").equals(warnExeRecord.getWarnState())){
return true;
}
warnExeRecord.setEndTime(currentTime); warnExeRecord.setEndTime(currentTime);
warnExeRecord.setWarnState(WarnStateEnum.OVER.getValue()+""); warnExeRecord.setWarnState(WarnStateEnum.OVER.getValue()+"");
} }
......
...@@ -15,6 +15,8 @@ public class WarnSettingConstant { ...@@ -15,6 +15,8 @@ public class WarnSettingConstant {
/** 最近预警时间 */ /** 最近预警时间 */
public static final String RECENTLY_TIME = "recentlyTime"; public static final String RECENTLY_TIME = "recentlyTime";
public static final String WARN_STATE = "warnState";
/** /**
* 超采预警类型 * 超采预警类型
...@@ -29,7 +31,18 @@ public class WarnSettingConstant { ...@@ -29,7 +31,18 @@ public class WarnSettingConstant {
/** /**
* 许可证船只进入告警区类型 * 许可证船只进入告警区类型
*/ */
public static final String SAND_SHIP_WARN_BILL_TYPE = "采区船只预警"; public static final String SAND_SHIP_WARN_BILL_TYPE = "采区船只报警";
/**
* 许可证船只进入告警区指标-进入告警区
*/
public static final String SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA = "进入告警区";
/**
* 许可证船只进入告警区指标-非作业时间进入采砂区
*/
public static final String SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS = "非作业时间进入采砂区";
} }
package com.xyst.dinas.biz.warn.service; package com.xyst.dinas.biz.warn.service;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
...@@ -19,8 +20,10 @@ public interface IWarningSettingService { ...@@ -19,8 +20,10 @@ public interface IWarningSettingService {
* @return * @return
*/ */
public UUID insertWarnSetting(WarnSetting warnSetting) ; public UUID insertWarnSetting(WarnSetting warnSetting) ;
WarnSetting getWarnSetting(@NonNull UUID warnSettingId); void endWarnStateBySettingId(UUID warnSettingId);
WarnSetting getWarnSetting(@NonNull UUID warnSettingId);
WarnSetting getWarnSetting(@NonNull String billType, @Nullable UUID billId, @Nullable String target); WarnSetting getWarnSetting(@NonNull String billType, @Nullable UUID billId, @Nullable String target);
/** /**
...@@ -35,6 +38,17 @@ public interface IWarningSettingService { ...@@ -35,6 +38,17 @@ public interface IWarningSettingService {
* @param warnSetting * @param warnSetting
*/ */
void updateWarnSetting(UpdateWarnSetting warnSetting); void updateWarnSetting(UpdateWarnSetting warnSetting);
/**
* 删除预警设置
* @param warnSettingId
*/
void deleteWarnSetting(@NonNull UUID warnSettingId);
/**
* 删除预警设置
*/
void deleteWarnSetting(@NonNull String billType, @Nullable UUID billId, @Nullable String target);
/***************************************/ /***************************************/
...@@ -57,6 +71,9 @@ public interface IWarningSettingService { ...@@ -57,6 +71,9 @@ public interface IWarningSettingService {
* @return * @return
*/ */
List<WarnExeRecord> queryWarnExeRecords(UUID warnSettingId); List<WarnExeRecord> queryWarnExeRecords(UUID warnSettingId);
void ignoreWarnExeRecord(UUID id);
HashMap<String, Object> warnRecodeGroupInfo(List<UUID> regionalCompanyIds, List<String> targets);
} }
package com.xyst.dinas.biz.warn.service; package com.xyst.dinas.biz.warn.service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import com.xyst.dinas.biz.enumeration.WarnStateEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -36,6 +38,8 @@ public class WarningSettingServiceImpl implements IWarningSettingService{ ...@@ -36,6 +38,8 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
JsonNode json = JSONObjectUtils.toJson(warnSetting); JsonNode json = JSONObjectUtils.toJson(warnSetting);
KObject object = JSONObjectUtils.toObject(json, type); KObject object = JSONObjectUtils.toObject(json, type);
object.set(BaseConstants.CREATE_TIME, LocalDateTime.now()); object.set(BaseConstants.CREATE_TIME, LocalDateTime.now());
object.set(BaseConstants.DEL,false);
object.set(BaseConstants.DISCARD,false);
return warnSettingDao.create(object); return warnSettingDao.create(object);
} }
...@@ -62,7 +66,8 @@ public class WarningSettingServiceImpl implements IWarningSettingService{ ...@@ -62,7 +66,8 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
* 结束一条预警设置的预警执行记录 * 结束一条预警设置的预警执行记录
* @param warnSettingId * @param warnSettingId
*/ */
public void endWarnStateBySettingId(UUID warnSettingId) { @Override
public void endWarnStateBySettingId(UUID warnSettingId) {
KObject warnExeRecord = warnSettingDao.queryWarnExeRecordBySettingId(warnSettingId); KObject warnExeRecord = warnSettingDao.queryWarnExeRecordBySettingId(warnSettingId);
warnSettingDao.endWarnRecordState(warnExeRecord); warnSettingDao.endWarnRecordState(warnExeRecord);
...@@ -88,7 +93,19 @@ public class WarningSettingServiceImpl implements IWarningSettingService{ ...@@ -88,7 +93,19 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
return null; return null;
} }
@Override @Override
public void ignoreWarnExeRecord(UUID id) {
KObject kObject = warnSettingDao.queryWarningExeById(id);
kObject.set(WarnSettingConstant.WARN_STATE, WarnStateEnum.IGNORE.getValue()+"");
warnSettingDao.update(kObject);
}
@Override
public HashMap<String, Object> warnRecodeGroupInfo(List<UUID> regionalCompanyIds, List<String> targets) {
return warnSettingDao.warnRecodeGroupInfo(regionalCompanyIds,targets);
}
@Override
public void updateWarnExe(WarnExeRecord warnExeRecord) { public void updateWarnExe(WarnExeRecord warnExeRecord) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class); KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnExeRecord); JsonNode json = JSONObjectUtils.toJson(warnExeRecord);
...@@ -126,12 +143,41 @@ public class WarningSettingServiceImpl implements IWarningSettingService{ ...@@ -126,12 +143,41 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
warSettingIdObj.set("min", min); warSettingIdObj.set("min", min);
String max = warnSetting.getMax(); String max = warnSetting.getMax();
warSettingIdObj.set("max", max); warSettingIdObj.set("max", max);
warnSettingDao.update(warSettingIdObj); warnSettingDao.update(warSettingIdObj);
} }
/**
private String UuidListToString(List<UUID> uuids) { * 删除预警设置
*
* @param warnSettingId
*/
@Override
public void deleteWarnSetting(UUID warnSettingId) {
KObject kObject = warnSettingDao.queryWarnSettingById(warnSettingId);
kObject.set("del",true);
kObject.set("discard",true);
warnSettingDao.update(kObject);
}
/**
* 删除预警设置
*
* @param billType
* @param billId
* @param target
*/
@Override
public void deleteWarnSetting(String billType, UUID billId, String target) {
WarnSetting warnSetting = warnSettingDao.getWarnSetting(billType, billId, target);
KObject kObject = warnSettingDao.queryWarnSettingById(warnSetting.getSettingId());
kObject.set("del",true);
kObject.set("discard",true);
warnSettingDao.update(kObject);
}
private String UuidListToString(List<UUID> uuids) {
StringBuilder str = new StringBuilder(); StringBuilder str = new StringBuilder();
for (int i = 0; i < uuids.size(); i++) { for (int i = 0; i < uuids.size(); i++) {
if (i == uuids.size() - 1) { if (i == uuids.size() - 1) {
......
...@@ -119,11 +119,11 @@ public class SandMiningAreaController { ...@@ -119,11 +119,11 @@ public class SandMiningAreaController {
return ResponseObj.success("预警设置更新成功"); return ResponseObj.success("预警设置更新成功");
} }
//更新预警设置 //忽略预警记录
@GetMapping("/warnRecode/ignore")//采区预警设置更新 @GetMapping("/warnRecode/ignore")
public ResponseObj ignoreWarnExe(UUID id) { public ResponseObj ignoreWarnExe(@RequestParam("id")UUID id) {
warningSettingService.queryWarnExeRecord(id); warningSettingService.ignoreWarnExeRecord(id);
return ResponseObj.success("预警设置更新成功"); return ResponseObj.success("忽略成功");
} }
......
package com.xyst.dinas.biz.web; package com.xyst.dinas.biz.web;
import java.util.UUID; import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import org.json.JSONObject; import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.beecode.bcp.type.KObject; import java.util.HashMap;
import com.xyst.dinas.biz.request.UpdateWarnSetting; import java.util.List;
import com.xyst.dinas.biz.warn.service.IWarningSettingService; import java.util.UUID;
/** /**
* 预警 * 预警
...@@ -42,6 +41,16 @@ public class WarnSettingController { ...@@ -42,6 +41,16 @@ public class WarnSettingController {
Assert.notNull(id,"The id must not be null"); Assert.notNull(id,"The id must not be null");
return warningSettingService.queryWarnSettingById(id); return warningSettingService.queryWarnSettingById(id);
} }
//查询预警汇总信息
@GetMapping("/warnRecode/groupInfo")
public ResponseObj groupInfo(@RequestParam(name = "regionalCompanyIds") List<UUID> regionalCompanyIds, @RequestParam(name = "targets")List<String> targets) {
HashMap<String,Object> groupInfo = warningSettingService.warnRecodeGroupInfo(regionalCompanyIds,targets);
return ResponseObj.success("查询成功", groupInfo);
}
} }
...@@ -2,6 +2,7 @@ package com.xyst.dinas.production.internal.service; ...@@ -2,6 +2,7 @@ package com.xyst.dinas.production.internal.service;
import com.beecode.bap.attachment.common.Page; import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant; import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarnSettingEntity; import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService; import com.xyst.dinas.biz.warn.service.IWarningSettingService;
...@@ -39,7 +40,7 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -39,7 +40,7 @@ public class SandMiningServiceImpl implements SandMiningService {
WarnSettingEntity warnSetting = new WarnSettingEntity(); WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE); warnSetting.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting.setBillId(uuid); warnSetting.setBillId(uuid);
warnSetting.setTarget("进入告警区"); warnSetting.setTarget(WarnSettingConstant.SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA);
warnSetting.setOpen(false); warnSetting.setOpen(false);
warnSetting.setMemo(getSandShipInfo(kObject)); warnSetting.setMemo(getSandShipInfo(kObject));
warningSettingService.insertWarnSetting(warnSetting); warningSettingService.insertWarnSetting(warnSetting);
...@@ -47,7 +48,7 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -47,7 +48,7 @@ public class SandMiningServiceImpl implements SandMiningService {
WarnSettingEntity warnSetting1 = new WarnSettingEntity(); WarnSettingEntity warnSetting1 = new WarnSettingEntity();
warnSetting1.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE); warnSetting1.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting1.setBillId(uuid); warnSetting1.setBillId(uuid);
warnSetting1.setTarget("非作业时间采砂"); warnSetting1.setTarget(WarnSettingConstant.SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS);
warnSetting1.setOpen(false); warnSetting1.setOpen(false);
warnSetting1.setMemo(getSandShipInfo(kObject)); warnSetting1.setMemo(getSandShipInfo(kObject));
warningSettingService.insertWarnSetting(warnSetting1); warningSettingService.insertWarnSetting(warnSetting1);
...@@ -84,6 +85,23 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -84,6 +85,23 @@ public class SandMiningServiceImpl implements SandMiningService {
@Override @Override
public void deleteById(UUID id) { public void deleteById(UUID id) {
sandMiningDao.deleteById(id); sandMiningDao.deleteById(id);
//删除预警设置 结束预警记录
//进入告警区的
WarnSetting warnSetting = warningSettingService.getWarnSetting(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE, id, WarnSettingConstant.SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA);
if(null!=warnSetting){
warningSettingService.deleteWarnSetting(warnSetting.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting.getSettingId());
}
//非作业时间采砂的
WarnSetting warnSetting1 = warningSettingService.getWarnSetting(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE, id, WarnSettingConstant.SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS);
if(null!=warnSetting1){
warningSettingService.deleteWarnSetting(warnSetting1.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting1.getSettingId());
}
} }
@Override @Override
......
...@@ -161,4 +161,16 @@ public class DischargingController { ...@@ -161,4 +161,16 @@ public class DischargingController {
return ResponseObj.success(); return ResponseObj.success();
} }
//接驳统计
// @RequestMapping(value = "groupInfoByYear", method = RequestMethod.GET)
// public ResponseObj groupInfo(
// @RequestParam(name = "regionalCompanyIds", required = false) List<UUID> regionalCompanyIds,
// @RequestParam(name = "year", required = false) List<UUID> regionalCompanyIds,
// ) throws Exception {
//
// return ResponseObj.success("查询成功", dischargingService.groupInfo(transportShipId,type,startDate,endDate,sandMiningAreaType,stationIds,sandMiningAreaId,sandMiningShipId,parentId));
// }
} }
\ No newline at end of file
...@@ -35,7 +35,6 @@ public class SandMiningController { ...@@ -35,7 +35,6 @@ public class SandMiningController {
@RequestParam(name = "pageSize") Integer pageSize, @RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "sandMiningStatus", required = false) Integer sandMiningStatus @RequestParam(name = "sandMiningStatus", required = false) Integer sandMiningStatus
) throws Exception { ) throws Exception {
Page<KObject> objectPage = new Page<>(); Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo); objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize); objectPage.setPageSize(pageSize);
......
...@@ -50,6 +50,16 @@ ...@@ -50,6 +50,16 @@
<m:desc></m:desc> <m:desc></m:desc>
</m:field> </m:field>
<m:field> <m:field>
<m:name>warnSetting.billType</m:name>
<m:title>预警指标</m:title>
<m:type>com.xyst.dinas.biz.datamodel.WarnSetting</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>startTime</m:name> <m:name>startTime</m:name>
<m:title>开始时间</m:title> <m:title>开始时间</m:title>
<m:type>datetime</m:type> <m:type>datetime</m:type>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment