From 982937e0f439f6422a9912da604def3f10b41bb9 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 02 九月 2024 10:36:40 +0800 Subject: [PATCH] 2024-09-02 朱宝民 字典及字典项放到配置文件中,自动导入数据库 --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java | 328 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 258 insertions(+), 70 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java index 6c87c31..eaf3213 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java @@ -3,17 +3,16 @@ import com.dy.common.multiDataSource.DataSourceContext; import com.dy.common.mybatis.envm.Deleted; import com.dy.common.mybatis.envm.Disabled; -import com.dy.common.util.ConfigXml; +import com.dy.common.util.ConfigXml4Springboot; import com.dy.common.util.MD5; -import com.dy.common.webListener.ConfigListener; -import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper; -import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; -import com.dy.pipIrrGlobal.daoBa.BaUserMapper; +import com.dy.pipIrrGlobal.daoBa.*; +import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; +import com.dy.pipIrrGlobal.daoRm.RmIrrigateProfileMapper; import com.dy.pipIrrGlobal.daoSe.SePaymentMethodMapper; import com.dy.pipIrrGlobal.daoSe.SeWaterTypeMapper; -import com.dy.pipIrrGlobal.pojoBa.BaDistrict; -import com.dy.pipIrrGlobal.pojoBa.BaSettings; -import com.dy.pipIrrGlobal.pojoBa.BaUser; +import com.dy.pipIrrGlobal.pojoBa.*; +import com.dy.pipIrrGlobal.pojoPr.PrWaterPrice; +import com.dy.pipIrrGlobal.pojoRm.RmIrrigateProfile; import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod; import com.dy.pipIrrGlobal.pojoSe.SeWaterType; import com.dy.pipIrrGlobal.util.DistrictLevel; @@ -21,10 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; +import org.springframework.core.io.ResourceLoader; import org.springframework.lang.NonNull; import org.springframework.stereotype.Component; - -import java.net.URL; /** * 鐩戝惉鍣紝瀹炵幇鍔熻兘锛氬湪绯荤粺鍚姩鏃跺垵濮嬪寲锛屽悜鏁版嵁搴撲腑鎻掑叆鏁版嵁 @@ -35,11 +33,22 @@ @Component public class InitListener implements ApplicationListener<ApplicationReadyEvent> { + protected ResourceLoader resourceLoader ; + private BaDistrictMapper distriDao ; private BaUserMapper userDao ; private SePaymentMethodMapper paymentMethodDao ; private BaSettingsMapper settingsDao ; private SeWaterTypeMapper waterTypeDao ; + private RmIrrigateProfileMapper rmIrrigateProfileDao; + private PrWaterPriceMapper prWaterPriceDao; + private BaDictMapper baDictDao; + private BaDictItemMapper baDictItemDao; + + @Autowired + public void setResourceLoader(ResourceLoader resourceLoader){ + this.resourceLoader = resourceLoader ; + } @Autowired public void setDistriDao(BaDistrictMapper distriDao){ @@ -66,6 +75,25 @@ this.waterTypeDao = waterTypeDao ; } + @Autowired + public void setRmIrrigateProfileDao(RmIrrigateProfileMapper rmIrrigateProfileDao) { + this.rmIrrigateProfileDao = rmIrrigateProfileDao; + } + + @Autowired + public void setWaterPriceDao(PrWaterPriceMapper prWaterPriceDao) { + this.prWaterPriceDao = prWaterPriceDao; + } + + @Autowired + public void setBaDictDao(BaDictMapper baDictDao) { + this.baDictDao = baDictDao; + } + + @Autowired + public void setBaDictItemDao(BaDictItemMapper baDictItemDao) { + this.baDictItemDao = baDictItemDao; + } /** * SpringBoot瀹瑰櫒宸茬粡鍑嗗濂戒簡 @@ -89,9 +117,8 @@ @SuppressWarnings("unused ") private void init(ApplicationReadyEvent event){ try { - URL configFileURL = ConfigListener.class.getResource("/init-config.xml" ); - ConfigXml configXml = new ConfigXml() ; - Document doc = configXml.createDom(configFileURL) ; + ConfigXml4Springboot configXml = new ConfigXml4Springboot() ; + Document doc = configXml.createDom(this.resourceLoader, "init-config.xml") ; this.doInit(configXml, doc); } catch (Exception e) { System.out.println("绯荤粺鍚姩鏃讹紝鍒濆鍖栭厤缃嚭閿� !"); @@ -99,76 +126,122 @@ e.printStackTrace(); } } - private void doInit(ConfigXml configXml, Document doc) throws Exception{ + private void doInit(ConfigXml4Springboot configXml, Document doc) throws Exception{ if(configXml != null && doc != null){ for(int num = 1; num <= 10000; num++){ if(configXml.existElement(doc, "config.orgs.org" + num)){ String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num,"tag", null, false, null) ; - //璁剧疆鏁版嵁婧� - DataSourceContext.set(orgTag); - if(!this.existDistricts()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".districts.province")){ - String distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province","name", null, false, null) ; - String distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province","num", null, false, null) ; - Integer distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province","level", null, 1, 99,null) ; - Long supperId = this.saveDistrict(null, distriName, distriNum, distriLevel); - if(supperId != null && configXml.existElement(doc, "config.orgs.org" + num + ".districts.province.city")){ - distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city","name", null, false, null) ; - distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city","num", null, false, null) ; - distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province.city","level", null, 1, 99,null) ; - supperId = this.saveDistrict(supperId, distriName, distriNum, distriLevel); - if(supperId != null && configXml.existElement(doc, "config.orgs.org" + num + ".districts.province.city.country")) { - distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city.country", "name", null, false, null); - distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city.country", "num", null, false, null); - distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province.city.country", "level", null, 1, 99, null); - this.saveDistrict(supperId, distriName, distriNum, distriLevel); + Boolean enable = configXml.getSetAttrBoolean(doc, "config.orgs.org" + num, "enable", null, null); + if(enable != null && enable.booleanValue()){ + //璁剧疆鏁版嵁婧� + DataSourceContext.set(orgTag); + if(!this.existDistricts()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".districts.province")){ + String distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province","name", null, false, null) ; + String distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province","num", null, false, null) ; + Integer distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province","level", null, 0, 99,null) ; + Long supperId = this.saveDistrict(null, distriName, distriNum, distriLevel); + if(supperId != null && configXml.existElement(doc, "config.orgs.org" + num + ".districts.province.city")){ + distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city","name", null, false, null) ; + distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city","num", null, false, null) ; + distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province.city","level", null, 1, 99,null) ; + supperId = this.saveDistrict(supperId, distriName, distriNum, distriLevel); + if(supperId != null && configXml.existElement(doc, "config.orgs.org" + num + ".districts.province.city.country")) { + distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city.country", "name", null, false, null); + distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.province.city.country", "num", null, false, null); + distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.province.city.country", "level", null, 1, 99, null); + this.saveDistrict(supperId, distriName, distriNum, distriLevel); + } } } } - } - if(!this.existUsers()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".user")){ - String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","name", null, false, null) ; - String phone = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","phone", null, false, null) ; - String password = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","password", null, false, null) ; - Integer supperAdmin = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".user","supperAdmin", null, 0, 1,null) ; - this.saveUser(orgTag, name, phone, password, supperAdmin); + if(!this.existUsers()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".user")){ + String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","name", null, false, null) ; + String phone = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","phone", null, false, null) ; + String password = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".user","password", null, false, null) ; + Integer supperAdmin = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".user","supperAdmin", null, 0, 1,null) ; + this.saveUser(orgTag, name, phone, password, supperAdmin); + } } - } - if(!this.existPayments()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".payments")){ - for(int i = 1 ; i < 10000; i++){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".payments.item" + i)){ - String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".payments.item" + i,"name", null, false, null) ; - this.savePayment(orgTag, name); - }else{ - break ; + if(!this.existPayments()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".payments")){ + for(int i = 1 ; i < 10000; i++){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".payments.item" + i)){ + String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".payments.item" + i,"name", null, false, null) ; + this.savePayment(orgTag, name); + }else{ + break ; + } } } } - } - if(!this.existSettings()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".settings")){ - for(int i = 1 ; i < 10000; i++){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".settings.item" + i)){ - String item_name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_name", null, false, null) ; - String item_value = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_value", null, false, null) ; - String remarks = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"remarks", null, false, null) ; - this.saveSettings(orgTag, item_name, item_value, remarks); - }else{ - break ; + if(!this.existSettings()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".settings")){ + for(int i = 1 ; i < 10000; i++){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".settings.item" + i)){ + String item_name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_name", null, false, null) ; + String item_value = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_value", null, false, null) ; + String remarks = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"remarks", null, false, null) ; + this.saveSettings(orgTag, item_name, item_value, remarks); + }else{ + break ; + } } } } - } - if(!this.existWaterTypes()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".waterTypes")){ - for(int i = 1 ; i < 10000; i++){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".waterTypes.item" + i)){ - String typeName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".waterTypes.item" + i,"typeName", null, false, null) ; - this.saveWaterType(orgTag, typeName); - }else{ - break ; + if(!this.existIrrigateProfile()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".irrigateProfile")){ + for(int i = 1 ; i < 10000; i++){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i)){ + String defaultValue = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i,"defaultValue", null, false, null) ; + String unit = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i,"unit", null, false, null) ; + String sort = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i,"sort", null, false, null) ; + String type = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i,"type", null, false, null) ; + this.saveIrrigateProfile(orgTag, defaultValue, unit,sort,type); + }else{ + break ; + } + } + } + } + if(!this.existWaterTypes()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".waterTypes")){ + for(int i = 1 ; i < 10000; i++){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".waterTypes.item" + i)){ + String typeName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".waterTypes.item" + i,"typeName", null, false, null) ; + this.saveWaterType(orgTag, typeName); + }else{ + break ; + } + } + } + } + if(!this.existWaterPrice()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".waterPrice")){ + String price = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".waterPrice","price", null, false, null) ; + this.saveWaterPrice(orgTag, price); + } + } + if(!this.existDict()){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".dictionaries.dict")){ + String code = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict","code", null, false, null) ; + String title = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict","title", null, false, null) ; + String valueType = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict","valueType", null, false, null) ; + this.saveDicts(orgTag, code,title,valueType); + if(configXml.existElement(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem")){ + for(int i = 1 ; i < 10000; i++){ + if(configXml.existElement(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i)){ + String dictCode = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i,"dictCode", null, false, null) ; + String value = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i,"value", null, false, null) ; + String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i,"name", null, false, null) ; + String status = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i,"status", null, false, null) ; + String sort = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".dictionaries.dict.dictItem.item" + i,"sort", null, false, null) ; + this.saveDictItems(orgTag,dictCode,value,name,status,sort); + }else{ + break ; + } + } } } } @@ -221,7 +294,34 @@ * @return 瀛樺湪鍚� */ private boolean existWaterTypes(){ - Long total = this.waterTypeDao.selectCount(null) ; + Long total = this.prWaterPriceDao.selectCount(null) ; + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪鐏屾簤閰嶇疆 + * @return + */ + private boolean existIrrigateProfile(){ + Long total = this.rmIrrigateProfileDao.selectCount(null) ; + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪姘翠环 + * @return + */ + private boolean existWaterPrice() { + Long total = this.prWaterPriceDao.selectCount(null); + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪瀛楀吀 + * @return + */ + private boolean existDict() { + Long total = this.baDictDao.selectCount(null); return (total != null && total > 0) ; } @@ -321,4 +421,92 @@ } } + /** + * 淇濆瓨鐏屾簤閰嶇疆 + * @param orgTag + * @param default_value + * @param unit + * @param sort + * @param type + * @throws Exception + */ + private void saveIrrigateProfile(String orgTag, String default_value, String unit, String sort, String type) throws Exception{ + if((default_value != null && !default_value.trim().equals("")) && + (unit != null && !unit.trim().equals("")) && + (sort != null && !sort.trim().equals("")) && + (type != null && !type.trim().equals(""))){ + RmIrrigateProfile po = new RmIrrigateProfile(); + po.setDefaultValue(Integer.parseInt(default_value)); + po.setUnit(Byte.valueOf(unit)); + po.setSort(Integer.parseInt(sort)); + po.setType(Byte.valueOf(type)); + po.setDeleted(0L); + this.rmIrrigateProfileDao.insert(po); + } + } + + /** + * 淇濆瓨姘翠环 + * @param price + */ + private void saveWaterPrice(String orgTag, String price) { + if(price != null && !price.trim().equals("")) { + PrWaterPrice po = new PrWaterPrice(); + po.setPrice(Double.parseDouble(price)); + po.setDeleted((byte)0); + this.prWaterPriceDao.insert(po); + } + } + + /** + * 淇濆瓨瀛楀吀 + * @param orgTag + * @param code + * @param title + * @param valueType + * @return + */ + private void saveDicts(String orgTag, String code, String title, String valueType) { + if((code != null && !code.trim().equals("")) && + (title != null && !title.trim().equals("")) && + (valueType != null && !valueType.trim().equals(""))) { + BaDict po = new BaDict(); + po.setCode(code); + po.setTitle(title); + po.setValueType(Byte.valueOf(valueType)); + po.setHashCode("c4ca4238a0b923820dcc509a6f75849b"); + po.setDeleted(0L); + this.baDictDao.insert(po); + } + } + + /** + * 淇濆瓨瀛楀吀椤� + * @param orgTag + * @param dictCode + * @param value + * @param name + * @param status + * @param sort + */ + private void saveDictItems(String orgTag, String dictCode, String value, String name, String status, String sort) { + if((dictCode != null && !dictCode.trim().equals("")) && + (value != null && !value.trim().equals("")) && + (name != null && !name.trim().equals("")) && + (status != null && !status.trim().equals("")) && + (sort != null && !sort.trim().equals(""))) { + BaDictItem po = new BaDictItem(); + po.setDictCode(dictCode); + po.setValue(value); + po.setName(name); + po.setStatus(Byte.valueOf(status)); + po.setSort(Integer.parseInt(sort)); + po.setDeleted(0L); + this.baDictItemDao.insert(po); + } + + } + + + } -- Gitblit v1.8.0