Commit dddc010c by 焦凯

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

parents d17b387b 6205299f
package com.xyst.dinas.biz.config;
import com.xyst.dinas.biz.warn.WarnSettingDao;
/**
* 预警配置
*
* @author Jackpot
* @date 2021年4月1日
*/
import org.springframework.context.annotation.Bean;
public class WarningConfiguration {
@Bean
public WarnSettingDao warnSettingDao() {
return new WarnSettingDao();
}
}
package com.xyst.dinas.contract.warn;
package com.xyst.dinas.biz.warn;
import java.util.List;
import java.util.UUID;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import com.beecode.amino.core.Amino;
import com.beecode.inz.message.service.RemindService;
/**
* 业务预警基类
*
* @author Jackpot
* @date 2021年3月26日
*/
public abstract class AbstractBusinessWarn {
public class BaseBusinessWarn {
/** 业务类型*/
protected String billType;
/** 业务ID*/
protected UUID billId;
/** 指标*/
protected String target;
private IWarningCalculate warningCalculate;
public AbstractBusinessWarn(String billType, @Nullable UUID billId,String target) {
private WarnSettingDao warnSettingDao;
private RemindService remindService;
public BaseBusinessWarn(@NonNull String billType, @Nullable UUID billId, @Nullable String target) {
Assert.notNull(billType, "The billType must not be null!");
this.billType = billType;
this.billId = billId;
this.target = target;
remindService = getRemindService();
warnSettingDao = getWarnSettingDao();
}
/** 预警设置*/
protected WarnSetting getWarnSetting() {
//通过billType, billId, target 在数据库查询预警设置数据
warnSettingDao.getWarnSetting(billType, billId, target);
WarnSettingEntity warnSettingEntity = new WarnSettingEntity();
warnSettingEntity.setNoticePersons(null);
// warnSettingEntity.setNoticePersons(null);
return warnSettingEntity;
};
......@@ -46,20 +63,29 @@ public abstract class AbstractBusinessWarn {
boolean isWarning = false;
WarnSetting warnSetting = getWarnSetting();
if(warnSetting==null || !warnSetting.isWarning()) return false;
if(warnSetting==null || !warnSetting.isOpen()) return false;
Assert.notNull(warningCalculate, "The warningCalculate must not be null!");
//计算业务实际的值, 与预警设置中的值做比较, 计算是否预警
isWarning = warningCalculate.isWarning(warnSetting);
if(!isWarning) return false;
List<String> noticePerson = warnSetting.getNoticePersons();
for (String person : noticePerson) {
//TODO 通知所有人员
}
String[] noticePerson = warnSetting.getPersonnel();
notice(noticePerson);
//TODO 记录预警日志
return true;
};
public void notice(String[] noticePerson) {
//TODO 通知所有人员
// remindService.
}
private WarnSettingDao getWarnSettingDao() {
return Amino.getApplicationMetadataContext().getBean(WarnSettingDao.class);
}
private RemindService getRemindService() {
return Amino.getApplicationMetadataContext().getBean(RemindService.class);
}
}
package com.xyst.dinas.biz.warn;
/**
* 砂石余量预警计算器
*
* @author Jackpot
* @date 2021年4月1日
*/
public class DinasCountWarningCalculate implements IWarningCalculate{
//砂石余量
private int dinsaCount;
/**
*
* @param dinsaCount 砂石余量
*/
public DinasCountWarningCalculate(int dinsaCount) {
this.dinsaCount = dinsaCount;
}
@Override
public boolean isWarning(WarnSetting warnSetting) {
String min = warnSetting.getMin();
//业务数据与设置的阀值做比较,计算是否预警
if (dinsaCount <= Integer.valueOf(min)) {
return true;
}
return false;
}
public int getDinsaCount() {
return dinsaCount;
}
public void setDinsaCount(int dinsaCount) {
this.dinsaCount = dinsaCount;
}
}
package com.xyst.dinas.contract.warn;
package com.xyst.dinas.biz.warn;
/**
* 计算是否预警接口
* 预警计算接口
*
* @author Jackpot
* @date 2021年3月30日
......
package com.xyst.dinas.contract.warn;
package com.xyst.dinas.biz.warn;
import java.util.List;
import java.util.UUID;
......@@ -16,9 +16,8 @@ public interface WarnSetting {
//触发时机
/** 预警开关:是否预警*/
boolean isWarning();
boolean isOpen();
/** 预警设置ID*/
UUID getSettingId();
......@@ -30,19 +29,16 @@ public interface WarnSetting {
UUID getBillId();
/** 指标名称*/
String getTargetName();
String getTarget();
/** 阀值上限*/
String getCeilingLimit();
String getMax();
/** 阀值下限*/
String getFloorLimit();
String getMin();
/** 人员*/
List<String> getNoticePersons();
String[] getPersonnel();
// /** 通知时间*/
// String getNoticeTime();
}
package com.xyst.dinas.biz.warn;
public class WarnSettingConstant {
/** 实体名:合同信息表 */
public static final String ENTITY = "com.xyst.dinas.biz.datamodel.WarnSetting";
/** 项目 */
public static final String PROJECT = "project";
}
package com.xyst.dinas.biz.warn;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.hibernate.query.Query;
import org.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations;
import org.springframework.stereotype.Repository;
import com.beecode.bcp.type.KObject;
import com.jiuqi.np.util.DateUtil;
@Repository
public class WarnSettingDao {
@Autowired
private HibernateOperations template;
public void update(KObject kobject) {
template.update(kobject.getType().getName(), kobject);
}
public KObject load(UUID id) {
return (KObject) template.get(WarnSettingConstant.ENTITY, id);
}
public UUID create(KObject kObject) {
return (UUID) template.save(kObject.getType().getName(), kObject);
}
/**
* 通过合同编号查找合同
* @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) {
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);//KObject
query.setParameter("billType", billType);
if(billId!=null) query.setParameter("billId", billId);
if(target!=null) query.setParameter("target", target);
KObject singleResult = query.getSingleResult();
UUID settingId = singleResult.getUuid("id");
UUID billId2 = singleResult.getUuid("billId");
String target2 = singleResult.getString("target");
String max = singleResult.getString("max");
String min = singleResult.getString("min");
String personnel = singleResult.getString("personnel");
boolean isOpen = singleResult.getBoolean("isOpen");
WarnSettingEntity warnSettingEntity = new WarnSettingEntity();
warnSettingEntity.setBillType(billType);
warnSettingEntity.setBillId(billId2);
warnSettingEntity.setTarget(target2);
warnSettingEntity.setSettingId(settingId);
warnSettingEntity.setMin(min);
warnSettingEntity.setMax(max);
warnSettingEntity.setOpen(isOpen);
// List<String> personnel
String[] person = personnel.split(",");
warnSettingEntity.setPersonnel(person);
return warnSettingEntity;
});
}
public List<KObject> getProjectListByPurSand(UUID purchaseSandId,UUID projectType,String projectName) {
return template.execute(session -> {
StringBuilder hql = new StringBuilder(QUERY_HQL);
if(projectType!=null) hql.append(" and project.projectType.id =:projectType");
if(projectName!=null) hql.append(" and project.projectName like :projectName");
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);//KObject
query.setParameter("purchaseSandUnit", purchaseSandId);
query.setParameter("contractState", "");//只查询执行中状态的合同
if(projectType!=null) query.setParameter("projectType", projectType);
if(projectName!=null) query.setParameter("projectName", "%"+projectName+"%");
List<KObject> list = query.list();
return list;
});
}
}
package com.xyst.dinas.contract.warn;
package com.xyst.dinas.biz.warn;
import java.util.List;
import java.util.UUID;
public class WarnSettingEntity implements WarnSetting{
private boolean isWarning;
private UUID settingId;
private String billType;
private UUID billId;
private String targetName;
private String target;
String ceilingLimit;
String floorLimit;
List<String> noticePersons;
public boolean isWarning() {
return isWarning;
}
private String max;
private String min;
private String[] personnel;
private boolean isOpen;
public UUID getSettingId() {
return settingId;
}
public void setSettingId(UUID settingId) {
this.settingId = settingId;
}
public String getBillType() {
return billType;
}
public void setBillType(String billType) {
this.billType = billType;
}
public UUID getBillId() {
return billId;
}
public String getTargetName() {
return targetName;
}
public String getCeilingLimit() {
return ceilingLimit;
}
public String getFloorLimit() {
return floorLimit;
public void setBillId(UUID billId) {
this.billId = billId;
}
public List<String> getNoticePersons() {
return noticePersons;
public String getTarget() {
return target;
}
public void setWarning(boolean isWarning) {
this.isWarning = isWarning;
public void setTarget(String target) {
this.target = target;
}
public void setSettingId(UUID settingId) {
this.settingId = settingId;
public String getMax() {
return max;
}
public void setBillType(String billType) {
this.billType = billType;
public void setMax(String max) {
this.max = max;
}
public void setBillId(UUID billId) {
this.billId = billId;
public String getMin() {
return min;
}
public void setTargetName(String targetName) {
this.targetName = targetName;
public void setMin(String min) {
this.min = min;
}
public void setCeilingLimit(String ceilingLimit) {
this.ceilingLimit = ceilingLimit;
public String[] getPersonnel() {
return personnel;
}
public void setFloorLimit(String floorLimit) {
this.floorLimit = floorLimit;
public void setPersonnel(String[] personnel) {
this.personnel = personnel;
}
public void setNoticePersons(List<String> noticePersons) {
this.noticePersons = noticePersons;
public boolean isOpen() {
return isOpen;
}
public void setOpen(boolean isOpen) {
this.isOpen = isOpen;
}
}
package com.xyst.dinas.contract.warn;
package com.xyst.dinas.biz.warn;
import java.util.UUID;
......@@ -14,16 +14,8 @@ public class WarnTest {
int count = 10000;//青砂余量
ContractBusinessWarn contractBusinessWarn = new ContractBusinessWarn(billType, billId,target);
contractBusinessWarn.setWarningCalculate((warnSetting)->{
//拿到预警设置信息
String floorLimit = warnSetting.getFloorLimit();
//业务数据与设置的阀值做比较,计算是否预警
if (count<=Integer.valueOf(floorLimit)) {
return true;
}
return false;
});
DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count);
contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate);
contractBusinessWarn.warn();
}
......@@ -33,7 +25,7 @@ public class WarnTest {
* @author Jackpot
* @date 2021年3月26日
*/
public class ContractBusinessWarn extends AbstractBusinessWarn{
public class ContractBusinessWarn extends BaseBusinessWarn{
public ContractBusinessWarn(String billType, UUID billId,String target) {
super(billType, billId,target);
......
package com.xyst.dinas.biz.warn;
/**
* 预警服务
*
* @author Jackpot
* @date 2021年4月1日
*/
public class WarningService {
}
<model>
<header>
<type>bcp.type.DataModel</type>
<package>com.xyst.dinas.contract.datamodel</package>
<package>com.xyst.dinas.biz.datamodel</package>
<title>预警设置</title>
<name>WarnSetting</name>
<tags></tags>
......@@ -37,7 +37,7 @@
</attribute>
<hibernate>/xyst.dinas.contract/src/main/resources/config/WarnSetting.hbm.xml</hibernate>
<hibernate>/xyst.dinas.biz/src/main/resources/config/WarnSetting.hbm.xml</hibernate>
</dataModel>
</content>
</model>
\ No newline at end of file
<model>
<header>
<type>bcp.type.DataModel</type>
<package>com.xyst.dinas.contract.datamodel</package>
<package>com.xyst.dinas.biz.datamodel</package>
<title>预警执行记录</title>
<name>WarningExe</name>
<tags></tags>
......@@ -20,7 +20,7 @@
<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>
</attribute>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='warnSetting' columnName='warn_setting_id' title='预警设置' type='com.xyst.dinas.contract.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='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
</attribute>
......@@ -44,7 +44,7 @@
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='100'></annotation>
</attribute>
<hibernate>/xyst.dinas.contract/src/main/resources/config/WarningExe.hbm.xml</hibernate>
<hibernate>/xyst.dinas.biz/src/main/resources/config/WarningExe.hbm.xml</hibernate>
</dataModel>
</content>
</model>
\ No newline at end of file
......@@ -6,4 +6,5 @@ com.xyst.dinas.biz.config.ShipConfiguration,\
com.xyst.dinas.biz.config.SceneConfiguration,\
com.xyst.dinas.biz.config.DinasOrganizationConfig,\
com.xyst.dinas.biz.config.BizDataInitializerConfig,\
com.xyst.dinas.biz.config.DinasCommonConfiguration
\ No newline at end of file
com.xyst.dinas.biz.config.DinasCommonConfiguration,\
com.xyst.dinas.biz.config.WarningConfiguration
\ No newline at end of file
<?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">
<specification>1.0</specification>
<id>ac569325-c7e8-486b-8e51-48076332105b</id>
<id>3f3be07f-0141-41e5-88b5-f5de7da5fc0e</id>
<name>com.xyst.dinas.biz.bill.Organization$sequence</name>
<title>组织机构$sequence</title>
<description>组织机构</description>
......
<?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">
<specification>1.0</specification>
<id>ffd811fc-211d-4cb9-a1b6-b6eaa0bf47e2</id>
<id>2a6f9eae-b476-40f7-a790-3b14011af7d6</id>
<name>com.xyst.dinas.biz.bill.Organization$serial</name>
<title>组织机构$serial</title>
<description>组织机构</description>
......
<?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">
<specification>1.0</specification>
<id>ca3deef8-6445-48e3-b658-9a46100c3194</id>
<id>011ee4f0-16a6-43f7-86de-e6b2f290a1aa</id>
<name>com.xyst.dinas.biz.bill.Organization</name>
<title>组织机构</title>
<description>组织机构</description>
......
<?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">
<specification>1.0</specification>
<id>81835d20-27a1-4491-97b3-d1115dd0891c</id>
<id>e29ab6c9-17ff-499a-8a90-c37e329775ca</id>
<name>com.xyst.dinas.biz.bill.Position$sequence</name>
<title>岗位$sequence</title>
<description>岗位</description>
......
<?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">
<specification>1.0</specification>
<id>375bd2ab-87dc-4490-826f-c896b8b53fca</id>
<id>0a48f787-2529-4591-8b8f-c935d27c5af4</id>
<name>com.xyst.dinas.biz.bill.Position$serial</name>
<title>岗位$serial</title>
<description>岗位</description>
......
<?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">
<specification>1.0</specification>
<id>df4466df-e189-4329-89ad-37bf94f04cf3</id>
<id>53d1941c-afc6-4a2d-8ee8-51f1a4ad425e</id>
<name>com.xyst.dinas.biz.bill.Position</name>
<title>岗位</title>
<description>岗位</description>
......
<?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">
<specification>1.0</specification>
<id>87af8186-faee-4d71-b3cb-66e840658bcd</id>
<id>719e0971-0cae-4490-9f2a-c7696d20c414</id>
<name>com.xyst.dinas.biz.bill.ShipInfo$sequence</name>
<title>船舶备案$sequence</title>
<description>船舶备案</description>
......
<?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">
<specification>1.0</specification>
<id>4f87b62f-a731-4989-81c2-b7901076d614</id>
<id>33693a0f-c58c-46f0-8b5e-db2adae2ee2b</id>
<name>com.xyst.dinas.biz.bill.ShipInfo$serial</name>
<title>船舶备案$serial</title>
<description>船舶备案</description>
......
<?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">
<specification>1.0</specification>
<id>eb8c565d-dd92-433c-b5f9-d86221c5bb96</id>
<id>1f1bd289-14eb-4efb-a61f-e23506505c90</id>
<name>com.xyst.dinas.biz.bill.ShipInfo</name>
<title>船舶备案</title>
<description>船舶备案</description>
......
<?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">
<specification>1.0</specification>
<id>0f21e647-97f8-4bcd-9eee-af21f84e0da5</id>
<id>1dc11db8-112a-403b-a658-0f8df141e721</id>
<name>com.xyst.dinas.biz.bill.Station$sequence</name>
<title>场站$sequence</title>
<description>场站</description>
......
<?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">
<specification>1.0</specification>
<id>91db4b70-17e0-444d-8167-70d65a436d43</id>
<id>464778a2-0db8-4580-8f93-94ddf76d6c95</id>
<name>com.xyst.dinas.biz.bill.Station$serial</name>
<title>场站$serial</title>
<description>场站</description>
......
<?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">
<specification>1.0</specification>
<id>0af388fc-eb01-4361-b4b3-b4cd17ef98fe</id>
<id>9dc7caf4-54bf-4d1a-84cb-fef1b5e46f43</id>
<name>com.xyst.dinas.biz.bill.Station</name>
<title>场站</title>
<description>场站</description>
......
......@@ -2,7 +2,7 @@
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>235230b3-1247-46b9-bc48-07e750116722</id>
<name>com.xyst.dinas.contract.datamodel.WarnSetting</name>
<name>com.xyst.dinas.biz.datamodel.WarnSetting</name>
<title>预警设置</title>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
......
......@@ -2,13 +2,13 @@
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>235230b3-1247-46b9-bc48-07e750116720</id>
<name>com.xyst.dinas.contract.datamodel.WarningExe</name>
<name>com.xyst.dinas.biz.datamodel.WarningExe</name>
<title>预警执行记录</title>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>bcp.type.constraint.StringLength</dependency>
<dependency>com.xyst.dinas.biz.datamodel.WarnSetting</dependency>
<dependency>com.beecode.inz.common.datamodel.BaseInfo</dependency>
<dependency>com.xyst.dinas.contract.datamodel.WarnSetting</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<content>
<m:class>
......@@ -40,7 +40,7 @@
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>warnSetting</m:name>
<m:title>预警设置</m:title>
<m:type>com.xyst.dinas.contract.datamodel.WarnSetting</m:type>
<m:type>com.xyst.dinas.biz.datamodel.WarnSetting</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
......
......@@ -4,7 +4,7 @@
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="com.xyst.dinas.contract.datamodel.WarnSetting" table="xyst_dinas_warn_setting" optimistic-lock="version">
<class entity-name="com.xyst.dinas.biz.datamodel.WarnSetting" table="xyst_dinas_warn_setting" optimistic-lock="version">
<tuplizer entity-mode="dynamic-map" class="com.beecode.bcp.store.hibernate.KObjectEntityTuplizer"/>
......
......@@ -4,7 +4,7 @@
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="com.xyst.dinas.contract.datamodel.WarningExe" table="xyst_dinas_warning_exe" optimistic-lock="version">
<class entity-name="com.xyst.dinas.biz.datamodel.WarningExe" table="xyst_dinas_warning_exe" optimistic-lock="version">
<tuplizer entity-mode="dynamic-map" class="com.beecode.bcp.store.hibernate.KObjectEntityTuplizer"/>
......@@ -19,7 +19,7 @@
<property name="endTime" type="timestamp" not-null="false">
<column name="end_time" length="10"></column>
</property>
<many-to-one name="warnSetting" entity-name="com.xyst.dinas.contract.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"/>
</many-to-one>
<property name="warnState" type="nstring" not-null="false">
......@@ -41,7 +41,21 @@
<property name="min" type="nstring" not-null="false">
<column name="min" length="100"></column>
</property>
<property name="discard" type="boolean" not-null="false">
<column name="discard"></column>
</property>
<property name="createTime" type="timestamp" not-null="false">
<column name="create_time"></column>
</property>
<many-to-one name="creator" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="creator_id" not-null="false"/>
</many-to-one>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"></column>
</property>
<many-to-one name="modifier" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="modifier_id" not-null="false"/>
</many-to-one>
</class>
</hibernate-mapping>
\ No newline at end of file
......@@ -19,6 +19,7 @@ dependencies {
compile project(":inz.query")
compile project(":inz.workflow")
compile project(":inz.basis")
compile project(":xyst.dinas.biz")
testCompile lib.amino_boot_web
......
......@@ -13,6 +13,7 @@ import com.beecode.inz.workflow.config.TriggerCondition;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.internal.service.ContractServiceImpl;
import com.xyst.dinas.contract.query.processor.PerformWarningProcessor;
import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.contract.web.ContractController;
/**
......@@ -58,4 +59,9 @@ public class ContractConfiguration {
configuration.setProcessConfiguration(processConfig);
return configuration;
}
@Bean("com.xyst.dinas.contract.query.processor.PerformWarningProcessor")
public PerformWarningProcessor performWarningProcessor() {
return new PerformWarningProcessor();
}
}
package com.xyst.dinas.contract.internal.dao;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.constant.ContractConstant;
public class ContractDao {
@Autowired
private HibernateOperations template;
public KObject load(UUID id) {
return (KObject) template.get(ContractConstant.ENTITY_CONTRACT, id);
}
}
package com.xyst.dinas.contract.internal.dao;
import java.util.HashSet;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;
import java.util.UUID;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
import org.springframework.stereotype.Repository;
import com.beecode.bcp.type.KObject;
import com.jiuqi.np.util.DateUtil;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
@Repository
public class ContractInfoDao {
......@@ -52,23 +56,66 @@ public class ContractInfoDao {
});
}
public Set<String> getProjectListByPurSandId(UUID purchaseSandId) {
private String QUERY_HQL =
"from " + ContractConstant.ENTITY_CONTRACT + " where contractState =:contractState and purchaseSandUnit.id =:purchaseSandUnit ";
public JSONArray getProjectListByPurSandId(UUID purchaseSandId,UUID projectType,String projectName) {
HashSet<String> projectSet = new HashSet<>();
List<KObject> contracts = template.execute(new HibernateCallback<List<KObject>>() {
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + ContractConstant.ENTITY_CONTRACT + " where valid = 1 and purchaseSandUnit.id =:purchaseSandUnit", KObject.class);
query.setParameter("purchaseSandUnit", purchaseSandId);
return query.getResultList();
JSONArray result =
template.execute(session -> {
JSONArray jsonArray = new JSONArray();
StringBuilder hql = new StringBuilder(QUERY_HQL);
if(projectType!=null) hql.append(" and project.projectType.id =:projectType");
if(projectName!=null) hql.append(" and project.projectName like :projectName");
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);//KObject
query.setParameter("purchaseSandUnit", purchaseSandId);
query.setParameter("contractState", ContractStateEnum.EXECUTING.getCode());//只查询执行中状态的合同
if(projectType!=null) query.setParameter("projectType", projectType);
if(projectName!=null) query.setParameter("projectName", "%"+projectName+"%");
List<KObject> list = query.list();
for (int i = 0; i < list.size(); i++) {
KObject contract = list.get(i);
KObject project = contract.get("project");
UUID projectId = project.getUuid("id");
String projectNameWhole = project.getString("projectName");
Date createTime = project.getDate("createTime");
String projectNum = project.getString("projectNum");
String projectTypeName = project.get("projectType").getString("name");
Map<String, Object> map = new HashMap<>();
map.put("projectId", projectId);
map.put("projectNameWhole", projectNameWhole);
map.put("projectTypeName", projectTypeName);
map.put("createTime", DateUtil.dateTime2String(createTime));
map.put("projectNum", projectNum);
jsonArray.put(map);
}
return jsonArray;
});
return result;
}
public List<KObject> getProjectListByPurSand(UUID purchaseSandId,UUID projectType,String projectName) {
return template.execute(session -> {
StringBuilder hql = new StringBuilder(QUERY_HQL);
if(projectType!=null) hql.append(" and project.projectType.id =:projectType");
if(projectName!=null) hql.append(" and project.projectName like :projectName");
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);//KObject
query.setParameter("purchaseSandUnit", purchaseSandId);
query.setParameter("contractState", ContractStateEnum.EXECUTING.getCode());//只查询执行中状态的合同
if(projectType!=null) query.setParameter("projectType", projectType);
if(projectName!=null) query.setParameter("projectName", "%"+projectName+"%");
List<KObject> list = query.list();
return list;
});
if(contracts==null ||contracts.isEmpty()) return projectSet;
for (KObject contract : contracts) {
UUID projectId = contract.getUuid(ContractConstant.PROJECT);
projectSet.add(projectId.toString());
}
return projectSet;
}
......
package com.xyst.dinas.contract.internal.service;
import java.util.Set;
import java.util.UUID;
import org.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.workflow.service.InzWorkflowService;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.entity.ContractInfoEntity;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.service.ContractService;
......@@ -63,9 +61,9 @@ public class ContractServiceImpl implements ContractService{
}
@Override
public Set<String> getProjectListByPurSandId(UUID purchaseSandId) {
public JSONArray getProjectListByPurSandId(UUID purchaseSandId,UUID projectType,String projectName) {
return contractInfoDao.getProjectListByPurSandId(purchaseSandId);
return contractInfoDao.getProjectListByPurSandId(purchaseSandId,projectType,projectName);
}
public void bill() {
......@@ -76,6 +74,12 @@ public class ContractServiceImpl implements ContractService{
// BillData equipmentBillData = equipmentBill.getData();
}
@Override
public KObject queryContractById(UUID id) {
KObject kobject = contractInfoDao.load(id);
return kobject;
}
}
package com.xyst.dinas.contract.query.processor;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
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.contract.service.ContractService;
public class PerformWarningProcessor implements DataProcessor {
@Autowired
private ContractService contractService;
@Override
public void process(DataProcessorContext context) {
List<RowData> rowDatas = context.getRowDatas();
for (RowData row : rowDatas) {
//合同,项目,购砂单位
UUID contractId = UUID.fromString(row.get("id").toString());
KObject contract = contractService.queryContractById(contractId);
row.put("projectName", contract.isNull("project") ? "" : contract.get("project").getString("name"));
row.put("contractName", contract.getString("contractName"));
row.put("purchaseSandUnitName", contract.getString("purchaseSandUnitName"));
}
}
}
package com.xyst.dinas.contract.request;
import java.util.UUID;
public class ProjectListQuery {
private UUID purchaseSandId;
private UUID projectType;
private String projectName;
public UUID getPurchaseSandId() {
return purchaseSandId;
}
public void setPurchaseSandId(UUID purchaseSandId) {
this.purchaseSandId = purchaseSandId;
}
public UUID getProjectType() {
return projectType;
}
public void setProjectType(UUID projectType) {
this.projectType = projectType;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
}
package com.xyst.dinas.contract.service;
public class ContractPerformWarningService {
}
package com.xyst.dinas.contract.service;
import java.util.Set;
import java.util.UUID;
import org.json.JSONArray;
import com.beecode.bcp.type.KObject;
public interface ContractService {
......@@ -17,10 +18,16 @@ public interface ContractService {
void submitFlow(UUID id);
/**
/**
* 根据购砂单位ID 查询所有合同列表里的项目ID列表
*
* @param purchaseSandId 购砂单位ID
* @param projectType 项目类型
* @param projectName 项目名称
* @return
*/
Set<String> getProjectListByPurSandId(UUID purchaseSandId);
JSONArray getProjectListByPurSandId(UUID purchaseSandId,UUID projectType,String projectName);
KObject queryContractById(UUID id);
}
package com.xyst.dinas.contract.web;
import java.util.Set;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import org.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,6 +20,8 @@ import com.beecode.bcp.type.json.JSONObjectUtils;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.entity.BaseEntity;
import com.xyst.dinas.contract.entity.CommonResult;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.request.ProjectListQuery;
import com.xyst.dinas.contract.service.ContractService;
@RestController
......@@ -29,7 +31,9 @@ public class ContractController {
@Autowired
private ContractService contractService;
@Autowired
private ContractInfoDao contractInfoDao;
@PostMapping("/contract/create")
public UUID create(@RequestBody String contractInfo) {
KClass type = Amino.getApplicationMetadataContext().getBean(ContractConstant.ENTITY_CONTRACT_INFO, KClass.class);
......@@ -62,15 +66,29 @@ public class ContractController {
//根据购砂单位ID 查询所有合同列表里的项目ID列表
@GetMapping("/sand/user/projectList/{purchaseSandId}")
public String getProjectListByPurSandId(@PathVariable String purchaseSandId) {
@PostMapping("/sand/user/projectList")
public String getProjectListByPurSandId(@RequestBody ProjectListQuery projectListQuery) {
UUID id = UUID.fromString(purchaseSandId);
Set<String> projectList = contractService.getProjectListByPurSandId(id);
JSONObject jsonObject = new JSONObject(projectList);
return jsonObject.toString();
JSONArray projectList = contractService.getProjectListByPurSandId(projectListQuery.getPurchaseSandId(),
projectListQuery.getProjectType(),projectListQuery.getProjectName());
return projectList.toString();
}
@PostMapping("/sand/user/projectList2")
public List<KObject> getProjectListByPurSand(@RequestBody ProjectListQuery projectListQuery) {
return contractInfoDao.getProjectListByPurSand(projectListQuery.getPurchaseSandId(),
projectListQuery.getProjectType(),projectListQuery.getProjectName());
}
//统计查询
@PostMapping("/contract/statistics")
public Object statisticsQuery(@RequestBody BaseEntity baseEntity) {
//TODO
//合同数量, 未执行,执行中,已完成
return baseEntity;
}
}
\ No newline at end of file
......@@ -107,6 +107,9 @@
<attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='valid' columnName='valid' title='是否生效' type='boolean' default='' precision='' isArray='false'>
<annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='1'></annotation>
</attribute>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='contractId' columnName='contract_id' title='合同表ID' type='uuid' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
</attribute>
<attribute id='f780b924-bf9a-4786-96f1-50e89c26a26c' name='attId' columnName='att_id' title='附件id' type='uuid' default='' precision='' isArray='false'>
<annotation id='8218f944-40c1-468c-85af-530c5188d3ff' attributeId='bfac3d55-b94c-49b9-af31-8a7216f6ceea' name='length' value='undefined'>
</annotation>
......
<model>
<header>
<type>inz.query.Query</type>
<package>com.xyst.dinas.contract.query</package>
<name>ContractWarningExe</name>
<title>执行预警</title>
<tags></tags>
<description></description>
</header>
<content>
<customQuery id='7226bf7b-a061-4554-bef3-c7968b05fdba'>
<kclass>com.xyst.dinas.biz.datamodel.WarningExe</kclass>
<dataProcessor>com.xyst.dinas.contract.query.processor.PerformWarningProcessor</dataProcessor>
<innerScene title='全部'>
<id>fa6d9e0d-a774-4f90-b20a-b4b3d5b468a6</id>
<javaImplement>com.beecode.inz.common.scene.CommonAllScene</javaImplement>
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='已废弃'>
<id>12cb7e87-edde-4447-ac5f-53fcd2bdc163</id>
<javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</javaImplement>
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='开始时间'>
<name>startTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='结束时间'>
<name>endTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='购砂单位'>
<name>purchaseSandUnitName</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='项目名称'>
<name>projectName</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='合同名称'>
<name>contractName</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='预警指标'>
<name>target</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='实际值'>
<name>min</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='创建时间'>
<name>createTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='创建人'>
<name>creator.name</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='修改时间'>
<name>modifyTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='修改人'>
<name>modifier.name</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
</customQuery>
</content>
</model>
\ No newline at end of file
<?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">
<specification>1.0</specification>
<id>017ee2aa-95b0-40ef-a7a3-73ab1e88cc8a</id>
<id>c908b1b1-d83c-42a8-b36d-295cc09cf4f4</id>
<name>com.xyst.dinas.contract.bill.ContractBill$sequence</name>
<title>合同单据$sequence</title>
<description>合同单据</description>
......
<?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">
<specification>1.0</specification>
<id>9ca34019-5db1-4ea3-bf06-4cd9dd1967c7</id>
<id>cf040bd4-83fa-490a-9e46-fd275b53f11d</id>
<name>com.xyst.dinas.contract.bill.ContractBill$serial</name>
<title>合同单据$serial</title>
<description>合同单据</description>
......
<?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">
<specification>1.0</specification>
<id>2b049643-1cd9-49e7-bf36-4d56a351738a</id>
<id>610e8116-8e01-4c5c-93eb-5c6511e39886</id>
<name>com.xyst.dinas.contract.bill.ContractBill</name>
<title>合同单据</title>
<description>合同单据</description>
......
......@@ -376,6 +376,15 @@
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>contractId</m:name>
<m:title>合同表ID</m:title>
<m:type>uuid</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>f780b924-bf9a-4786-96f1-50e89c26a26c</m:id>
<m:name>attId</m:name>
<m:title>附件id</m:title>
......
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/inz-query">
<specification>1.0</specification>
<id>7226bf7b-a061-4554-bef3-c7968b05fdba</id>
<name>com.xyst.dinas.contract.query.ContractWarningExe</name>
<title>执行预警</title>
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.WarningExe</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.biz.datamodel.WarningExe</m:type>
<m:dataProcessor>com.xyst.dinas.contract.query.processor.PerformWarningProcessor</m:dataProcessor>
<m:authorityItem></m:authorityItem>
<m:innerScenes>
<m:innerScene>
<m:id>fa6d9e0d-a774-4f90-b20a-b4b3d5b468a6</m:id>
<m:title>全部</m:title>
<m:javaImplement>com.beecode.inz.common.scene.CommonAllScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>12cb7e87-edde-4447-ac5f-53fcd2bdc163</m:id>
<m:title>已废弃</m:title>
<m:javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
<m:name>id</m:name>
<m:title>id</m:title>
<m:type>uuid</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:title>开始时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>endTime</m:name>
<m:title>结束时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>purchaseSandUnitName</m:name>
<m:title>购砂单位</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>projectName</m:name>
<m:title>项目名称</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>contractName</m:name>
<m:title>合同名称</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>target</m:name>
<m:title>预警指标</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>min</m:name>
<m:title>实际值</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>createTime</m:name>
<m:title>创建时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>creator.name</m:name>
<m:title>创建人</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>modifyTime</m:name>
<m:title>修改时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>modifier.name</m:name>
<m:title>修改人</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
</m:fields>
</m:query>
</content>
</metadata>
<?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">
<specification>1.0</specification>
<id>e9c775fb-370b-4a21-9875-043909487b3f</id>
<id>379aa872-c4db-451c-b387-31ddd6492f60</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply$sequence</name>
<title>出差申请$sequence</title>
<description>出差申请</description>
......
<?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">
<specification>1.0</specification>
<id>7af59fc7-89f3-4c7c-923f-c7ed696c4d5a</id>
<id>21ff5891-b785-4fd5-8467-33256f7881db</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply$serial</name>
<title>出差申请$serial</title>
<description>出差申请</description>
......
<?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">
<specification>1.0</specification>
<id>65851922-c35b-4e1e-9e4d-cb296c426d24</id>
<id>a5aba365-3fe4-40b7-bf20-99cf3407f840</id>
<name>com.xyst.dinas.oa.bill.BusinessTripApply</name>
<title>出差申请</title>
<description>出差申请</description>
......
<?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">
<specification>1.0</specification>
<id>1f1c7ce5-552c-45e9-9abd-853950a0c79a</id>
<id>7e58000c-1110-45cb-8865-42499a608f2e</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument$sequence</name>
<title>拟文$sequence</title>
<description>拟文</description>
......
<?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">
<specification>1.0</specification>
<id>fbf57700-a4b5-4e2e-9685-a057ab91a6ff</id>
<id>9a8fd244-d2b2-41c7-8cff-fd419218d5d9</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument$serial</name>
<title>拟文$serial</title>
<description>拟文</description>
......
<?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">
<specification>1.0</specification>
<id>18b54902-5d46-498f-802a-70b89f9a9a8b</id>
<id>f6467133-57fa-47b5-b4f4-f7d937c4ae92</id>
<name>com.xyst.dinas.oa.bill.ProtocolDocument</name>
<title>拟文</title>
<description>拟文</description>
......
<?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">
<specification>1.0</specification>
<id>5034633e-3e53-4e00-9914-e627e42230b0</id>
<id>43afecf9-b7a6-4cb0-865d-3486d0b7467e</id>
<name>com.xyst.dinas.oa.bill.SealBorrow$sequence</name>
<title>证章借出$sequence</title>
<description>证章借出</description>
......
<?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">
<specification>1.0</specification>
<id>53441ac4-028f-4961-8213-e44965e9d3f8</id>
<id>ac0d4796-1c41-4ee8-90cc-7453016ad414</id>
<name>com.xyst.dinas.oa.bill.SealBorrow$serial</name>
<title>证章借出$serial</title>
<description>证章借出</description>
......
<?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">
<specification>1.0</specification>
<id>c029c23d-2ac9-4e3d-b986-115820b3dcd8</id>
<id>eb09f88a-cb2c-4ac1-8afa-2c6e25db018d</id>
<name>com.xyst.dinas.oa.bill.SealBorrow</name>
<title>证章借出</title>
<description>证章借出</description>
......
<?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">
<specification>1.0</specification>
<id>650ac720-bc98-46b8-aceb-b4ab3e727474</id>
<id>b6c2431a-713a-464c-8b33-0c4da74c859e</id>
<name>com.xyst.dinas.oa.bill.UseCarApply$sequence</name>
<title>用车申请$sequence</title>
<description>用车申请</description>
......
<?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">
<specification>1.0</specification>
<id>52f5db03-d739-4549-bce6-0f6a43710bd9</id>
<id>02689845-286a-417a-809d-fadf87754742</id>
<name>com.xyst.dinas.oa.bill.UseCarApply$serial</name>
<title>用车申请$serial</title>
<description>用车申请</description>
......
<?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">
<specification>1.0</specification>
<id>1a9920f3-4560-44a0-9686-51afcf968383</id>
<id>4509cc76-64b5-4516-8d31-6e36f85c0946</id>
<name>com.xyst.dinas.oa.bill.UseCarApply</name>
<title>用车申请</title>
<description>用车申请</description>
......
<?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">
<specification>1.0</specification>
<id>90ab6ca4-6658-415a-a90f-784d62e487eb</id>
<id>9ad5102b-c2cd-47fd-91a8-88057d555d0f</id>
<name>com.xyst.dinas.project.bill.ProjectFiled$sequence</name>
<title>项目备案$sequence</title>
<description>项目备案</description>
......
<?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">
<specification>1.0</specification>
<id>08dd6a22-2cd6-47eb-8682-7b9900a33eb9</id>
<id>ba188aef-0139-4dcc-967b-0ed7ed184573</id>
<name>com.xyst.dinas.project.bill.ProjectFiled$serial</name>
<title>项目备案$serial</title>
<description>项目备案</description>
......
<?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">
<specification>1.0</specification>
<id>9c650372-bf78-405d-99d8-70ee12117093</id>
<id>17ccf318-83df-435a-a3a8-59cf757957f4</id>
<name>com.xyst.dinas.project.bill.ProjectFiled</name>
<title>项目备案</title>
<description>项目备案</description>
......
<?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">
<specification>1.0</specification>
<id>46c1d473-eac0-4c9a-8c44-6c4df153d5c2</id>
<id>2497dbae-e18f-45a4-8132-e63670861d12</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany$sequence</name>
<title>购砂单位$sequence</title>
<description>购砂单位</description>
......
<?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">
<specification>1.0</specification>
<id>3130db51-b022-47e0-bffc-6790d27f9355</id>
<id>55689028-2756-4f36-88e0-9f7d6d99292b</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany$serial</name>
<title>购砂单位$serial</title>
<description>购砂单位</description>
......
<?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">
<specification>1.0</specification>
<id>5258ba71-bdb8-45eb-b9b0-54a0ce184c57</id>
<id>a01d444c-ea23-4630-a333-823aacc8987a</id>
<name>com.xyst.dinas.project.bill.PurchaseSandCompany</name>
<title>购砂单位</title>
<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