Commit cb5ecc59 by shiwenbo

Merge branch 'develop' of gitlab.beecode.cn:kunlun/xyst_dinas/xyst_dinas_backend into develop

parents cc566607 d41c9dcc
...@@ -92,7 +92,6 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService { ...@@ -92,7 +92,6 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
sandMiningAreaDao.deleteById(id); sandMiningAreaDao.deleteById(id);
WarnSetting warnSetting = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_MINING_AREA_BILL_TYPE, id, SandMiningAreaConstant.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.deleteWarnSetting(warnSetting.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting.getSettingId());
} }
@Override @Override
......
...@@ -174,7 +174,7 @@ public class WarningServiceImpl implements WarningService{ ...@@ -174,7 +174,7 @@ public class WarningServiceImpl implements WarningService{
/** /**
* 删除预警设置 * 删除预警设置, 自动结束预警执行记录
* *
* @param warnSettingId * @param warnSettingId
*/ */
...@@ -184,26 +184,35 @@ public class WarningServiceImpl implements WarningService{ ...@@ -184,26 +184,35 @@ public class WarningServiceImpl implements WarningService{
kObject.set("del",true); kObject.set("del",true);
kObject.set("discard",true); kObject.set("discard",true);
warnSettingDao.update(kObject); warnSettingDao.update(kObject);
//结束预警执行记录
KObject warnExeRecord = warnSettingDao.queryWarnExeRecordBySettingId(warnSettingId);
warnSettingDao.endWarnRecordState(warnExeRecord);
} }
/** /**
* 删除预警设置 * 开启或关闭预警设置; 可重复开启或关闭
* * @param warnSettingId 预警设置ID
* @param billType * @param isOpen 开启true/关闭false
* @param billId
* @param target
*/ */
@Override public void onOffWarnSetting(UUID warnSettingId,boolean isOpen) {
public void deleteWarnSetting(String billType, UUID billId, String target) { KObject warnSetting = warnSettingDao.queryWarnSettingById(warnSettingId);
boolean isOpen2 = warnSetting.getBoolean(WarnSettingConstant.isOpen);
WarnSetting warnSetting = warnSettingDao.getWarnSetting(billType, billId, target); if(isOpen == isOpen2) return;
KObject kObject = warnSettingDao.queryWarnSettingById(warnSetting.getSettingId()); warnSetting.set(WarnSettingConstant.isOpen,isOpen);
kObject.set("del",true); warnSettingDao.update(warnSetting);
kObject.set("discard",true); if(isOpen) {
warnSettingDao.update(kObject); //再次开启,触发预警
BaseBusinessWarn baseBusinessWarn = new BaseBusinessWarn(warnSettingId);
baseBusinessWarn.warn();
}else {
//关闭预警,结束预警执行记录
KObject warnExeRecord = warnSettingDao.queryWarnExeRecordBySettingId(warnSettingId);
warnSettingDao.endWarnRecordState(warnExeRecord);
}
} }
private String UuidListToString(List<UUID> uuids) { 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++) {
......
...@@ -23,6 +23,7 @@ import org.hibernate.criterion.Restrictions; ...@@ -23,6 +23,7 @@ import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
import org.springframework.orm.hibernate5.HibernateCallback; import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations; import org.springframework.orm.hibernate5.HibernateOperations;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -97,6 +98,24 @@ public class WarnSettingDao { ...@@ -97,6 +98,24 @@ public class WarnSettingDao {
return warnSettingToEntity(kObject.orElse(null)); return warnSettingToEntity(kObject.orElse(null));
}); });
} }
public List<KObject> queryWarnSettings(String billType, @Nullable UUID billId,@Nullable String target) {
String QUERY_HQL = "from " + WarnSettingConstant.ENTITY_WARNSETTING + " where billType =:billType";
return template.execute(session -> {
StringBuilder hql = new StringBuilder(QUERY_HQL);
if (billId != null) hql.append(" and billId =:billId");
if (target != null) hql.append(" and target =:target");
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);
query.setParameter("billType", billType);
if (billId != null) query.setParameter("billId", billId);
if (target != null) query.setParameter("target", target);
return query.getResultList();
});
}
private WarnSetting warnSettingToEntity(KObject singleResult) { private WarnSetting warnSettingToEntity(KObject singleResult) {
if (singleResult == null) return null; if (singleResult == null) return null;
......
...@@ -41,16 +41,18 @@ public interface WarningService { ...@@ -41,16 +41,18 @@ public interface WarningService {
void updateWarnSetting(WarnSettingReq warnSetting); void updateWarnSetting(WarnSettingReq warnSetting);
/** /**
* 删除预警设置 * 删除预警设置, 自动结束预警执行记录
* @param warnSettingId * @param warnSettingId
*/ */
void deleteWarnSetting(@NonNull UUID warnSettingId); void deleteWarnSetting(@NonNull UUID warnSettingId);
/**
* 删除预警设置
*/
void deleteWarnSetting(@NonNull String billType, @Nullable UUID billId, @Nullable String target);
/**
* 开启或关闭预警设置; 可重复开启或关闭
* @param warnSettingId 预警设置ID
* @param isOpen 开启true/关闭false
*/
public void onOffWarnSetting(UUID warnSettingId,boolean isOpen) ;
/***************************************/ /***************************************/
......
...@@ -339,6 +339,12 @@ public class ContractServiceImpl implements ContractService { ...@@ -339,6 +339,12 @@ public class ContractServiceImpl implements ContractService {
KObject contract = contractDao.load(id); KObject contract = contractDao.load(id);
contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.COMPLETED.name()); contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.COMPLETED.name());
contractDao.update(contract); contractDao.update(contract);
//合同完成后,把该合同的所有预警设置全部清除
UUID contractInfoId = contract.getUuid(ContractConstant.CONTRACT_ID);
List<KObject> warnSettings = warnSettingDao.queryWarnSettings(ContractWarnConst.billType, contractInfoId, null);
for (KObject warnSetting : warnSettings) {
warningSettingService.deleteWarnSetting(warnSetting.getUuid(BaseConstants.ID));
}
} }
@Transactional @Transactional
......
...@@ -95,17 +95,12 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -95,17 +95,12 @@ public class SandMiningServiceImpl implements SandMiningService {
WarnSetting warnSetting = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE, id, SandMiningAreaConstant.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){ if(null!=warnSetting){
warningSettingService.deleteWarnSetting(warnSetting.getSettingId()); warningSettingService.deleteWarnSetting(warnSetting.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting.getSettingId());
} }
//非作业时间采砂的 //非作业时间采砂的
WarnSetting warnSetting1 = warningSettingService.getWarnSetting(SandMiningAreaConstant.SAND_SHIP_WARN_BILL_TYPE, id, SandMiningAreaConstant.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){ if(null!=warnSetting1){
warningSettingService.deleteWarnSetting(warnSetting1.getSettingId()); warningSettingService.deleteWarnSetting(warnSetting1.getSettingId());
warningSettingService.endWarnStateBySettingId(warnSetting1.getSettingId());
} }
} }
@Override @Override
......
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