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