在技校计算机网站建设,河北邯郸网络科技公司有哪些,一个空间可以做两个网站吗,印刷下单网站开发伴随着全球信息化发展#xff0c;行行业业都与计算机技术相衔接#xff0c;计算机技术普遍运用于药房管理行业。实施计算机系统来管理可以降低逍遥大药房管理成本#xff0c;使整个逍遥大药房行业的发展有显著提升。 本论文主要面向逍遥大药房管理中出现的一些常见问题… 伴随着全球信息化发展行行业业都与计算机技术相衔接计算机技术普遍运用于药房管理行业。实施计算机系统来管理可以降低逍遥大药房管理成本使整个逍遥大药房行业的发展有显著提升。 本论文主要面向逍遥大药房管理中出现的一些常见问题将其与计算机管理系统结合起来。通过这个系统管理员可以更加方便的管理逍遥大药房信息可以清楚的了解逍遥大药房信息管理情况以管理员登录系统通过首页个人中心用户管理保健品分类管理药品分类管理药品信息管理疫情常识管理保健品管理系统管理订单管理等功能模板可以有效的分配各用户的权限。逍遥大药房管理系统在逍遥大药房管理中的应用可以很大程度上提高管理水平获得更好的经济效益。 该系统基于B/S即所谓浏览器/服务器模式应用java技术选择MySQL作为后台数据库。系统主要包括首页个人中心用户管理保健品分类管理药品分类管理药品信息管理疫情常识管理保健品管理系统管理订单管理等功能模块。但是这套系统实现的功能只是整个逍遥大药房管理系统中的一部分系统中还存在一些不及之处需要继续的创新使其完美。 关键词逍遥大药房管理java技术B/S数据库mysql 基于springboot逍遥大药房管理系统源码和论文335 演示视频 基于springboot逍遥大药房管理系统源码和论文 Abstract
With the development of global information technology, the industry is connected with computer technology, and computer technology is widely used in the big pharmacy management industry.The implementation of computer system to management can reduce the management cost of Xiaoyao pharmacy, and make the development of the whole Xiaoyao pharmacy industry significantly improved.
This paper mainly faces some common problems in the management system, which combines it with the computer management system.Through this system, the administrator can manage the information more conveniently; can clearly understand the information management; through the homepage, personal center, user management, health care classification management, drug classification management, drug information management, epidemic knowledge management, health care management, system management, order management and so on.The application of the management system in the management of Xiaoyao big pharmacy can greatly improve the management level and obtain better economic benefits.
The system is based on B / S, the so-called browser / server mode, applies java technology, and selects MySQL as the background database.The system mainly includes home page, personal center, user management, health care product classification management, drug classification management, drug information management, epidemic knowledge management, health care products management, system management, order management and other functional modules.However, the function of this system is only a part of the whole free free pharmacy management system, there are still some shortcomings in the system, need to continue to innovate, to make it perfect. Key words: Xiaoyao big pharmacy management; java technology; B / S; database; mysql; package com.controller;import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;import javax.servlet.http.HttpServletRequest;import com.alibaba.fastjson.JSON;
import com.utils.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;/*** 通用接口*/
RestController
public class CommonController {private static final Logger logger LoggerFactory.getLogger(CommonController.class);Autowiredprivate CommonService commonService;/*** Java代码实现MySQL数据库导出** param mysqlUrl MySQL安装路径* param hostIP MySQL数据库所在服务器地址IP* param userName 进入数据库所需要的用户名* param hostPort 数据库端口* param password 进入数据库所需要的密码* param savePath 数据库文件保存路径* param fileName 数据库导出文件文件名* param databaseName 要导出的数据库名* return 返回true表示导出成功否则返回false。*/IgnoreAuthRequestMapping(/beifen)public R beifen(String mysqlUrl, String hostIP, String userName, String hostPort, String password, String savePath, String fileName, String databaseName) {File saveFile new File(savePath);if (!saveFile.exists()) {// 如果目录不存在 saveFile.mkdirs();// 创建文件夹 }if (!savePath.endsWith(File.separator)) {savePath savePath File.separator;}PrintWriter printWriter null;BufferedReader bufferedReader null;try {Runtime runtime Runtime.getRuntime();String cmd mysqlUrl mysqldump -h hostIP -u userName -P hostPort -p password databaseName;runtime.exec(cmd);Process process runtime.exec(cmd);InputStreamReader inputStreamReader new InputStreamReader(process.getInputStream(), utf8);bufferedReader new BufferedReader(inputStreamReader);printWriter new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath fileName), utf8));String line;while ((line bufferedReader.readLine()) ! null) {printWriter.println(line);}printWriter.flush();} catch (Exception e) {e.printStackTrace();return R.error(备份数据出错);} finally {try {if (bufferedReader ! null) {bufferedReader.close();}if (printWriter ! null) {printWriter.close();}} catch (Exception e) {e.printStackTrace();}}return R.ok();}/*** Java实现MySQL数据库导入** param mysqlUrl MySQL安装路径* param hostIP MySQL数据库所在服务器地址IP* param userName 进入数据库所需要的用户名* param hostPort 数据库端口* param password 进入数据库所需要的密码* param savePath 数据库文件保存路径* param fileName 数据库导出文件文件名* param databaseName 要导出的数据库名*/IgnoreAuthRequestMapping(/huanyuan)public R huanyuan(String mysqlUrl, String hostIP, String userName, String hostPort, String password, String savePath, String fileName, String databaseName) {try {Runtime rt Runtime.getRuntime();Process child1 rt.exec(mysqlUrlmysql.exe -h hostIP -u userName -P hostPort -p password databaseName);OutputStream out child1.getOutputStream();//控制台的输入信息作为输出流String inStr;StringBuffer sb new StringBuffer();String outStr;BufferedReader br new BufferedReader(new InputStreamReader(new FileInputStream(savePath/fileName), utf-8));while ((inStr br.readLine()) ! null) {sb.append(inStr \r\n);}outStr sb.toString();OutputStreamWriter writer new OutputStreamWriter(out, utf8);writer.write(outStr);
// 注这里如果用缓冲方式写入文件的话会导致中文乱码用flush()方法则可以避免writer.flush();out.close();br.close();writer.close();} catch (Exception e) {e.printStackTrace();return R.error(数据导入出错);}return R.ok();}/*** 饼状图求和* return*/RequestMapping(/pieSum)public R pieSum(RequestParam MapString,Object params) {logger.debug(饼状图求和:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.pieSum(params);return R.ok().put(data, result);}/*** 饼状图统计* return*/RequestMapping(/pieCount)public R pieCount(RequestParam MapString,Object params) {logger.debug(饼状图统计:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.pieCount(params);return R.ok().put(data, result);}/*** 柱状图求和单列* return*/RequestMapping(/barSumOne)public R barSumOne(RequestParam MapString,Object params) {logger.debug(柱状图求和单列:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.barSumOne(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题ListString yAxis0 new ArrayList();yAxis.add(yAxis0);legend.add();for(MapString, Object map :result){String oneValue String.valueOf(map.get(name));String value String.valueOf(map.get(value));xAxis.add(oneValue);yAxis0.add(value);}MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}/*** 柱状图统计单列* return*/RequestMapping(/barCountOne)public R barCountOne(RequestParam MapString,Object params) {logger.debug(柱状图统计单列:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.barCountOne(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题ListString yAxis0 new ArrayList();yAxis.add(yAxis0);legend.add();for(MapString, Object map :result){String oneValue String.valueOf(map.get(name));String value String.valueOf(map.get(value));xAxis.add(oneValue);yAxis0.add(value);}MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}/*** 柱状图统计双列* return*/RequestMapping(/barSumTwo)public R barSumTwo(RequestParam MapString,Object params) {logger.debug(柱状图统计双列:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.barSumTwo(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题MapString, HashMapString, String dataMap new LinkedHashMap();for(MapString, Object map :result){String name1Value String.valueOf(map.get(name1));String name2Value String.valueOf(map.get(name2));String value String.valueOf(map.get(value));if(!legend.contains(name2Value)){legend.add(name2Value);//添加完成后 就是最全的第二列的类型}if(dataMap.containsKey(name1Value)){dataMap.get(name1Value).put(name2Value,value);}else{HashMapString, String name1Data new HashMap();name1Data.put(name2Value,value);dataMap.put(name1Value,name1Data);}}for(int i 0; ilegend.size(); i){yAxis.add(new ArrayListString());}SetString keys dataMap.keySet();for(String key:keys){xAxis.add(key);HashMapString, String map dataMap.get(key);for(int i 0; ilegend.size(); i){ListString data yAxis.get(i);if(StringUtil.isNotEmpty(map.get(legend.get(i)))){data.add(map.get(legend.get(i)));}else{data.add(0);}}}System.out.println();MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}/*** 柱状图统计双列* return*/RequestMapping(/barCountTwo)public R barCountTwo(RequestParam MapString,Object params) {logger.debug(柱状图统计双列:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.barCountTwo(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题MapString, HashMapString, String dataMap new LinkedHashMap();for(MapString, Object map :result){String name1Value String.valueOf(map.get(name1));String name2Value String.valueOf(map.get(name2));String value String.valueOf(map.get(value));if(!legend.contains(name2Value)){legend.add(name2Value);//添加完成后 就是最全的第二列的类型}if(dataMap.containsKey(name1Value)){dataMap.get(name1Value).put(name2Value,value);}else{HashMapString, String name1Data new HashMap();name1Data.put(name2Value,value);dataMap.put(name1Value,name1Data);}}for(int i 0; ilegend.size(); i){yAxis.add(new ArrayListString());}SetString keys dataMap.keySet();for(String key:keys){xAxis.add(key);HashMapString, String map dataMap.get(key);for(int i 0; ilegend.size(); i){ListString data yAxis.get(i);if(StringUtil.isNotEmpty(map.get(legend.get(i)))){data.add(map.get(legend.get(i)));}else{data.add(0);}}}System.out.println();MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}/**tableName 查询表condition1 条件1condition1Value 条件1值average 计算平均评分取值有值 Number(res.data.value.toFixed(1))无值 if(res.data){}* */IgnoreAuthRequestMapping(/queryScore)public R queryScore(RequestParam MapString, Object params) {logger.debug(queryScore:,,Controller:{},,params:{},this.getClass().getName(),params);MapString, Object queryScore commonService.queryScore(params);return R.ok().put(data, queryScore);}/*** 查询字典表的分组统计总条数* tableName 表名* groupColumn 分组字段* return*/RequestMapping(/newSelectGroupCount)public R newSelectGroupCount(RequestParam MapString,Object params) {logger.debug(newSelectGroupCount:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.newSelectGroupCount(params);return R.ok().put(data, result);}/*** 查询字典表的分组求和* tableName 表名* groupColumn 分组字段* sumCloum 统计字段* return*/RequestMapping(/newSelectGroupSum)public R newSelectGroupSum(RequestParam MapString,Object params) {logger.debug(newSelectGroupSum:,,Controller:{},,params:{},this.getClass().getName(),params);ListMapString, Object result commonService.newSelectGroupSum(params);return R.ok().put(data, result);}/*** 柱状图求和 老的*/RequestMapping(/barSum)public R barSum(RequestParam MapString,Object params) {logger.debug(barSum方法:,,Controller:{},,params:{},this.getClass().getName(), com.alibaba.fastjson.JSONObject.toJSONString(params));Boolean isJoinTableFlag false;//是否有级联表相关String one ;//第一优先String two ;//第二优先//处理thisTable和joinTable 处理内容是把json字符串转为Map并把带有,的切割为数组//当前表MapString,Object thisTable JSON.parseObject(String.valueOf(params.get(thisTable)),Map.class);params.put(thisTable,thisTable);//级联表String joinTableString String.valueOf(params.get(joinTable));if(StringUtil.isNotEmpty(joinTableString)) {MapString, Object joinTable JSON.parseObject(joinTableString, Map.class);params.put(joinTable, joinTable);isJoinTableFlag true;}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(date)))){//当前表日期thisTable.put(date,String.valueOf(thisTable.get(date)).split(,));one thisDate0;}if(isJoinTableFlag){//级联表日期MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(date)))){joinTable.put(date,String.valueOf(joinTable.get(date)).split(,));if(StringUtil.isEmpty(one)){one joinDate0;}else{if(StringUtil.isEmpty(two)){two joinDate0;}}}}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(string)))){//当前表字符串thisTable.put(string,String.valueOf(thisTable.get(string)).split(,));if(StringUtil.isEmpty(one)){one thisString0;}else{if(StringUtil.isEmpty(two)){two thisString0;}}}if(isJoinTableFlag){//级联表字符串MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(string)))){joinTable.put(string,String.valueOf(joinTable.get(string)).split(,));if(StringUtil.isEmpty(one)){one joinString0;}else{if(StringUtil.isEmpty(two)){two joinString0;}}}}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(types)))){//当前表类型thisTable.put(types,String.valueOf(thisTable.get(types)).split(,));if(StringUtil.isEmpty(one)){one thisTypes0;}else{if(StringUtil.isEmpty(two)){two thisTypes0;}}}if(isJoinTableFlag){//级联表类型MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(types)))){joinTable.put(types,String.valueOf(joinTable.get(types)).split(,));if(StringUtil.isEmpty(one)){one joinTypes0;}else{if(StringUtil.isEmpty(two)){two joinTypes0;}}}}ListMapString, Object result commonService.barSum(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题if(StringUtil.isEmpty(two)){//不包含第二列ListString yAxis0 new ArrayList();yAxis.add(yAxis0);legend.add();for(MapString, Object map :result){String oneValue String.valueOf(map.get(one));String value String.valueOf(map.get(value));xAxis.add(oneValue);yAxis0.add(value);}}else{//包含第二列MapString, HashMapString, String dataMap new LinkedHashMap();if(StringUtil.isNotEmpty(two)){for(MapString, Object map :result){String oneValue String.valueOf(map.get(one));String twoValue String.valueOf(map.get(two));String value String.valueOf(map.get(value));if(!legend.contains(twoValue)){legend.add(twoValue);//添加完成后 就是最全的第二列的类型}if(dataMap.containsKey(oneValue)){dataMap.get(oneValue).put(twoValue,value);}else{HashMapString, String oneData new HashMap();oneData.put(twoValue,value);dataMap.put(oneValue,oneData);}}}for(int i 0; ilegend.size(); i){yAxis.add(new ArrayListString());}SetString keys dataMap.keySet();for(String key:keys){xAxis.add(key);HashMapString, String map dataMap.get(key);for(int i 0; ilegend.size(); i){ListString data yAxis.get(i);if(StringUtil.isNotEmpty(map.get(legend.get(i)))){data.add(map.get(legend.get(i)));}else{data.add(0);}}}System.out.println();}MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}/*** 柱状图统计 老的*/RequestMapping(/barCount)public R barCount(RequestParam MapString,Object params) {logger.debug(barCount方法:,,Controller:{},,params:{},this.getClass().getName(), com.alibaba.fastjson.JSONObject.toJSONString(params));Boolean isJoinTableFlag false;//是否有级联表相关String one ;//第一优先String two ;//第二优先//处理thisTable和joinTable 处理内容是把json字符串转为Map并把带有,的切割为数组//当前表MapString,Object thisTable JSON.parseObject(String.valueOf(params.get(thisTable)),Map.class);params.put(thisTable,thisTable);//级联表String joinTableString String.valueOf(params.get(joinTable));if(StringUtil.isNotEmpty(joinTableString)) {MapString, Object joinTable JSON.parseObject(joinTableString, Map.class);params.put(joinTable, joinTable);isJoinTableFlag true;}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(date)))){//当前表日期thisTable.put(date,String.valueOf(thisTable.get(date)).split(,));one thisDate0;}if(isJoinTableFlag){//级联表日期MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(date)))){joinTable.put(date,String.valueOf(joinTable.get(date)).split(,));if(StringUtil.isEmpty(one)){one joinDate0;}else{if(StringUtil.isEmpty(two)){two joinDate0;}}}}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(string)))){//当前表字符串thisTable.put(string,String.valueOf(thisTable.get(string)).split(,));if(StringUtil.isEmpty(one)){one thisString0;}else{if(StringUtil.isEmpty(two)){two thisString0;}}}if(isJoinTableFlag){//级联表字符串MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(string)))){joinTable.put(string,String.valueOf(joinTable.get(string)).split(,));if(StringUtil.isEmpty(one)){one joinString0;}else{if(StringUtil.isEmpty(two)){two joinString0;}}}}if(StringUtil.isNotEmpty(String.valueOf(thisTable.get(types)))){//当前表类型thisTable.put(types,String.valueOf(thisTable.get(types)).split(,));if(StringUtil.isEmpty(one)){one thisTypes0;}else{if(StringUtil.isEmpty(two)){two thisTypes0;}}}if(isJoinTableFlag){//级联表类型MapString, Object joinTable (MapString, Object) params.get(joinTable);if(StringUtil.isNotEmpty(String.valueOf(joinTable.get(types)))){joinTable.put(types,String.valueOf(joinTable.get(types)).split(,));if(StringUtil.isEmpty(one)){one joinTypes0;}else{if(StringUtil.isEmpty(two)){two joinTypes0;}}}}ListMapString, Object result commonService.barCount(params);ListString xAxis new ArrayList();//报表x轴ListListString yAxis new ArrayList();//y轴ListString legend new ArrayList();//标题if(StringUtil.isEmpty(two)){//不包含第二列ListString yAxis0 new ArrayList();yAxis.add(yAxis0);legend.add();for(MapString, Object map :result){String oneValue String.valueOf(map.get(one));String value String.valueOf(map.get(value));xAxis.add(oneValue);yAxis0.add(value);}}else{//包含第二列MapString, HashMapString, String dataMap new LinkedHashMap();if(StringUtil.isNotEmpty(two)){for(MapString, Object map :result){String oneValue String.valueOf(map.get(one));String twoValue String.valueOf(map.get(two));String value String.valueOf(map.get(value));if(!legend.contains(twoValue)){legend.add(twoValue);//添加完成后 就是最全的第二列的类型}if(dataMap.containsKey(oneValue)){dataMap.get(oneValue).put(twoValue,value);}else{HashMapString, String oneData new HashMap();oneData.put(twoValue,value);dataMap.put(oneValue,oneData);}}}for(int i 0; ilegend.size(); i){yAxis.add(new ArrayListString());}SetString keys dataMap.keySet();for(String key:keys){xAxis.add(key);HashMapString, String map dataMap.get(key);for(int i 0; ilegend.size(); i){ListString data yAxis.get(i);if(StringUtil.isNotEmpty(map.get(legend.get(i)))){data.add(map.get(legend.get(i)));}else{data.add(0);}}}System.out.println();}MapString, Object resultMap new HashMap();resultMap.put(xAxis,xAxis);resultMap.put(yAxis,yAxis);resultMap.put(legend,legend);return R.ok().put(data, resultMap);}
}?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.2.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.jlwl/groupId!-- 导入项目的名称 --artifactIdspringboot310o0/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot-schema/namedescriptionspringboot学习框架/descriptionpropertiesjava.version1.8/java.versionfastjson.version1.2.8/fastjson.versionmaven-jar-plugin.version3.1.1/maven-jar-plugin.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.1.1/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-spring/artifactIdversion1.3.2/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus/artifactIdversion2.3/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatisplus-spring-boot-starter/artifactIdversion1.0.5/version/dependencydependencygroupIdcom.google.protobuf/groupIdartifactIdprotobuf-java/artifactIdversion3.10.0/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.0/version/dependencydependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactIdversion2.0.1.Final/version/dependencydependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.5/version/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion4.0.12/version/dependency!-- FastJson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion${fastjson.version}/version/dependencydependencygroupIdcom.microsoft.sqlserver/groupIdartifactIdsqljdbc4/artifactIdscope4.0/scopeversion4.0/version/dependencydependencygroupIdcom.microsoft.sqlserver/groupIdartifactIdmssql-jdbc/artifactIdversion6.2.0.jre8/versionscoperuntime/scope/dependency!-- 百度人工智能 --dependencygroupIdcom.baidu.aip/groupIdartifactIdjava-sdk/artifactIdversion4.4.1/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion3.11/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion3.9/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scopeexclusionsexclusiongroupIdorg.junit.vintage/groupIdartifactIdjunit-vintage-engine/artifactId/exclusion/exclusions/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project