Commit b415eab0 by 王衍超

新增预警功能;

parent 6205299f
...@@ -60,7 +60,8 @@ public class MobileMessageProducerImpl implements MessageProducer { ...@@ -60,7 +60,8 @@ public class MobileMessageProducerImpl implements MessageProducer {
UUID userId = UUID.fromString(message.getPartId()); UUID userId = UUID.fromString(message.getPartId());
logger.debug("userId为:{}", userId); logger.debug("userId为:{}", userId);
KObject part = null; KObject part = null;
if(message.getIsToCustomer()){ Boolean isToCustomer = message.getIsToCustomer();
if(isToCustomer!=null && isToCustomer){
part = customerTemporaryDao.load(userId);//获取customer part = customerTemporaryDao.load(userId);//获取customer
}else{ }else{
part = staffService.getByUserId(userId); part = staffService.getByUserId(userId);
...@@ -76,7 +77,7 @@ public class MobileMessageProducerImpl implements MessageProducer { ...@@ -76,7 +77,7 @@ public class MobileMessageProducerImpl implements MessageProducer {
// System.out.println(registrationId); // System.out.println(registrationId);
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
obj.put(DEVICE_ID, registrationId); obj.put(DEVICE_ID, registrationId);
if(message.getIsToCustomer()){ if(isToCustomer!=null && isToCustomer){
obj.put(UESR_NAME, part.getString("username")); obj.put(UESR_NAME, part.getString("username"));
}else{ }else{
obj.put(UESR_NAME, part.getString("name")); obj.put(UESR_NAME, part.getString("name"));
......
package com.xyst.dinas.biz.config; package com.xyst.dinas.biz.config;
import com.xyst.dinas.biz.warn.WarnSettingDao; import com.xyst.dinas.biz.warn.dao.WarnSettingDao;
/** import com.xyst.dinas.biz.warn.service.IWarningSettingService;
* 预警配置 import com.xyst.dinas.biz.warn.service.WarningSettingServiceImpl;
*
* @author Jackpot
* @date 2021年4月1日
*/
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
...@@ -18,6 +14,12 @@ public class WarningConfiguration { ...@@ -18,6 +14,12 @@ public class WarningConfiguration {
} }
@Bean
public IWarningSettingService warningSettingService() {
return new WarningSettingServiceImpl();
}
} }
package com.xyst.dinas.biz.warn; package com.xyst.dinas.biz.warn;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import com.beecode.amino.core.Amino; import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.message.CommonConstants;
import com.beecode.inz.message.RemPartRelationConstants;
import com.beecode.inz.message.enumeration.ParterType;
import com.beecode.inz.message.service.RemindService; import com.beecode.inz.message.service.RemindService;
import com.beecode.inz.message.util.MessageUtils;
import com.jiuqi.np.util.DateUtil;
import com.xyst.dinas.biz.warn.dao.WarnSettingDao;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
/** /**
* 业务预警基类 * 业务预警基类
...@@ -29,9 +44,11 @@ public class BaseBusinessWarn { ...@@ -29,9 +44,11 @@ public class BaseBusinessWarn {
private IWarningCalculate warningCalculate; private IWarningCalculate warningCalculate;
private WarnSettingDao warnSettingDao; private IWarningSettingService warningSettingService;
private RemindService remindService; private RemindService remindService;
private StaffService staffService;
public BaseBusinessWarn(@NonNull String billType, @Nullable UUID billId, @Nullable String target) { public BaseBusinessWarn(@NonNull String billType, @Nullable UUID billId, @Nullable String target) {
Assert.notNull(billType, "The billType must not be null!"); Assert.notNull(billType, "The billType must not be null!");
...@@ -39,27 +56,31 @@ public class BaseBusinessWarn { ...@@ -39,27 +56,31 @@ public class BaseBusinessWarn {
this.billId = billId; this.billId = billId;
this.target = target; this.target = target;
remindService = getRemindService(); remindService = getRemindService();
warnSettingDao = getWarnSettingDao(); staffService = getStaffService();
warningSettingService = getWarningSettingService();
} }
/** 预警设置*/ /** 预警设置*/
protected WarnSetting getWarnSetting() { protected WarnSetting getWarnSetting() {
//通过billType, billId, target 在数据库查询预警设置数据 return warningSettingService.getWarnSetting(billType, billId, target);
warnSettingDao.getWarnSetting(billType, billId, target); }
WarnSettingEntity warnSettingEntity = new WarnSettingEntity();
// warnSettingEntity.setNoticePersons(null);
return warnSettingEntity;
};
/** 计算是否预警*/ /** 计算是否预警*/
public final void setWarningCalculate(IWarningCalculate warningCalculate) { public final void setWarningCalculate(IWarningCalculate warningCalculate) {
this.warningCalculate = warningCalculate; this.warningCalculate = warningCalculate;
}; }
/** 预警*/
public final boolean warn() { public final boolean warn() {
return warn(true);
}
/**
* 预警
* @param isNotice 是否发送通知
* @return
*/
public final boolean warn(boolean isNotice) {
boolean isWarning = false; boolean isWarning = false;
WarnSetting warnSetting = getWarnSetting(); WarnSetting warnSetting = getWarnSetting();
...@@ -68,24 +89,113 @@ public class BaseBusinessWarn { ...@@ -68,24 +89,113 @@ public class BaseBusinessWarn {
//计算业务实际的值, 与预警设置中的值做比较, 计算是否预警 //计算业务实际的值, 与预警设置中的值做比较, 计算是否预警
isWarning = warningCalculate.isWarning(warnSetting); isWarning = warningCalculate.isWarning(warnSetting);
if(!isWarning) return false; if(!isWarning) isNotice= false;
UUID warnSettingId = warnSetting.getSettingId();
//记录预警日志
WarnExeRecord warnExeRecord = warningSettingService.queryWarnExeRecord(warnSettingId);
if (warnExeRecord == null) {
//新增预警执行信息
warnExeRecord = createWarnExeRecord(warnSetting);
warningSettingService.insertWarnExe(warnExeRecord);
}else {
//修改预警执行信息
Date currentTime = new Date();
warnExeRecord.setRecentlyTime(currentTime);
if(!isWarning) {
warnExeRecord.setEndTime(currentTime);
}
warningSettingService.updateWarnExe(warnExeRecord);
}
String[] noticePerson = warnSetting.getPersonnel();
notice(noticePerson);
//TODO 记录预警日志
String[] noticePerson = warnSetting.getPersonnel();
try {
if (isNotice)
notice(noticePerson,"message",warnSetting.getBillId());
} catch (Exception e) {
e.printStackTrace();
}
return true; return true;
}; };
public void notice(String[] noticePerson) { private WarnExeRecord createWarnExeRecord(WarnSetting warnSetting) {
//TODO 通知所有人员 WarnExeRecord warnExeRecord = new WarnExeRecord();
// remindService. Date currentTime = new Date();
warnExeRecord.setStratTime(currentTime);
warnExeRecord.setRecentlyTime(currentTime);
warnExeRecord.setTarget(warnSetting.getTarget());
warnExeRecord.setMin(warnSetting.getMin());
warnExeRecord.setMax(warnSetting.getMax());
warnExeRecord.setWarnSettingId(warnSetting.getSettingId());
warnExeRecord.setBillId(warnSetting.getBillId());
return warnExeRecord;
}
private void notice(String[] noticePerson,String message,UUID billId) throws Exception{
// 通知所有人员
Date currentTime = new Date();
String currentTimeStr = DateUtil.dateTime2String(currentTime);
JSONObject remObject = new JSONObject();
UUID remindId = UUID.randomUUID();
remObject.put("id", remindId);
remObject.put("createTime", currentTimeStr);
remObject.put("remindContent", "合同预警通知");
remObject.put("remindTime", currentTimeStr);
remObject.put("data",billId );//param.getString("id")
remObject.put("lookName", "contractY");
remObject.put("lookType", "Contract");
remObject.put("_type", CommonConstants.REMIND_ENTITY);
remObject.put("isToCustomer", false);
KObject kobject =(KObject)JSONObjectUtils.toObject(remObject.toString());
KObject creater = MessageUtils.gerCurrentStaff();
kobject.set("sender", creater);//
kobject.validate();
JSONArray parts = new JSONArray();
for (String person : noticePerson) {
JSONObject part = new JSONObject();
part.put("participateId", person);
part.put("participateType", "person");
parts.put(part);
}
List<KObject> listRes = new ArrayList<KObject>();
for(int i=0;i<parts.length();i++) {
JSONObject item = parts.getJSONObject(i);
item.put("_type", CommonConstants.REM_PART_RELATION_ENTITTY);
item.put("remindId", remindId);
item.put("id", UUID.randomUUID());
String partType = item.getString(RemPartRelationConstants.PARTICIPATE_TYPE);
if(ParterType.PERSON.getPartnerType().equals(partType)){
//参与者id是员工的id
String staffPartId = item.getString(RemPartRelationConstants.PARTICIPATE_ID);
//根据员工的参与者id获得userId
KObject staffKObject = staffService.getById(UUID.fromString(staffPartId));
KObject userKObject = staffKObject.get(Staff.USER);
String userId = userKObject.getString("id");
item.put(RemPartRelationConstants.PARTICIPATE_ID, userId);
}
KObject entity =(KObject) JSONObjectUtils.toObject(item.toString());
listRes.add(entity);
entity.validate();
}
remindService.add(kobject, listRes);
} }
private WarnSettingDao getWarnSettingDao() { private IWarningSettingService getWarningSettingService() {
return Amino.getApplicationMetadataContext().getBean(WarnSettingDao.class); return Amino.getApplicationMetadataContext().getBean(IWarningSettingService.class);
} }
private RemindService getRemindService() { private RemindService getRemindService() {
return Amino.getApplicationMetadataContext().getBean(RemindService.class); return Amino.getApplicationMetadataContext().getBean(RemindService.class);
} }
private StaffService getStaffService() {
return Amino.getApplicationMetadataContext().getBean(StaffService.class);
}
} }
package com.xyst.dinas.biz.warn;
import java.util.Date;
import java.util.UUID;
/**
* 预警执行记录
*
* @author Jackpot
* @date 2021年4月2日
*/
public class WarnExeRecord {
private UUID id;
private Long version;
private Date stratTime;
private Date endTime;
private Date recentlyTime;
private UUID warnSettingId;
private String warnState;
private UUID billId;
private String target;
private String max;
private String min;
private String message;
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public Date getRecentlyTime() {
return recentlyTime;
}
public void setRecentlyTime(Date recentlyTime) {
this.recentlyTime = recentlyTime;
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public Date getStratTime() {
return stratTime;
}
public void setStratTime(Date stratTime) {
this.stratTime = stratTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public UUID getWarnSettingId() {
return warnSettingId;
}
public void setWarnSettingId(UUID warnSettingId) {
this.warnSettingId = warnSettingId;
}
public String getWarnState() {
return warnState;
}
public void setWarnState(String warnState) {
this.warnState = warnState;
}
public UUID getBillId() {
return billId;
}
public void setBillId(UUID billId) {
this.billId = billId;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getMax() {
return max;
}
public void setMax(String max) {
this.max = max;
}
public String getMin() {
return min;
}
public void setMin(String min) {
this.min = min;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
...@@ -40,5 +40,8 @@ public interface WarnSetting { ...@@ -40,5 +40,8 @@ public interface WarnSetting {
/** 人员*/ /** 人员*/
String[] getPersonnel(); String[] getPersonnel();
/** 备注*/
String getMemo();
} }
...@@ -2,9 +2,11 @@ package com.xyst.dinas.biz.warn; ...@@ -2,9 +2,11 @@ package com.xyst.dinas.biz.warn;
public class WarnSettingConstant { public class WarnSettingConstant {
/** 实体名:合同信息表 */ /** 实体名:预警设置 */
public static final String ENTITY = "com.xyst.dinas.biz.datamodel.WarnSetting"; public static final String ENTITY_WARNSETTING = "com.xyst.dinas.biz.datamodel.WarnSetting";
/** 实体名:预警执行记录 */
public static final String ENTITY_WARNINGEXE = "com.xyst.dinas.biz.datamodel.WarningExe";
/** 项目 */ /** 项目 */
public static final String PROJECT = "project"; public static final String PROJECT = "project";
......
...@@ -12,9 +12,20 @@ public class WarnSettingEntity implements WarnSetting{ ...@@ -12,9 +12,20 @@ public class WarnSettingEntity implements WarnSetting{
private String max; private String max;
private String min; private String min;
private String[] personnel; private String[] personnel;
private String memo;
private boolean isOpen; private boolean isOpen;
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public UUID getSettingId() { public UUID getSettingId() {
return settingId; return settingId;
} }
......
...@@ -13,24 +13,10 @@ public class WarnTest { ...@@ -13,24 +13,10 @@ public class WarnTest {
int count = 10000;//青砂余量 int count = 10000;//青砂余量
ContractBusinessWarn contractBusinessWarn = new ContractBusinessWarn(billType, billId,target); // BaseBusinessWarn contractBusinessWarn = new BaseBusinessWarn(billType, billId,target);
DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count); // DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count);
contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate); // contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate);
contractBusinessWarn.warn(); // contractBusinessWarn.warn();
} }
/**
* 合同预警
*
* @author Jackpot
* @date 2021年3月26日
*/
public class ContractBusinessWarn extends BaseBusinessWarn{
public ContractBusinessWarn(String billType, UUID billId,String target) {
super(billType, billId,target);
}
}
} }
package com.xyst.dinas.biz.warn; package com.xyst.dinas.biz.warn.dao;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations; import org.springframework.orm.hibernate5.HibernateOperations;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.jiuqi.np.util.DateUtil; import com.xyst.dinas.biz.warn.WarnExeRecord;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
@Repository @Repository
public class WarnSettingDao { public class WarnSettingDao {
@Autowired @Autowired
private HibernateOperations template; private HibernateOperations template;
public UUID create(KObject kObject) {
return (UUID) template.save(kObject.getType().getName(), kObject);
}
public void update(KObject kobject) { public void update(KObject kobject) {
template.update(kobject.getType().getName(), kobject); template.update(kobject.getType().getName(), kobject);
} }
public KObject load(UUID id) { public KObject queryWarnSettingById(UUID id) {
return (KObject) template.get(WarnSettingConstant.ENTITY, id); return (KObject) template.get(WarnSettingConstant.ENTITY_WARNSETTING, id);
} }
public UUID create(KObject kObject) { public KObject queryWarningExeById(UUID id) {
return (UUID) template.save(kObject.getType().getName(), kObject); return (KObject) template.get(WarnSettingConstant.ENTITY_WARNINGEXE, id);
} }
/**
* 通过合同编号查找合同
* @param contractCode
* @return
*/
public List<KObject> queryContractByCode(String contractCode) {
return (List<KObject>)template.execute((session)->{
Query<KObject> query = session.createQuery("from " + WarnSettingConstant.ENTITY + " where billType =:billType", KObject.class);
query.setParameter("contractCode", contractCode);
return query.getResultList();
});
}
private String QUERY_HQL = "from " + WarnSettingConstant.ENTITY + " where billType =:billType";
public WarnSetting getWarnSetting(String billType, UUID billId, String target) { public WarnSetting getWarnSetting(String billType, UUID billId, String target) {
return String QUERY_HQL = "from " + WarnSettingConstant.ENTITY_WARNSETTING + " where billType =:billType";
template.execute(session -> {
return template.execute(session -> {
StringBuilder hql = new StringBuilder(QUERY_HQL); StringBuilder hql = new StringBuilder(QUERY_HQL);
if(billId!=null) hql.append(" and billId =:billId"); if(billId!=null) hql.append(" and billId =:billId");
...@@ -73,6 +64,7 @@ public class WarnSettingDao { ...@@ -73,6 +64,7 @@ public class WarnSettingDao {
String min = singleResult.getString("min"); String min = singleResult.getString("min");
String personnel = singleResult.getString("personnel"); String personnel = singleResult.getString("personnel");
boolean isOpen = singleResult.getBoolean("isOpen"); boolean isOpen = singleResult.getBoolean("isOpen");
String memo = singleResult.getString("memo");
WarnSettingEntity warnSettingEntity = new WarnSettingEntity(); WarnSettingEntity warnSettingEntity = new WarnSettingEntity();
warnSettingEntity.setBillType(billType); warnSettingEntity.setBillType(billType);
...@@ -82,33 +74,58 @@ public class WarnSettingDao { ...@@ -82,33 +74,58 @@ public class WarnSettingDao {
warnSettingEntity.setMin(min); warnSettingEntity.setMin(min);
warnSettingEntity.setMax(max); warnSettingEntity.setMax(max);
warnSettingEntity.setOpen(isOpen); warnSettingEntity.setOpen(isOpen);
warnSettingEntity.setMemo(memo);
// List<String> personnel String[] personnelArray= personnel!=null && !personnel.isEmpty()?personnel.split(","):null;
String[] person = personnel.split(","); warnSettingEntity.setPersonnel(personnelArray);
warnSettingEntity.setPersonnel(person);
return warnSettingEntity; return warnSettingEntity;
}); });
} }
public List<KObject> getProjectListByPurSand(UUID purchaseSandId,UUID projectType,String projectName) {
public WarnExeRecord queryWarnExeRecord(UUID warnSettingId) {
String QUERY_HQL = "from " + WarnSettingConstant.ENTITY_WARNINGEXE + " where endTime is null and warnSetting.id =:warnSettingId";
return template.execute(session -> { return template.execute(session -> {
StringBuilder hql = new StringBuilder(QUERY_HQL); Query<KObject> query = session.createQuery(QUERY_HQL, KObject.class);//KObject
if(projectType!=null) hql.append(" and project.projectType.id =:projectType"); query.setParameter("warnSettingId", warnSettingId);
if(projectName!=null) hql.append(" and project.projectName like :projectName"); List<KObject> resultList = query.getResultList();
if (resultList.isEmpty()) {
return null;
}
KObject singleResult = query.getSingleResult();
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);//KObject Date stratTime = singleResult.getDate("stratTime");
query.setParameter("purchaseSandUnit", purchaseSandId); Date endTime = singleResult.getDate("endTime");
query.setParameter("contractState", "");//只查询执行中状态的合同 Date recentlyTime = singleResult.getDate("recentlyTime");
if(projectType!=null) query.setParameter("projectType", projectType); String max = singleResult.getString("max");
if(projectName!=null) query.setParameter("projectName", "%"+projectName+"%"); String min = singleResult.getString("min");
List<KObject> list = query.list(); String message = singleResult.getString("message");
return list; String target = singleResult.getString("target");
UUID billId = singleResult.getUuid("billId");
UUID id = singleResult.getUuid("id");
Long version = singleResult.getLong("version");
WarnExeRecord warnExeRecord = new WarnExeRecord();
warnExeRecord.setStratTime(stratTime);
warnExeRecord.setEndTime(endTime);
warnExeRecord.setRecentlyTime(recentlyTime);
warnExeRecord.setWarnSettingId(warnSettingId);
warnExeRecord.setMax(max);
warnExeRecord.setMin(min);
warnExeRecord.setMessage(message);
warnExeRecord.setTarget(target);
warnExeRecord.setBillId(billId);
warnExeRecord.setWarnState("warnState");
warnExeRecord.setId(id);
warnExeRecord.setVersion(version);
return warnExeRecord;
}); });
} }
} }
package com.xyst.dinas.biz.warn.service;
import java.util.List;
import java.util.UUID;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import com.xyst.dinas.biz.warn.WarnExeRecord;
import com.xyst.dinas.biz.warn.WarnSetting;
public interface IWarningSettingService {
/**
* 新增预警设置
* @param warnSetting
* @return
*/
public UUID insertWarnSetting(WarnSetting warnSetting) ;
WarnSetting getWarnSetting(@NonNull String billType, @Nullable UUID billId, @Nullable String target);
public UUID insertWarnExe(WarnExeRecord warnExeRecord);
public void updateWarnExe(WarnExeRecord warnExeRecord);
/**
* 查询未结束的预警执行记录
* @param warnSettingId
* @return
*/
WarnExeRecord queryWarnExeRecord(UUID warnSettingId);
/**
* 查询一条预警设置的所有预警执行记录
* @param warnSettingId
* @return
*/
List<WarnExeRecord> queryWarnExeRecords(UUID warnSettingId);
}
package com.xyst.dinas.biz.warn.service;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.xyst.dinas.biz.warn.WarnExeRecord;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.dao.WarnSettingDao;
@Transactional
public class WarningSettingServiceImpl implements IWarningSettingService{
@Autowired
private WarnSettingDao warnSettingDao;
/**
* 新增预警设置
*/
public UUID insertWarnSetting(WarnSetting warnSetting) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNSETTING, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnSetting);
KObject object = JSONObjectUtils.toObject(json, type);
return warnSettingDao.create(object);
}
/**
* 新增预警执行记录
* @param warnExeRecord
* @return
*/
public UUID insertWarnExe(WarnExeRecord warnExeRecord) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnExeRecord);
KObject object = JSONObjectUtils.toObject(json, type);
return warnSettingDao.create(object);
}
@Override
public WarnSetting getWarnSetting(String billType, UUID billId, String target) {
return warnSettingDao.getWarnSetting(billType, billId, target);
}
@Override
public WarnExeRecord queryWarnExeRecord(UUID warnSettingId) {
return warnSettingDao.queryWarnExeRecord(warnSettingId);
}
@Override
public List<WarnExeRecord> queryWarnExeRecords(UUID warnSettingId) {
return null;
}
@Override
public void updateWarnExe(WarnExeRecord warnExeRecord) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnExeRecord);
KObject object = JSONObjectUtils.toObject(json, type);
warnSettingDao.update(object);
}
}
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='personnel' columnName='personnel' title='人员' type='string' default='' precision='' isArray='false'> <attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='personnel' columnName='personnel' title='人员' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='1000'></annotation> <annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='1000'></annotation>
</attribute> </attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='memo' columnName='memo' title='备注' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='1000'></annotation>
</attribute>
<hibernate>/xyst.dinas.biz/src/main/resources/config/WarnSetting.hbm.xml</hibernate> <hibernate>/xyst.dinas.biz/src/main/resources/config/WarnSetting.hbm.xml</hibernate>
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='endTime' columnName='end_time' title='预警结束时间' type='datetime' default='' precision='' isArray='false'> <attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='endTime' columnName='end_time' title='预警结束时间' type='datetime' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='undefined'></annotation> <annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='undefined'></annotation>
</attribute> </attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='recentlyTime' columnName='recently_time' title='最近预警时间' type='datetime' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='undefined'></annotation>
</attribute>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='warnSetting' columnName='warn_setting_id' title='预警设置' type='com.xyst.dinas.biz.datamodel.WarnSetting' default='' precision='' isArray='false'> <attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='warnSetting' columnName='warn_setting_id' title='预警设置' type='com.xyst.dinas.biz.datamodel.WarnSetting' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation> <annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation> <annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>3f3be07f-0141-41e5-88b5-f5de7da5fc0e</id> <id>b6504505-63b0-43bf-bfc7-39e163c48236</id>
<name>com.xyst.dinas.biz.bill.Organization$sequence</name> <name>com.xyst.dinas.biz.bill.Organization$sequence</name>
<title>组织机构$sequence</title> <title>组织机构$sequence</title>
<description>组织机构</description> <description>组织机构</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>2a6f9eae-b476-40f7-a790-3b14011af7d6</id> <id>6d2da1fe-a214-4a86-9687-d704f73ab436</id>
<name>com.xyst.dinas.biz.bill.Organization$serial</name> <name>com.xyst.dinas.biz.bill.Organization$serial</name>
<title>组织机构$serial</title> <title>组织机构$serial</title>
<description>组织机构</description> <description>组织机构</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>011ee4f0-16a6-43f7-86de-e6b2f290a1aa</id> <id>a0223fad-af26-4d66-a617-596590057a97</id>
<name>com.xyst.dinas.biz.bill.Organization</name> <name>com.xyst.dinas.biz.bill.Organization</name>
<title>组织机构</title> <title>组织机构</title>
<description>组织机构</description> <description>组织机构</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>e29ab6c9-17ff-499a-8a90-c37e329775ca</id> <id>1b890f66-2ba9-4f3c-8280-13b925a98295</id>
<name>com.xyst.dinas.biz.bill.Position$sequence</name> <name>com.xyst.dinas.biz.bill.Position$sequence</name>
<title>岗位$sequence</title> <title>岗位$sequence</title>
<description>岗位</description> <description>岗位</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>0a48f787-2529-4591-8b8f-c935d27c5af4</id> <id>a2a79dc3-349e-42de-b2e2-c1499d998ce9</id>
<name>com.xyst.dinas.biz.bill.Position$serial</name> <name>com.xyst.dinas.biz.bill.Position$serial</name>
<title>岗位$serial</title> <title>岗位$serial</title>
<description>岗位</description> <description>岗位</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>53d1941c-afc6-4a2d-8ee8-51f1a4ad425e</id> <id>5e5a8858-0b5d-46be-9f40-7055eda3963b</id>
<name>com.xyst.dinas.biz.bill.Position</name> <name>com.xyst.dinas.biz.bill.Position</name>
<title>岗位</title> <title>岗位</title>
<description>岗位</description> <description>岗位</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>719e0971-0cae-4490-9f2a-c7696d20c414</id> <id>4f0581c6-e8ec-49e2-8ff6-5e0d2733831f</id>
<name>com.xyst.dinas.biz.bill.ShipInfo$sequence</name> <name>com.xyst.dinas.biz.bill.ShipInfo$sequence</name>
<title>船舶备案$sequence</title> <title>船舶备案$sequence</title>
<description>船舶备案</description> <description>船舶备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>33693a0f-c58c-46f0-8b5e-db2adae2ee2b</id> <id>3c9cb123-f6ed-4912-bc51-81fb04287954</id>
<name>com.xyst.dinas.biz.bill.ShipInfo$serial</name> <name>com.xyst.dinas.biz.bill.ShipInfo$serial</name>
<title>船舶备案$serial</title> <title>船舶备案$serial</title>
<description>船舶备案</description> <description>船舶备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>1f1bd289-14eb-4efb-a61f-e23506505c90</id> <id>77b6abb6-a300-4628-a1db-2cbda1ac09e2</id>
<name>com.xyst.dinas.biz.bill.ShipInfo</name> <name>com.xyst.dinas.biz.bill.ShipInfo</name>
<title>船舶备案</title> <title>船舶备案</title>
<description>船舶备案</description> <description>船舶备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>1dc11db8-112a-403b-a658-0f8df141e721</id> <id>5e9e0a6d-d45a-463a-8056-dd16ab133d45</id>
<name>com.xyst.dinas.biz.bill.Station$sequence</name> <name>com.xyst.dinas.biz.bill.Station$sequence</name>
<title>场站$sequence</title> <title>场站$sequence</title>
<description>场站</description> <description>场站</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>464778a2-0db8-4580-8f93-94ddf76d6c95</id> <id>9f69f089-510d-4dc3-a1df-c7fdab4afae7</id>
<name>com.xyst.dinas.biz.bill.Station$serial</name> <name>com.xyst.dinas.biz.bill.Station$serial</name>
<title>场站$serial</title> <title>场站$serial</title>
<description>场站</description> <description>场站</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>9dc7caf4-54bf-4d1a-84cb-fef1b5e46f43</id> <id>280523dd-ab45-4e62-a025-bc64964e6c98</id>
<name>com.xyst.dinas.biz.bill.Station</name> <name>com.xyst.dinas.biz.bill.Station</name>
<title>场站</title> <title>场站</title>
<description>场站</description> <description>场站</description>
......
...@@ -104,6 +104,20 @@ ...@@ -104,6 +104,20 @@
<m:description></m:description> <m:description></m:description>
<m:default></m:default> <m:default></m:default>
</m:attribute> </m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>1000</m:value>
</m:annotation>
</m:annotations>
<m:id>cbb5b983-299b-4259-97d9-6470651bb18b</m:id>
<m:name>memo</m:name>
<m:title>备注</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes> </m:attributes>
</m:class> </m:class>
</content> </content>
......
...@@ -37,6 +37,15 @@ ...@@ -37,6 +37,15 @@
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations/> <m:annotations/>
<m:id>cbb5b983-299b-4259-97d9-6470651bb18b</m:id>
<m:name>recentlyTime</m:name>
<m:title>最近预警时间</m:title>
<m:type>datetime</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id> <m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>warnSetting</m:name> <m:name>warnSetting</m:name>
<m:title>预警设置</m:title> <m:title>预警设置</m:title>
......
...@@ -65,6 +65,9 @@ ...@@ -65,6 +65,9 @@
<property name="personnel" type="nstring" not-null="false"> <property name="personnel" type="nstring" not-null="false">
<column name="personnel" length="1000"></column> <column name="personnel" length="1000"></column>
</property> </property>
<property name="memo" type="nstring" not-null="false">
<column name="memo" length="1000"></column>
</property>
</class> </class>
......
...@@ -19,6 +19,9 @@ ...@@ -19,6 +19,9 @@
<property name="endTime" type="timestamp" not-null="false"> <property name="endTime" type="timestamp" not-null="false">
<column name="end_time" length="10"></column> <column name="end_time" length="10"></column>
</property> </property>
<property name="recentlyTime" type="timestamp" not-null="false">
<column name="recently_time" length="10"></column>
</property>
<many-to-one name="warnSetting" entity-name="com.xyst.dinas.biz.datamodel.WarnSetting" fetch="select"> <many-to-one name="warnSetting" entity-name="com.xyst.dinas.biz.datamodel.WarnSetting" fetch="select">
<column name="warn_setting_id" not-null="false"/> <column name="warn_setting_id" not-null="false"/>
</many-to-one> </many-to-one>
......
...@@ -13,8 +13,11 @@ import com.beecode.inz.workflow.config.TriggerCondition; ...@@ -13,8 +13,11 @@ import com.beecode.inz.workflow.config.TriggerCondition;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao; import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.internal.service.ContractServiceImpl; import com.xyst.dinas.contract.internal.service.ContractServiceImpl;
import com.xyst.dinas.contract.internal.service.ContractWarnServiceImpl;
import com.xyst.dinas.contract.listener.ContractProcessEventListener;
import com.xyst.dinas.contract.query.processor.PerformWarningProcessor; import com.xyst.dinas.contract.query.processor.PerformWarningProcessor;
import com.xyst.dinas.contract.service.ContractService; import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.contract.service.ContractWarnService;
import com.xyst.dinas.contract.web.ContractController; import com.xyst.dinas.contract.web.ContractController;
/** /**
* 开启自动配置,无需手动注册Bean * 开启自动配置,无需手动注册Bean
...@@ -38,6 +41,11 @@ public class ContractConfiguration { ...@@ -38,6 +41,11 @@ public class ContractConfiguration {
return new ContractInfoDao(); return new ContractInfoDao();
} }
@Bean
public ContractWarnService ContractWarnService() {
return new ContractWarnServiceImpl();
}
...@@ -64,4 +72,10 @@ public class ContractConfiguration { ...@@ -64,4 +72,10 @@ public class ContractConfiguration {
public PerformWarningProcessor performWarningProcessor() { public PerformWarningProcessor performWarningProcessor() {
return new PerformWarningProcessor(); return new PerformWarningProcessor();
} }
@Bean
public ContractProcessEventListener createContractProcessEventListener() {
return new ContractProcessEventListener();
}
} }
package com.xyst.dinas.contract.internal.service;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.service.ContractWarnService;
public class ContractWarnServiceImpl implements ContractWarnService{
@Autowired
private IWarningSettingService warningSettingService;
@Override
public void afterApproved(KObject contract) {
//合同审批通过后,自动新增砂石余量预警设置
UUID contractId = contract.getUuid("id");
List<KObject> detials = contract.get("contractDetail").toList();
//
for (KObject detail : detials) {
String dinasTypeName = detail.get("dinasType").getString("dinasTypeName");
String billType = "合同";
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType(billType);
warnSetting.setBillId(contractId);
warnSetting.setTarget(dinasTypeName);
warnSetting.setOpen(true);
warningSettingService.insertWarnSetting(warnSetting);
}
}
}
package com.xyst.dinas.contract.listener; package com.xyst.dinas.contract.listener;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.inz.workflow.listener.InzBizProcessEvent; import com.beecode.inz.workflow.listener.InzBizProcessEvent;
import com.beecode.inz.workflow.listener.InzBizProcessEventListener; import com.beecode.inz.workflow.listener.InzBizProcessEventListener;
import com.xyst.dinas.contract.service.ContractWarnService;
public class ContractProcessEventListener implements InzBizProcessEventListener { public class ContractProcessEventListener implements InzBizProcessEventListener {
@Autowired
private ContractWarnService contractWarnService;
@Override @Override
public void beforeProcessStarted(InzBizProcessEvent event) { public void beforeProcessStarted(InzBizProcessEvent event) {
...@@ -15,7 +21,6 @@ public class ContractProcessEventListener implements InzBizProcessEventListener ...@@ -15,7 +21,6 @@ public class ContractProcessEventListener implements InzBizProcessEventListener
@Override @Override
public void afterProcessStarted(InzBizProcessEvent event) { public void afterProcessStarted(InzBizProcessEvent event) {
//do nothing //do nothing
System.out.println("afterProcessStarted..");
} }
@Override @Override
...@@ -26,7 +31,9 @@ public class ContractProcessEventListener implements InzBizProcessEventListener ...@@ -26,7 +31,9 @@ public class ContractProcessEventListener implements InzBizProcessEventListener
@Override @Override
public void afterProcessCompleted(InzBizProcessEvent event) { public void afterProcessCompleted(InzBizProcessEvent event) {
//自动新增合同预警条目 //自动新增合同预警条目
System.out.println("自动新增合同预警条目.."); if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
contractWarnService.afterApproved(event.getInzBizProcess().getBizDataObject());
}
} }
} }
package com.xyst.dinas.contract.service;
import com.beecode.bcp.type.KObject;
/**
* 合同预警服务
*
* @author Jackpot
* @date 2021年4月1日
*/
public interface ContractWarnService {
/**
* 审批通过后的回调
* @param object
*/
void afterApproved(KObject object);
}
package com.xyst.dinas.biz.warn; package com.xyst.dinas.contract.warn;
import com.xyst.dinas.biz.warn.IWarningCalculate;
import com.xyst.dinas.biz.warn.WarnSetting;
/** /**
* 砂石余量预警计算器 * 砂石余量预警计算器
* *
...@@ -11,7 +15,7 @@ public class DinasCountWarningCalculate implements IWarningCalculate{ ...@@ -11,7 +15,7 @@ public class DinasCountWarningCalculate implements IWarningCalculate{
private int dinsaCount; private int dinsaCount;
/** /**
* * 砂石余量预警计算器
* @param dinsaCount 砂石余量 * @param dinsaCount 砂石余量
*/ */
public DinasCountWarningCalculate(int dinsaCount) { public DinasCountWarningCalculate(int dinsaCount) {
......
...@@ -17,6 +17,10 @@ import com.beecode.amino.core.Amino; ...@@ -17,6 +17,10 @@ import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass; import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils; import com.beecode.bcp.type.json.JSONObjectUtils;
import com.xyst.dinas.biz.warn.BaseBusinessWarn;
import com.xyst.dinas.contract.warn.DinasCountWarningCalculate;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.entity.BaseEntity; import com.xyst.dinas.contract.entity.BaseEntity;
import com.xyst.dinas.contract.entity.CommonResult; import com.xyst.dinas.contract.entity.CommonResult;
...@@ -91,4 +95,31 @@ public class ContractController { ...@@ -91,4 +95,31 @@ public class ContractController {
} }
@Autowired
private IWarningSettingService warningSettingService;
@PostMapping("/contract/test")
public void afterApproved() {
//合同审批通过后,自动新增砂石余量预警设置
String billType = "合同";
UUID contractId = UUID.fromString("598A9B1B-34C7-4BFB-A846-40EDEF357752");
String target = "清砂";
int count = 100;//青砂余量
BaseBusinessWarn contractBusinessWarn = new BaseBusinessWarn(billType, contractId,target);
DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count);
contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate);
contractBusinessWarn.warn();
// WarnSettingEntity warnSetting = new WarnSettingEntity();
// warnSetting.setBillType(billType);
// warnSetting.setBillId(contractId);
// warnSetting.setTarget(dinasTypeName);
// warnSetting.setOpen(true);
// warningSettingService.insertWarnSetting(warnSetting);
}
} }
\ No newline at end of file
...@@ -43,9 +43,6 @@ ...@@ -43,9 +43,6 @@
<attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='contractCode' columnName='contract_code' title='合同编号' type='string' default='' precision='' isArray='false'> <attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='contractCode' columnName='contract_code' title='合同编号' type='string' default='' precision='' isArray='false'>
<annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='50'></annotation> <annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='50'></annotation>
</attribute> </attribute>
<attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='currentVersion' columnName='current_version' title='版本号' type='int' default='' precision='' isArray='false'>
<annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='11'></annotation>
</attribute>
<attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='contractState' columnName='contract_state' title='合同状态' type='string' default='' precision='' isArray='false'> <attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='contractState' columnName='contract_state' title='合同状态' type='string' default='' precision='' isArray='false'>
<annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='50'></annotation> <annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='50'></annotation>
</attribute> </attribute>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>c908b1b1-d83c-42a8-b36d-295cc09cf4f4</id> <id>b6aed80e-65b8-4a09-b6fe-80e1d4121f6b</id>
<name>com.xyst.dinas.contract.bill.ContractBill$sequence</name> <name>com.xyst.dinas.contract.bill.ContractBill$sequence</name>
<title>合同单据$sequence</title> <title>合同单据$sequence</title>
<description>合同单据</description> <description>合同单据</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>cf040bd4-83fa-490a-9e46-fd275b53f11d</id> <id>eba21aa3-e272-427b-b63a-05f1ee4e12d1</id>
<name>com.xyst.dinas.contract.bill.ContractBill$serial</name> <name>com.xyst.dinas.contract.bill.ContractBill$serial</name>
<title>合同单据$serial</title> <title>合同单据$serial</title>
<description>合同单据</description> <description>合同单据</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>610e8116-8e01-4c5c-93eb-5c6511e39886</id> <id>63768a7d-4403-4419-8866-1b19a7ba636e</id>
<name>com.xyst.dinas.contract.bill.ContractBill</name> <name>com.xyst.dinas.contract.bill.ContractBill</name>
<title>合同单据</title> <title>合同单据</title>
<description>合同单据</description> <description>合同单据</description>
......
...@@ -122,15 +122,6 @@ ...@@ -122,15 +122,6 @@
<m:default></m:default> <m:default></m:default>
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations/>
<m:id>0933ceb1-f327-4372-a316-cffa1c80991a</m:id>
<m:name>currentVersion</m:name>
<m:title>版本号</m:title>
<m:type>int</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations> <m:annotations>
<m:annotation> <m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type> <m:type>bcp.type.constraint.StringLength</m:type>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>379aa872-c4db-451c-b387-31ddd6492f60</id> <id>da26179f-26dd-4b75-82be-3f0d89c2bbde</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply$sequence</name> <name>com.xyst.dinas.oa.bill.BusinessTripApply$sequence</name>
<title>出差申请$sequence</title> <title>出差申请$sequence</title>
<description>出差申请</description> <description>出差申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>21ff5891-b785-4fd5-8467-33256f7881db</id> <id>1aef3fc7-8d69-4805-921a-014b2b4da479</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply$serial</name> <name>com.xyst.dinas.oa.bill.BusinessTripApply$serial</name>
<title>出差申请$serial</title> <title>出差申请$serial</title>
<description>出差申请</description> <description>出差申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>a5aba365-3fe4-40b7-bf20-99cf3407f840</id> <id>4b897e00-d7f2-45de-900a-13b482a663e8</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply</name> <name>com.xyst.dinas.oa.bill.BusinessTripApply</name>
<title>出差申请</title> <title>出差申请</title>
<description>出差申请</description> <description>出差申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>7e58000c-1110-45cb-8865-42499a608f2e</id> <id>ab399931-41f4-44ef-97b5-549225bbcb6e</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument$sequence</name> <name>com.xyst.dinas.oa.bill.ProtocolDocument$sequence</name>
<title>拟文$sequence</title> <title>拟文$sequence</title>
<description>拟文</description> <description>拟文</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>9a8fd244-d2b2-41c7-8cff-fd419218d5d9</id> <id>b19e13de-1421-40f4-9452-e32c9a17a4ed</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument$serial</name> <name>com.xyst.dinas.oa.bill.ProtocolDocument$serial</name>
<title>拟文$serial</title> <title>拟文$serial</title>
<description>拟文</description> <description>拟文</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>f6467133-57fa-47b5-b4f4-f7d937c4ae92</id> <id>0196dd56-8596-49b3-be39-b829f966d244</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument</name> <name>com.xyst.dinas.oa.bill.ProtocolDocument</name>
<title>拟文</title> <title>拟文</title>
<description>拟文</description> <description>拟文</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>43afecf9-b7a6-4cb0-865d-3486d0b7467e</id> <id>2efcf528-0636-423b-8aaa-5ee582c0ce31</id>
<name>com.xyst.dinas.oa.bill.SealBorrow$sequence</name> <name>com.xyst.dinas.oa.bill.SealBorrow$sequence</name>
<title>证章借出$sequence</title> <title>证章借出$sequence</title>
<description>证章借出</description> <description>证章借出</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>ac0d4796-1c41-4ee8-90cc-7453016ad414</id> <id>ca8e5738-189a-45c7-9ba4-e49ace867002</id>
<name>com.xyst.dinas.oa.bill.SealBorrow$serial</name> <name>com.xyst.dinas.oa.bill.SealBorrow$serial</name>
<title>证章借出$serial</title> <title>证章借出$serial</title>
<description>证章借出</description> <description>证章借出</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>eb09f88a-cb2c-4ac1-8afa-2c6e25db018d</id> <id>ea1f0c09-6c6d-4ca1-999a-03b30bb9430d</id>
<name>com.xyst.dinas.oa.bill.SealBorrow</name> <name>com.xyst.dinas.oa.bill.SealBorrow</name>
<title>证章借出</title> <title>证章借出</title>
<description>证章借出</description> <description>证章借出</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>b6c2431a-713a-464c-8b33-0c4da74c859e</id> <id>3b5333b7-e842-49d1-bcf4-4b9fe79aa5f6</id>
<name>com.xyst.dinas.oa.bill.UseCarApply$sequence</name> <name>com.xyst.dinas.oa.bill.UseCarApply$sequence</name>
<title>用车申请$sequence</title> <title>用车申请$sequence</title>
<description>用车申请</description> <description>用车申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>02689845-286a-417a-809d-fadf87754742</id> <id>075d4d9c-f6fd-41d9-8665-4737c2b939a1</id>
<name>com.xyst.dinas.oa.bill.UseCarApply$serial</name> <name>com.xyst.dinas.oa.bill.UseCarApply$serial</name>
<title>用车申请$serial</title> <title>用车申请$serial</title>
<description>用车申请</description> <description>用车申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>4509cc76-64b5-4516-8d31-6e36f85c0946</id> <id>153f1b2e-a89a-4d73-adc9-aec0643e801b</id>
<name>com.xyst.dinas.oa.bill.UseCarApply</name> <name>com.xyst.dinas.oa.bill.UseCarApply</name>
<title>用车申请</title> <title>用车申请</title>
<description>用车申请</description> <description>用车申请</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>9ad5102b-c2cd-47fd-91a8-88057d555d0f</id> <id>bfd59e56-c83a-427d-ad06-564c51c59466</id>
<name>com.xyst.dinas.project.bill.ProjectFiled$sequence</name> <name>com.xyst.dinas.project.bill.ProjectFiled$sequence</name>
<title>项目备案$sequence</title> <title>项目备案$sequence</title>
<description>项目备案</description> <description>项目备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>ba188aef-0139-4dcc-967b-0ed7ed184573</id> <id>8dfa92f9-c40e-4243-9889-be5cb65dcd97</id>
<name>com.xyst.dinas.project.bill.ProjectFiled$serial</name> <name>com.xyst.dinas.project.bill.ProjectFiled$serial</name>
<title>项目备案$serial</title> <title>项目备案$serial</title>
<description>项目备案</description> <description>项目备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>17ccf318-83df-435a-a3a8-59cf757957f4</id> <id>2f30072c-2a5a-4ef4-b1ff-ccc81106f90c</id>
<name>com.xyst.dinas.project.bill.ProjectFiled</name> <name>com.xyst.dinas.project.bill.ProjectFiled</name>
<title>项目备案</title> <title>项目备案</title>
<description>项目备案</description> <description>项目备案</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification> <specification>1.0</specification>
<id>2497dbae-e18f-45a4-8132-e63670861d12</id> <id>649423ac-67a3-4423-9d50-1ae1aac9bfd6</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany$sequence</name> <name>com.xyst.dinas.project.bill.PurchaseSandCompany$sequence</name>
<title>购砂单位$sequence</title> <title>购砂单位$sequence</title>
<description>购砂单位</description> <description>购砂单位</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification> <specification>1.0</specification>
<id>55689028-2756-4f36-88e0-9f7d6d99292b</id> <id>6232b7c3-582c-4b6c-abfc-cd46cadd57f3</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany$serial</name> <name>com.xyst.dinas.project.bill.PurchaseSandCompany$serial</name>
<title>购砂单位$serial</title> <title>购砂单位$serial</title>
<description>购砂单位</description> <description>购砂单位</description>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype"> <metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification> <specification>1.0</specification>
<id>a01d444c-ea23-4630-a333-823aacc8987a</id> <id>f659a42e-6221-4b11-b327-2dbf1a391263</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany</name> <name>com.xyst.dinas.project.bill.PurchaseSandCompany</name>
<title>购砂单位</title> <title>购砂单位</title>
<description>购砂单位</description> <description>购砂单位</description>
......
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