Commit 6dd5d491 by 王衍超

调整预警代码结构;

parent 0591eacc
......@@ -7,4 +7,36 @@ public interface SandMiningAreaConstant {
*/
String ENTITY = "com.xyst.dinas.biz.datamodel.SandMiningArea";
/**************采砂预警**************/
/** 预警计算器*/
String warnCalculator = "com.xyst.dinas.production.processor.SandAreaDinasCountWarningCalculator";
/**
* 超采预警类型
*/
public static final String SAND_MINING_AREA_BILL_TYPE = "采区超采预警";
/**
* 超采预警指标 -开采量
*/
public static final String SAND_MINING_AREA_WARN_TARGET = "开采量";
/**
* 许可证船只进入告警区类型
*/
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.internal.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.dao.SandMiningAreaDao;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.warn.WarnSetting;
......@@ -10,16 +21,6 @@ import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.WarnTargetTypeEnum;
import com.xyst.dinas.biz.warn.service.WarningService;
import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
/**
* @author scol
*/
......@@ -75,12 +76,13 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
if(2==kobject.getInt("status")){
//新建采区后同步新建一条预警设置
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType(WarnSettingConstant.SAND_MINING_AREA_BILL_TYPE);
warnSetting.setBillType(SandMiningAreaConstant.SAND_MINING_AREA_BILL_TYPE);
warnSetting.setBillId(kobject.getUuid("id"));
warnSetting.setTarget(WarnSettingConstant.SAND_MINING_AREA_WARN_TARGET);
warnSetting.setTarget(SandMiningAreaConstant.SAND_MINING_AREA_WARN_TARGET);
warnSetting.setTargetType(WarnTargetTypeEnum.NUMBER_TYPE.name());
warnSetting.setOpen(false);
warnSetting.setMemo(getAreaWarningInfo(kobject));
warnSetting.setWarnCalculator(SandMiningAreaConstant.warnCalculator);
warningSettingService.insertWarnSetting(warnSetting);
}
}
......@@ -88,7 +90,7 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
@Override
public void deleteById(UUID id) {
sandMiningAreaDao.deleteById(id);
WarnSetting warnSetting = warningSettingService.getWarnSetting(WarnSettingConstant.SAND_MINING_AREA_BILL_TYPE, id, WarnSettingConstant.SAND_MINING_AREA_WARN_TARGET);
WarnSetting warnSetting = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_MINING_AREA_BILL_TYPE, id, SandMiningAreaConstant.SAND_MINING_AREA_WARN_TARGET);
warningSettingService.deleteWarnSetting(warnSetting.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting.getSettingId());
}
......
......@@ -47,30 +47,6 @@ public class WarnSettingConstant {
public static final String ACTUAL_VALUE = "actualValue";
/**
* 超采预警类型
*/
public static final String SAND_MINING_AREA_BILL_TYPE = "采区超采预警";
/**
* 超采预警指标 -开采量
*/
public static final String SAND_MINING_AREA_WARN_TARGET = "开采量";
/**
* 许可证船只进入告警区类型
*/
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.contract.warn;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.DinasTypeConstant;
import com.xyst.dinas.biz.warn.IWarningCalculator;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.service.ContractService;
/**
......@@ -24,7 +29,12 @@ public class AdvanceBalanceWarningCalculator implements IWarningCalculator{
@Override
public boolean isWarning(WarnSetting warnSetting) {
//TODO
String min = warnSetting.getMin();
String target = warnSetting.getTarget();
if(min==null || min.trim().length()==0) return false;
KObject contract = contractService.queryContract(warnSetting.getBillId());
advanceBalance = contract.getDouble(ContractConstant.ADVANCE_BALANCE);
return false;
}
......
......@@ -2,8 +2,10 @@ package com.xyst.dinas.contract.warn;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.warn.IWarningCalculator;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.service.ContractService;
/**
......@@ -24,7 +26,12 @@ public class ContractExpireWarningCalculator implements IWarningCalculator{
@Override
public boolean isWarning(WarnSetting warnSetting) {
//TODO
String min = warnSetting.getMin();
String target = warnSetting.getTarget();
if(min==null || min.trim().length()==0) return false;
KObject contract = contractService.queryContract(warnSetting.getBillId());
advanceBalance = contract.getDouble(ContractConstant.ADVANCE_BALANCE);
return false;
}
......
package com.xyst.dinas.production.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
import com.beecode.amino.metadata.runtime.MetadataMech;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.TypeConstants;
......@@ -8,16 +13,13 @@ import com.xyst.dinas.production.internal.SandShipWarnSettingProcessor;
import com.xyst.dinas.production.internal.SandWarningExeProcessor;
import com.xyst.dinas.production.internal.dao.SandMiningDaoImpl;
import com.xyst.dinas.production.internal.service.SandMiningServiceImpl;
import com.xyst.dinas.production.processor.SandAreaDinasCountWarningCalculator;
import com.xyst.dinas.production.service.SandMiningService;
import com.xyst.dinas.production.task.SandMiningExpiredSchedule;
import com.xyst.dinas.production.task.SandMiningExpiredTask;
import com.xyst.dinas.production.task.WarehousingStatusExpiredSchedule;
import com.xyst.dinas.production.task.WarehousingTask;
import com.xyst.dinas.production.web.SandMiningController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
public class SandMiningConfiguration {
......@@ -80,5 +82,10 @@ public class SandMiningConfiguration {
public SandWarningExeProcessor sandWarningExeProcessor() {
return new SandWarningExeProcessor();
}
@Bean("com.xyst.dinas.production.processor.SandAreaDinasCountWarningCalculator")
public SandAreaDinasCountWarningCalculator sandAreaDinasCountWarningCalculator() {
return new SandAreaDinasCountWarningCalculator();
}
}
package com.xyst.dinas.production.internal;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.query.entity.RowData;
import com.beecode.inz.query.processor.DataProcessor;
import com.beecode.inz.query.processor.DataProcessorContext;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarningServiceImpl;
import com.xyst.dinas.biz.warn.service.WarningService;
import com.xyst.dinas.production.service.SandMiningService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* @author scol
......@@ -45,14 +44,14 @@ public class SandWarningExeProcessor implements DataProcessor {
String warnSettingId = row.get("warnSetting.id").toString();
WarnSetting warnSetting = warningSettingService.getWarnSetting(UUID.fromString(warnSettingId));
String billType = warnSetting.getBillType();
if(WarnSettingConstant.SAND_MINING_AREA_BILL_TYPE.equals(billType)){
if(SandMiningAreaConstant.SAND_MINING_AREA_BILL_TYPE.equals(billType)){
KObject byId = sandMiningAreaService.getById(billId);
sandAreaName = byId.getString("sandMiningAreaName");
shipName="-";
regionalCompanyName=byId.get("regionalCompany").getString("name");
row.put("detail", warnSetting.getMax());
}else if(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE.equals(billType)){
}else if(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE.equals(billType)){
KObject sandMining = sandMiningService.getById(billId);
sandAreaName= sandMining.get("sandMiningArea").getString("sandMiningAreaName");
shipName=sandMining.get("ship").getString("shipName");
......
......@@ -108,7 +108,7 @@ public class DischargingServiceImpl implements DischargingService {
Double allDischargingWeightByYearAndSandAreaId = dischargingDao.getAllDischargingWeightByYearAndSandAreaId(dischargingTime, billId);
SandAreaDinasCountWarningCalculate sandAreaDinasCountWarningCalculate = new SandAreaDinasCountWarningCalculate(allDischargingWeightByYearAndSandAreaId, sandMiningArea.getString("sandMiningAreaName"));
BaseBusinessWarn businessWarn = warningService.createWarn(WarnSettingConstant.SAND_MINING_AREA_BILL_TYPE, billId, WarnSettingConstant.SAND_MINING_AREA_WARN_TARGET);
BaseBusinessWarn businessWarn = warningService.createWarn(SandMiningAreaConstant.SAND_MINING_AREA_BILL_TYPE, billId, SandMiningAreaConstant.SAND_MINING_AREA_WARN_TARGET);
businessWarn.setWarningCalculate(sandAreaDinasCountWarningCalculate);
businessWarn.warn();
}
......
package com.xyst.dinas.production.internal.service;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.WarningService;
import com.xyst.dinas.production.dao.SandMiningDao;
import com.xyst.dinas.production.service.SandMiningService;
import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
@Transactional(rollbackFor = Exception.class)
public class SandMiningServiceImpl implements SandMiningService {
......@@ -39,19 +40,21 @@ public class SandMiningServiceImpl implements SandMiningService {
UUID uuid = sandMiningDao.create(kObject);
//新增采砂船非工作时间预警和采砂船非自己采区预警
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting.setBillType(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting.setBillId(uuid);
warnSetting.setTarget(WarnSettingConstant.SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA);
warnSetting.setTarget(SandMiningAreaConstant.SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA);
warnSetting.setOpen(false);
warnSetting.setMemo(getSandShipInfo(kObject));
warnSetting.setWarnCalculator(SandMiningAreaConstant.warnCalculator);
warningSettingService.insertWarnSetting(warnSetting);
WarnSettingEntity warnSetting1 = new WarnSettingEntity();
warnSetting1.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting1.setBillType(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting1.setBillId(uuid);
warnSetting1.setTarget(WarnSettingConstant.SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS);
warnSetting1.setTarget(SandMiningAreaConstant.SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS);
warnSetting1.setOpen(false);
warnSetting1.setMemo(getSandShipInfo(kObject));
warnSetting1.setWarnCalculator(SandMiningAreaConstant.warnCalculator);
warningSettingService.insertWarnSetting(warnSetting1);
return uuid;
......@@ -89,13 +92,13 @@ public class SandMiningServiceImpl implements SandMiningService {
//删除预警设置 结束预警记录
//进入告警区的
WarnSetting warnSetting = warningSettingService.getWarnSetting(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE, id, WarnSettingConstant.SAND_SHIP_WARN_TARGET_ENTER_WARNING_AREA);
WarnSetting warnSetting = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE, id, SandMiningAreaConstant.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);
WarnSetting warnSetting1 = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE, id, SandMiningAreaConstant.SAND_SHIP_WARN_TARGET_NO_OPERATING_HOURS);
if(null!=warnSetting1){
warningSettingService.deleteWarnSetting(warnSetting1.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting1.getSettingId());
......
package com.xyst.dinas.production.processor;
import com.xyst.dinas.biz.warn.IWarningCalculator;
import com.xyst.dinas.biz.warn.WarnSetting;
/**
* 上岸量比较
*
* @author
* @date 2021年4月23日
*/
public class SandAreaDinasCountWarningCalculator implements IWarningCalculator{
/**上岸量
*
*/
private double dischargingWeight;
private String sandAreaName;
private String warnMessage;
@Override
public boolean isWarning(WarnSetting warnSetting) {
String max = warnSetting.getMax();
String target = warnSetting.getTarget();
if(max==null || max.trim().length()==0) {
return false;
}
//TODO
return false;
}
public double getDinasCount() {
return dischargingWeight;
}
public void setDinasCount(double dinasCount) {
this.dischargingWeight = dinasCount;
}
@Override
public String warnMessage() {
return warnMessage;
}
@Override
public String getActualValue() {
return dischargingWeight+"";
}
}
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