|  |  |  | 
|---|
|  |  |  | 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.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.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; | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 监听器,实现功能:在系统启动时初始化,向数据库中插入数据 | 
|---|
|  |  |  | * 本监听器不能采用ServletContextListener方式,因为Servlet上下文Context创建后 | 
|---|
|  |  |  | * Spring容器并没有创建完,而本类中用珐了Spring容器中的Bean,即distriDao, userDao。 | 
|---|
|  |  |  | * Spring容器并没有创建完,而本类中用了Spring容器中的Bean,即distriDao, userDao。 | 
|---|
|  |  |  | * 所以采用了Spring事件监听器来实现 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Component | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BaDistrictMapper distriDao ; | 
|---|
|  |  |  | private BaUserMapper userDao ; | 
|---|
|  |  |  | private SePaymentMethodMapper paymentMethodDao ; | 
|---|
|  |  |  | private BaSettingsMapper settingsDao ; | 
|---|
|  |  |  | private SeWaterTypeMapper waterTypeDao ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | public void setDistriDao(BaDistrictMapper distriDao){ | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | public void setUserDao(BaUserMapper userDao){ | 
|---|
|  |  |  | 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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) ; | 
|---|
|  |  |  | 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")){ | 
|---|
|  |  |  | if(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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /* 2023-11-23 下面是最初实现,后满足IC卡中存在省的要求,增加省级行政区划 | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!this.existUsers()){ | 
|---|
|  |  |  | if(configXml.existElement(doc, "config.orgs.org" + num + ".user")){ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 数据库中是否存在行政区划数据 | 
|---|
|  |  |  | * 数据库中是否存在用户数据 | 
|---|
|  |  |  | * @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.waterTypeDao.selectCount(null) ; | 
|---|
|  |  |  | return (total != null && total > 0) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | po.num = num ; | 
|---|
|  |  |  | po.level = DistrictLevel.get(level.byteValue()) ; | 
|---|
|  |  |  | po.deleted = Deleted.NO ; | 
|---|
|  |  |  | this.distriDao.insert(po) ; | 
|---|
|  |  |  | this.distriDao.putin(po) ; | 
|---|
|  |  |  | return po.getId() ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return null ; | 
|---|
|  |  |  | 
|---|
|  |  |  | (password != null && !password.trim().equals("")) && | 
|---|
|  |  |  | supperAdmin != null){ | 
|---|
|  |  |  | BaUser po = new BaUser() ; | 
|---|
|  |  |  | po.name = name ; | 
|---|
|  |  |  | po.userName = name ; | 
|---|
|  |  |  | po.phone = phone ; | 
|---|
|  |  |  | po.password = MD5.encrypt(password) ;//进行加密码 ; | 
|---|
|  |  |  | po.orgTag = orgTag ; | 
|---|
|  |  |  | po.supperAdmin = supperAdmin.byteValue() ; | 
|---|
|  |  |  | po.disabled = Disabled.NO ; | 
|---|
|  |  |  | po.deleted = Deleted.NO ; | 
|---|
|  |  |  | this.userDao.insert(po) ; | 
|---|
|  |  |  | 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) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|