From 8910275656c9bf398832dc14957a03684a593e96 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期五, 30 八月 2024 15:16:58 +0800 Subject: [PATCH] 2024-08-30 朱宝民 修改配置文件bug --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java | 306 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 274 insertions(+), 32 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 5a85dee..4e54a8f 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,34 +3,54 @@ 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.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.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; import org.jdom2.Document; 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; /** * 鐩戝惉鍣紝瀹炵幇鍔熻兘锛氬湪绯荤粺鍚姩鏃跺垵濮嬪寲锛屽悜鏁版嵁搴撲腑鎻掑叆鏁版嵁 * 鏈洃鍚櫒涓嶈兘閲囩敤ServletContextListener鏂瑰紡锛屽洜涓篠ervlet涓婁笅鏂嘋ontext鍒涘缓鍚� - * Spring瀹瑰櫒骞舵病鏈夊垱寤哄畬锛岃�屾湰绫讳腑鐢ㄧ彁浜哠pring瀹瑰櫒涓殑Bean锛屽嵆distriDao, userDao銆� + * Spring瀹瑰櫒骞舵病鏈夊垱寤哄畬锛岃�屾湰绫讳腑鐢ㄤ簡Spring瀹瑰櫒涓殑Bean锛屽嵆distriDao, userDao銆� * 鎵�浠ラ噰鐢ㄤ簡Spring浜嬩欢鐩戝惉鍣ㄦ潵瀹炵幇 */ @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; + + @Autowired + public void setResourceLoader(ResourceLoader resourceLoader){ + this.resourceLoader = resourceLoader ; + } @Autowired public void setDistriDao(BaDistrictMapper distriDao){ @@ -42,6 +62,30 @@ this.userDao = userDao ; } + @Autowired + public void setPaymentDao(SePaymentMethodMapper paymentMethodDao){ + this.paymentMethodDao = paymentMethodDao ; + } + + @Autowired + public void setSettingsDao(BaSettingsMapper settingsDao){ + this.settingsDao = settingsDao ; + } + + @Autowired + public void setWaterTypeDao(SeWaterTypeMapper waterTypeDao){ + this.waterTypeDao = waterTypeDao ; + } + + @Autowired + public void setRmIrrigateProfileDao(RmIrrigateProfileMapper rmIrrigateProfileDao) { + this.rmIrrigateProfileDao = rmIrrigateProfileDao; + } + + @Autowired + public void setWaterPriceDao(PrWaterPriceMapper prWaterPriceDao) { + this.prWaterPriceDao = prWaterPriceDao; + } /** * SpringBoot瀹瑰櫒宸茬粡鍑嗗濂戒簡 @@ -65,9 +109,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("绯荤粺鍚姩鏃讹紝鍒濆鍖栭厤缃嚭閿� !"); @@ -75,34 +118,102 @@ 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,"name", null, false, null) ; - //璁剧疆鏁版嵁婧� - DataSourceContext.set(orgTag); - if(!this.existDistricts()){ - if(configXml.existElement(doc, "config.orgs.org" + num + ".districts.city")){ - String distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.city","name", null, false, null) ; - String distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.city","num", null, false, null) ; - Integer distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.city","level", null, 1, 99,null) ; - Long supperId = this.saveDistrict(null, distriName, distriNum, distriLevel); - if(supperId != null && configXml.existElement(doc, "config.orgs.org" + num + ".districts.city.country")){ - distriName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.city.country","name", null, false, null) ; - distriNum = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".districts.city.country","num", null, false, null) ; - distriLevel = configXml.getSetAttrPlusInt(doc, "config.orgs.org" + num + ".districts.city.country","level", null, 1, 99,null) ; - this.saveDistrict(supperId, distriName, distriNum, distriLevel); + String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num,"tag", null, false, null) ; + 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.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.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 default_value = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".irrigateProfile.item" + i,"default_value", 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, default_value, 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); + } } } }else{ @@ -122,11 +233,56 @@ } /** - * 鏁版嵁搴撲腑鏄惁瀛樺湪琛屾斂鍖哄垝鏁版嵁 + * 鏁版嵁搴撲腑鏄惁瀛樺湪鐢ㄦ埛鏁版嵁 * @return 瀛樺湪鍚� */ private boolean existUsers(){ Long total = this.userDao.selectCount(null) ; + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪鏀粯鏂瑰紡鏁版嵁 + * @return 瀛樺湪鍚� + */ + private boolean existPayments(){ + Long total = this.paymentMethodDao.selectCount(null) ; + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪绯荤粺閰嶇疆鏁版嵁 + * @return 瀛樺湪鍚� + */ + private boolean existSettings(){ + Long total = this.settingsDao.selectCount(null) ; + return (total != null && total > 0) ; + } + + /** + * 鏁版嵁搴撲腑鏄惁瀛樺湪鐢ㄦ按绫诲瀷鏁版嵁 + * @return 瀛樺湪鍚� + */ + private boolean existWaterTypes(){ + 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) ; } @@ -179,5 +335,91 @@ this.userDao.putin(po) ; } } + /** + * 淇濆瓨鏀粯鏂瑰紡 + * @param orgTag 鏈烘瀯鏍囩 + * @param name 鍚嶇О + */ + private void savePayment(String orgTag, String name) throws Exception{ + if(name != null && !name.trim().equals("")){ + SePaymentMethod po = new SePaymentMethod() ; + po.setName(name); + po.setDeleted(Deleted.NO.code); + this.paymentMethodDao.insert(po) ; + } + } + + /** + * 淇濆瓨绯荤粺閰嶇疆 + * @param item_name 閰嶇疆椤� + * @param item_value 閰嶇疆椤瑰�� + * @param remarks 澶囨敞淇℃伅 + * @throws Exception + */ + private void saveSettings(String orgTag,String item_name, String item_value,String remarks) throws Exception{ + if((item_name != null && !item_name.trim().equals("")) && + (item_value != null && !item_value.trim().equals("")) && + (remarks != null && !remarks.trim().equals(""))){ + BaSettings po = new BaSettings() ; + po.setItemName(item_name); + po.setItemValue(item_value); + po.setRemarks(remarks); + this.settingsDao.insert(po) ; + } + } + + + /** + * 淇濆瓨鐢ㄦ按绫诲瀷 + * @param orgTag 鏈烘瀯鏍囩 + * @param typeName 鍚嶇О + */ + private void saveWaterType(String orgTag, String typeName) throws Exception{ + if(typeName != null && !typeName.trim().equals("")){ + SeWaterType po = new SeWaterType() ; + po.setTypename(typeName); + this.waterTypeDao.insert(po) ; + } + } + + /** + * 淇濆瓨鐏屾簤閰嶇疆 + * @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)); + 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); + + } + + } + + } -- Gitblit v1.8.0