文档拆分条款-导入拆分结果

This commit is contained in:
liyawei
2022-04-01 09:08:46 +08:00
parent 314a0aa9e6
commit 2af0c7beae
8 changed files with 509 additions and 173 deletions
@@ -1,56 +0,0 @@
package com.jero.modules.opensso;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
/**
* @Description
* @Author liyawei
* @Create 2021/8/17
*/
public class URLRequestResultUtil {
public static String getProxyRequestResult(String url) {
StringBuffer requestResult = new StringBuffer();
BufferedReader in = null;
try {
System.out.println(url);
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "utf-8"));
String line;
while ((line = in.readLine()) != null) {
requestResult.append(line);
}
}
// 使用finally块来关闭输入流
catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return requestResult.toString();
}
}
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.util.JwtUtil; import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.RedisUtil; import com.jero.common.util.RedisUtil;
@@ -16,9 +15,7 @@ import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysDepartService; import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysLogService;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.HttpRequestUtil;
import com.jero.modules.system.util.StringUtils; import com.jero.modules.system.util.StringUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -30,7 +27,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -53,10 +49,6 @@ public class SSOLoginController {
@Autowired @Autowired
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Autowired @Autowired
private ISysBaseAPI sysBaseAPI;
@Autowired
private ISysLogService logService;
@Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private ISysDepartService sysDepartService; private ISysDepartService sysDepartService;
@@ -64,8 +56,6 @@ public class SSOLoginController {
private ISysDictService sysDictService; private ISysDictService sysDictService;
@Resource @Resource
private BaseCommonService baseCommonService; private BaseCommonService baseCommonService;
@Autowired
private RestTemplate restTemplate;
private static final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890"; private static final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890";
//密码登录错误的次数前缀 //密码登录错误的次数前缀
@@ -73,10 +63,14 @@ public class SSOLoginController {
//密码登录错误的最大限制次数 //密码登录错误的最大限制次数
public static final int RETRY_LOGIN_MAX_COUNT = 5; public static final int RETRY_LOGIN_MAX_COUNT = 5;
private String accessTokenUrl = "https://signin-test.nio.com/oauth2/accessToken"; @Value("${opensso.accessTokenUrl}")
private String profileUrl = "https://signin-test.nio.com/oauth2/profile"; private String accessTokenUrl;
private String clientId = "100679"; @Value("${opensso.profileUrl}")
private String clientSecret = "CDf2D9404C6ac1B0f7c3e3845ae0282a"; private String profileUrl;
@Value("${opensso.clientId}")
private String clientId;
@Value("${opensso.clientSecret}")
private String clientSecret;
@Value("${opensso.redirectUri}") @Value("${opensso.redirectUri}")
private String redirectUri; private String redirectUri;
@@ -94,7 +88,9 @@ public class SSOLoginController {
} }
} }
//https://signin-test.nio.com/oauth2/authorize?client_id=100679&redirect_uri=http%3A%2F%2F139.9.235.66%3A8008%2Fjero-boot%2Fopensso%2Fcallback&response_type=code //https://signin-test.nio.com/oauth2/authorize?client_id=100679&redirect_uri=http%3A%2F%2F139.9.235.66%3A8008%2Fjero-boot%2Fopensso%2Fcallback&response_type=code
//https://signin-test.nio.com/oauth2/authorize?client_id=100679&redirect_uri=http%3A%2F%2F139.9.235.66%3A8010&response_type=code
//http://139.9.235.66:8010
@AutoLog(value = "单点登录回调") @AutoLog(value = "单点登录回调")
@ApiOperation(value = "单点登录回调", notes = "单点登录回调") @ApiOperation(value = "单点登录回调", notes = "单点登录回调")
@GetMapping(value = "/callback") @GetMapping(value = "/callback")
@@ -107,8 +103,8 @@ public class SSOLoginController {
log.info("access_token_url:" + getAccessTokenUrl); log.info("access_token_url:" + getAccessTokenUrl);
Map<String, String> headerMapToken = new HashMap<>(); Map<String, String> headerMapToken = new HashMap<>();
headerMapToken.put("Content-Type", "text/html;charset=utf-8"); headerMapToken.put("Content-Type", "text/html;charset=utf-8");
String accessTokenResult = HttpRequestUtil.getResponseOfGET(getAccessTokenUrl, headerMapToken); // String accessTokenResult = HttpRequestUtil.getResponseOfGET(getAccessTokenUrl, headerMapToken);
// String accessTokenResult = URLRequestResultUtil.getProxyRequestResult(getAccessTokenUrl); String accessTokenResult = "access_token=2.0N6OFCARTH7MRCVPSENQONSA67WGHV4FDR25TSHFCCXI6FA3NRVAA----&expires=602405";
log.info("获取access_token返回结果:" + accessTokenResult); log.info("获取access_token返回结果:" + accessTokenResult);
// 返回结果:access_token=2.0N6OFCARTH7MRCVPSENQONSA67WGHV4FDR25TSHFCCXI6FA3NRVAA----&expires=602405 // 返回结果:access_token=2.0N6OFCARTH7MRCVPSENQONSA67WGHV4FDR25TSHFCCXI6FA3NRVAA----&expires=602405
if(StringUtils.isEmpty(accessTokenResult) || !accessTokenResult.contains("access_token")){ if(StringUtils.isEmpty(accessTokenResult) || !accessTokenResult.contains("access_token")){
@@ -124,10 +120,10 @@ public class SSOLoginController {
log.info("profile_url:" + getProfileUrl); log.info("profile_url:" + getProfileUrl);
Map<String, String> headerMapProfile = new HashMap<>(); Map<String, String> headerMapProfile = new HashMap<>();
headerMapProfile.put("Content-Type", "application/json; charset=utf-8"); headerMapProfile.put("Content-Type", "application/json; charset=utf-8");
String profileResult = HttpRequestUtil.getResponseOfGET(getProfileUrl, headerMapProfile); // String profileResult = HttpRequestUtil.getResponseOfGET(getProfileUrl, headerMapProfile);
// String profileResult = URLRequestResultUtil.getProxyRequestResult(getProfileUrl); String profileResult = "{ id: \"chengjun.wang.o\", attributes: [{workNo: \"\"},{account_id: \"\"},{user_name: \"chengjun.wang.o\"},{email: \"chengjun.wang.o@nio.com\"}]}";
log.info("获取profile返回结果:" + profileResult); log.info("获取profile返回结果:" + profileResult);
// 返回结果:{ id: "xuetao.li3.o", attributes: [{workNo: "CW19057"},{account_id: ""},{user_name: "xuetao.li3.o"},{email: "xuetao.li3.o@nio.com"}]} // 返回结果:{ id: "chengjun.wang.o", attributes: [{workNo: ""},{account_id: ""},{user_name: "chengjun.wang.o"},{email: "chengjun.wang.o@nio.com"}]}
JSONObject userThirdIdJson = JSONObject.parseObject(profileResult); JSONObject userThirdIdJson = JSONObject.parseObject(profileResult);
if(ObjectUtil.isEmpty(userThirdIdJson) || !userThirdIdJson.containsKey("id")){ if(ObjectUtil.isEmpty(userThirdIdJson) || !userThirdIdJson.containsKey("id")){
return Result.error("【单点登录】获取用户profile失败"); return Result.error("【单点登录】获取用户profile失败");
@@ -191,10 +191,10 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
@ApiOperation(value = "文档拆分条款信息-导入拆分结果") @ApiOperation(value = "文档拆分条款信息-导入拆分结果")
@PostMapping(value = "/importSplitResult") @PostMapping(value = "/importSplitResult")
public Result<?> importSplitResult( MultipartFile file, public Result<?> importSplitResult( String splitFileId,
String cut, String cut,
SarFileSplitInfoEO splitInfoEO) throws IOException { SarFileSplitInfoEO splitInfoEO) throws IOException {
return fileSplitItemsEOService.importSplitResult(file,cut,splitInfoEO); return fileSplitItemsEOService.importSplitResult(splitFileId, cut,splitInfoEO);
} }
@AutoLog(value = "文档拆分条款信息-导入") @AutoLog(value = "文档拆分条款信息-导入")
@@ -45,11 +45,11 @@ public interface IFileSplitItemsEOService extends IService<SarFileSplitItemsEO>
int batchSet(Map<String,Object> parameter); int batchSet(Map<String,Object> parameter);
Result<?> importSplitItemsData(List<Map<String, Object>> list, String menuId, String filepath, String infoId, List<SplitTableInfo> getSheetTableList); Result<?> importSplitItemsData(List<Map<String, Object>> list, String menuId, String filepath, String infoId, String cut, List<SplitTableInfo> getSheetTableList);
Result<?> importSplitItems(MultipartFile file, String cut, String menuId, String infoId) throws IOException; Result<?> importSplitItems(MultipartFile file, String cut, String menuId, String infoId) throws IOException;
Result<?> importSplitResult(MultipartFile file, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException; Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException;
void exportTemplate(String cut, HttpServletResponse response, HttpServletRequest request); void exportTemplate(String cut, HttpServletResponse response, HttpServletRequest request);
@@ -11,14 +11,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.IsMustEnum;
import com.jero.common.constant.enums.ModuleEnum; import com.jero.common.constant.enums.ModuleEnum;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.lanswitch.service.ILanguageSwitchService;
import com.jero.modules.ocr.util.UUIDUtils; import com.jero.modules.ocr.util.UUIDUtils;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
@@ -50,6 +51,7 @@ import com.jero.modules.system.util.UserUtils;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.common.usermodel.HyperlinkType; import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
@@ -61,10 +63,11 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -87,6 +90,7 @@ import static com.jero.modules.split.util.ExcelUtil.checkObjAllFieldsIsNull;
* @Date: Created in 14:59 2022/3/24 * @Date: Created in 14:59 2022/3/24
*/ */
@Service @Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMapper, SarFileSplitItemsEO> implements IFileSplitItemsEOService { public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMapper, SarFileSplitItemsEO> implements IFileSplitItemsEOService {
@Autowired @Autowired
private FileSplitItemsEOMapper dao; private FileSplitItemsEOMapper dao;
@@ -112,6 +116,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Value(value = "${jero.path.upload}") @Value(value = "${jero.path.upload}")
private String uploadpath; private String uploadpath;
@Value(value = "${jero.path.img}")
private String imgpath;
@Override @Override
public int addItemContent(Map<String, Object> parameter){ public int addItemContent(Map<String, Object> parameter){
@@ -673,11 +679,21 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
@Override @Override
public Result<?> importSplitItemsData(List<Map<String, Object>> list, String menuId, String filepath, String infoId, List<SplitTableInfo> getSheetTableList) { public Result<?> importSplitItemsData(List<Map<String, Object>> list,
String menuId, String filepath,
String infoId,
String cut,
List<SplitTableInfo> getSheetTableList) {
//此处需要做各种验证,数据库操作 //此处需要做各种验证,数据库操作
try { try {
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//普通数据字典
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
// 表头
List<Map<String, Object>> fieldList = getImportOnlField(ModuleEnum.FILE_SPLIT_ITEMS.getValue(),cut);
//验证导入数据是否符合规则 //验证导入数据是否符合规则
Map map = validateImportDatas(list,filepath); Map map = validateImportDatas(list,categoryList,dictItemList,fieldList,filepath,cut);
boolean isOk = (boolean) map.get("result"); boolean isOk = (boolean) map.get("result");
if (!isOk) { if (!isOk) {
//验证没有通过 //验证没有通过
@@ -703,7 +719,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
Map<String, Object> oldItems = addItemsEOList.get(addItemsEOList.size()-1); Map<String, Object> oldItems = addItemsEOList.get(addItemsEOList.size()-1);
if (itemNum > 0 && importDto.get("items_num").equals(oldItems.get("items_num")) if (itemNum > 0 && importDto.get("items_num").equals(oldItems.get("items_num"))
&& importDto.get("items_name").equals(oldItems.get("items_name"))) { && importDto.get("items_name").equals(oldItems.get("items_name"))) {
addItemValList = (List<SarFileSplitItemsValEO>) oldItems.get("itemValEOList"); // TODO addItemValList = (List<SarFileSplitItemsValEO>) oldItems.get("itemValEOList");
String itemContent = oldItems.get("iterms_conditions").toString() + importDto.get("iterms_conditions").toString(); String itemContent = oldItems.get("iterms_conditions").toString() + importDto.get("iterms_conditions").toString();
oldItems.put("iterms_conditions", itemContent); oldItems.put("iterms_conditions", itemContent);
String[] valArr = importDto.get("iterms_conditions").toString().split("\n"); String[] valArr = importDto.get("iterms_conditions").toString().split("\n");
@@ -722,13 +738,23 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]); List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]);
if (nowfilelist != null && !nowfilelist.isEmpty()) { if (nowfilelist != null && !nowfilelist.isEmpty()) {
OSSFile oSSFile = ossFileService.uploadLocal((MultipartFile) nowfilelist.get(0), "","1"); // TODO MultipartFile强转不知道会不会成功 String url = nowfilelist.get(0).getPath();
MultipartFile multipartFile = createMfileByPath(url);
String state = "0";
String fileSuffix = url.substring(url.lastIndexOf("."));
String fileTypeStr = ".doc,.DOC,.docx,.DOCX,.xls, .XLS,.xlsx,.XLSX,.pdf,.PDF";
if (fileTypeStr.contains(fileSuffix)) {
state = "1";
}
OSSFile oSSFile = ossFileService.uploadLocal(multipartFile, "",state);
if(oSSFile!=null){ if(oSSFile!=null){
oSSFile = ossFileService.getById(oSSFile.getId());
isText = false; isText = false;
String path = "uploadPath/" + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/")+1); String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/"));
String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>"; String imgCon = "<img class=\"wordImg\" src=\"" + path + "\">";
valEO.setType("IMG"); valEO.setType("IMG");
valEO.setItemContent(imgCon); // valEO.setItemContent(imgCon);
valEO.setItemContent(path);
} }
} }
if (isText) { if (isText) {
@@ -756,13 +782,23 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]); List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]);
if (nowfilelist != null && !nowfilelist.isEmpty()) { if (nowfilelist != null && !nowfilelist.isEmpty()) {
OSSFile oSSFile = ossFileService.uploadLocal((MultipartFile) nowfilelist.get(0), "","1"); // TODO MultipartFile强转不知道会不会成功 String url = nowfilelist.get(0).getPath();
MultipartFile multipartFile = createMfileByPath(url);
String state = "0";
String fileSuffix = url.substring(url.lastIndexOf("."));
String fileTypeStr = ".doc,.DOC,.docx,.DOCX,.xls, .XLS,.xlsx,.XLSX,.pdf,.PDF";
if (fileTypeStr.contains(fileSuffix)) {
state = "1";
}
OSSFile oSSFile = ossFileService.uploadLocal(multipartFile, "",state);
if(oSSFile!=null){ if(oSSFile!=null){
oSSFile = ossFileService.getById(oSSFile.getId());
isText = false; isText = false;
String path = "uploadPath/" + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/")+1); String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/"));
String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>"; String imgCon = "<img class=\"wordImg\" src=\"" + path + "\">";
valEO.setType("IMG"); valEO.setType("IMG");
valEO.setItemContent(imgCon); // valEO.setItemContent(imgCon);
valEO.setItemContent(path);
} }
} }
if (isText) { if (isText) {
@@ -792,13 +828,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]); List<File> nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]);
if (nowfilelist != null && !nowfilelist.isEmpty()) { if (nowfilelist != null && !nowfilelist.isEmpty()) {
OSSFile oSSFile = ossFileService.uploadLocal((MultipartFile) nowfilelist.get(0), "","1"); // TODO MultipartFile强转不知道会不会成功 OSSFile oSSFile = ossFileService.uploadLocal((MultipartFile) nowfilelist.get(0), "","1");
if(oSSFile!=null){ if(oSSFile!=null){
isText = false; isText = false;
String path = "uploadPath/" + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/")+1); String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/"));
String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>"; String imgCon = "<img class=\"wordImg\" src=\"" + path + "\">";
valEO.setType("IMG"); valEO.setType("IMG");
valEO.setItemContent(imgCon); // valEO.setItemContent(imgCon);
valEO.setItemContent(path);
} }
} }
if (isText) { if (isText) {
@@ -983,6 +1020,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
SplitTableInfo splitTableInfo = new SplitTableInfo(); SplitTableInfo splitTableInfo = new SplitTableInfo();
splitTableInfo.setTableName(sheet.getSheetName()); splitTableInfo.setTableName(sheet.getSheetName());
String tableHtml = POIReadExcelToHtml.readExcelToHtml(workbook,i,false); String tableHtml = POIReadExcelToHtml.readExcelToHtml(workbook,i,false);
tableHtml = tableHtml.replaceAll("\'","\"");
splitTableInfo.setTableHtml(tableHtml); splitTableInfo.setTableHtml(tableHtml);
getSheetTableList.add(splitTableInfo); getSheetTableList.add(splitTableInfo);
} }
@@ -1003,7 +1041,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
datasUpdate.add(sarStandImportDto); datasUpdate.add(sarStandImportDto);
} }
String unzipfilepath = zipEntryName; String unzipfilepath = zipEntryName;
Result<?> message = importSplitItemsData(datasUpdate,menuId,unzipfilepath,infoId,getSheetTableList); Result<?> message = importSplitItemsData(datasUpdate,menuId,unzipfilepath,infoId,cut,getSheetTableList);
//删除原上传文件 //删除原上传文件
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
return message; return message;
@@ -1033,7 +1071,10 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
@Override @Override
public Result<?> importSplitResult(MultipartFile file, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException { public Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException {
OSSFile ossFile = ossFileService.getById(splitFileId);
String url = ossFile.getUrl();
MultipartFile mFile = createMfileByPath(url);
// 新增拆分记录 // 新增拆分记录
Date now = new Date(); Date now = new Date();
String infoId = UUID.randomUUID().toString().replace("-", ""); String infoId = UUID.randomUUID().toString().replace("-", "");
@@ -1054,9 +1095,26 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
sarFileSplitMenuEO.setModifyTime(new Date()); sarFileSplitMenuEO.setModifyTime(new Date());
sarFileSplitMenuEOMapper.insertSelective(sarFileSplitMenuEO); sarFileSplitMenuEOMapper.insertSelective(sarFileSplitMenuEO);
// 导入文件 // 导入文件
return importSplitItems(file, cut, menuId, infoId); return importSplitItems(mFile, cut, menuId, infoId);
} }
private MultipartFile createMfileByPath(String path) {
MultipartFile mFile = null;
try {
File file = new File(path);
FileInputStream fileInputStream = new FileInputStream(file);
String fileName = file.getName();
fileName = fileName.substring((fileName.lastIndexOf("/") + 1));
mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
} catch (Exception e) {
log.error("封装文件出现错误:{}", e);
//e.printStackTrace();
}
return mFile;
}
private List<Map<String, Object>> read(File file, List<String> dbfieldList) { private List<Map<String, Object>> read(File file, List<String> dbfieldList) {
try { try {
//最终返回数据 //最终返回数据
@@ -1173,45 +1231,334 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
return false; return false;
} }
private Map validateImportDatas(List<Map<String, Object>> datas, String filepath) throws Exception { private Map validateImportDatas(List<Map<String, Object>> datas,
List<SysCategory> categoryList,
List<SysDictItem> dictItemList,
List<Map<String, Object>> fieldList,
String filepath,
String cut) throws Exception {
//树形数据字典
List<String> treeNameList = new ArrayList<>();
//普通数据字典
List<String> itemNameList = new ArrayList<>();
if (CutEnum.CN.getValue().equals(cut)) {
treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
} else if(CutEnum.EN.getValue().equals(cut)){
treeNameList = categoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList());
itemNameList = dictItemList.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
}
//存放数据验证结果信息 //存放数据验证结果信息
List<String> stringMessage = new ArrayList<>(); List<String> stringMessage = new ArrayList<>();
int i = 1; //记录行号 int i = 2; //记录行号
int num = 0; //记录是第几条数据 int num = 0; //记录是第几条数据
//循环验证数据 //循环验证数据
for (Map<String, Object> dto : datas) { for (Map<String, Object> dto : datas) {
i++; i++;
int countError = 0; //记录失败数据数量 int countError = 0; //记录失败数据数量
String errorMsg = "" + i + "行:"; String errorMsg = "" + i + "行:";
if (num > 0 && org.apache.commons.lang.StringUtils.isEmpty(dto.get("items_num").toString()) //判断发布日期,新车型实施日期,在产车实施日期
&& org.apache.commons.lang.StringUtils.isEmpty(dto.get("items_name").toString())) {
String nowItemContent = dto.get("iterms_conditions").toString();
BeanUtils.copyProperties(datas.get(num-1), dto);
dto.put("iterms_conditions", nowItemContent);
}
if (org.apache.commons.lang.StringUtils.isEmpty(dto.get("items_num").toString())) {
errorMsg += "条款号不能为空;";
countError++;
} else {
if (dto.get("items_num").toString().length()>100) {
errorMsg += "条款号不能超过100个字符;";
countError++;
}
}
if (org.apache.commons.lang.StringUtils.isEmpty(dto.get("items_name").toString())) {
errorMsg += "条款名称不能为空;";
countError++;
} else {
if (dto.get("items_name").toString().length()>100) {
errorMsg += "条款名称不能超过100个字符;";
countError++;
}
}
// try {
// String issueTime = (String) stringStringMap.get("issue_time");
// if(StringUtils.isNotBlank(issueTime)){
// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// Date issueTimeDate = df.parse(issueTime);
// String implementTime = (String) stringStringMap.get("implement_time");//在产车实施日期
// String newCarimplementTime = (String) stringStringMap.get("xin1_che1_xing2_ren4_zheng4_shi2_jian1");//新车型实施日期
// if(StringUtils.isNotBlank(implementTime)){
// Date implementTimeDate = df.parse(implementTime);
// if (issueTimeDate.after(implementTimeDate)) {
// errorMsg += "发布日期不能大于在产车实施日期";
// countError++;
// }
// }
// if(StringUtils.isNotBlank(newCarimplementTime)){
// Date newCarimplementTimeDate = df.parse(newCarimplementTime);
// if (issueTimeDate.after(newCarimplementTimeDate)) {
// errorMsg += "发布日期不能大于新车型实施日期";
// countError++;
// }
// }
// }
// } catch (Exception e) {
// log.error("文档库导入失败导入");
// }
for (Map.Entry<String, Object> entry : dto.entrySet()) {
String key = entry.getKey();
if (key.contains("*")) {
key = key.replace("*", "");
}
String value = entry.getValue().toString();
String field = "";
for (Map<String, Object> map : fieldList) {
String fieldName = (String) map.get("db_field_txt");//中文名称
String dbfieldName = (String) map.get("db_field_name");//字段名
String mustInput = (String) map.get("field_must_input");//是否必填
String dbLength = map.get("db_length").toString();//字段长度
String fieldShowType = (String) map.get("field_show_type");//字段类型
if (key.equals(dbfieldName)) {
field = dbfieldName;
//验证字段是否必填,长度,下拉框和树形的值是否匹配
if (FieldTypeEnum.TREE.getValue().equals(fieldShowType)) {
//树形
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += fieldName + "不能超过" + dbLength + "个字符";
countError++;
}
//判断数据是否匹配
if (StringUtils.isNotBlank(value)) {
value = value.replace("",",");
for (String valueTemp : value.split(",")) {
if (!treeNameList.contains(valueTemp)) {
errorMsg += fieldName + "中的" + valueTemp + "与数据字典不匹配";
countError++;
}
}
}
String valueId = "";
//文字转ID
if (StringUtils.isNotBlank(value)) {
value = value.replace("",",");
for (String valueTemp : value.split(",")) {
if (treeNameList.contains(valueTemp)) {
// TODO 树形结构导入格式 a/b/c 需特殊处理
List<SysCategory> collect = new ArrayList<>();
if(CutEnum.CN.getValue().equals(cut)) {
collect = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList());
} else if(CutEnum.EN.getValue().equals(cut)) {
collect = categoryList.stream().filter(e -> e.getEnName().equals(valueTemp)).collect(Collectors.toList());
}
if (collect.size() != 0) {
valueId += collect.get(0).getId();
}
}
}
value = valueId;
}
} else if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldShowType)) {
//输入框
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += fieldName + "不能超过" + dbLength + "个字符";
countError++;
}
} else if (FieldTypeEnum.TEXT_NUMBER.getValue().equals(fieldShowType)) {
//正则判断仅能为 负号(-),小数点(.)和数字
} else if (FieldTypeEnum.PULL_SINGLE.getValue().equals(fieldShowType)) {
//下拉单选
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += fieldName + "不能超过" + dbLength + "个字符";
countError++;
}
//判断是否是单选
if (StringUtils.isNotBlank(value) && value.contains(",")) {
errorMsg += fieldName + "为单选项";
countError++;
}
//判断数据是否匹配
if (StringUtils.isNotBlank(value)) {
if (!itemNameList.contains(value)) {
errorMsg += fieldName + "中的" + value + "与数据字典不匹配";
countError++;
}
}
//文字转数据字典编码
if (itemNameList.contains(value)) {
String finalValue = value;
List<SysDictItem> collect = new ArrayList<>();
if(CutEnum.CN.getValue().equals(cut)) {
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(finalValue)).collect(Collectors.toList());
} else if(CutEnum.EN.getValue().equals(cut)) {
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getEnName()) && e.getEnName().equals(finalValue)).collect(Collectors.toList());
}
if (collect.size() != 0) {
value = collect.get(0).getItemValue();
}
}
} else if (FieldTypeEnum.PULL_MORE.getValue().equals(fieldShowType)) {
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += fieldName + "不能超过" + dbLength + "个字符";
countError++;
}
//下拉多选
if (StringUtils.isNotBlank(value)) {
value = value.replace("",",");
for (String valueTemp : value.split(",")) {
if (!itemNameList.contains(valueTemp)) {
errorMsg += fieldName + "中的" + valueTemp + "与数据字典不匹配";
countError++;
}
}
}
String valueId = "";
//文字转数据字典id
if (StringUtils.isNotBlank(value)) {
value = value.replace("",",");
for (String valueTemp : value.split(",")) {
if (itemNameList.contains(valueTemp)) {
List<SysDictItem> collect = new ArrayList<>();
if(CutEnum.CN.getValue().equals(cut)) {
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
} else if(CutEnum.EN.getValue().equals(cut)) {
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getEnName()) && e.getEnName().equals(valueTemp)).collect(Collectors.toList());
}
valueId += collect.get(0).getItemValue() + ",";
}
}
if (StringUtils.isNotBlank(valueId)) {
value = valueId.substring(0, valueId.length() - 1);
}
}
} else if (FieldTypeEnum.DATE_SINGLE.getValue().equals(fieldShowType)) {
//单选日期
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//a判断是否是单日期选择
if (StringUtils.isNotBlank(value) && value.contains(",")) {
errorMsg += fieldName + "为单日期选项";
countError++;
}
//判断格式是否正确
if (!DateUtils.isValidDate((String) value)) {
errorMsg += fieldName + "格式不正确,正确格式如:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日";
countError++;
}
} else if (FieldTypeEnum.DATE_SINGLE.getValue().equals(fieldShowType)) {
//多选日期
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断格式是否正确
if (!DateUtils.isValidDate((String) value)) {
errorMsg += fieldName + "格式不正确,正确格式如:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日";
countError++;
}
} else if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) {
//文件
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += fieldName + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += fieldName + "不能超过" + dbLength + "个字符";
countError++;
}
if (StringUtils.isNotBlank(value)) {
StringBuilder sb = new StringBuilder();
value = value.replace("",",");
for (String fileName : value.split(",")) {
List<File> nowFileList = FileUnZip.readFileByFilename(filepath, fileName);
if (nowFileList.size() == 0) {
errorMsg += fieldName + "压缩包中没有" + fileName + "文件; ";
countError++;
} else {
try {
FileInputStream input = new FileInputStream(nowFileList.get(0));
MultipartFile multipartFile =
new MockMultipartFile(nowFileList.get(0).getName(), nowFileList.get(0).getName(), "text/plain", input);
//文件存入文件表
OSSFile ossFile = ossFileService.uploadLocal(multipartFile, "", null);
if (ObjectUtils.isNotEmpty(ossFile)) {
sb.append(ossFile.getId() + ",");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
if (StringUtils.isNotBlank(sb)) {
String substring = sb.substring(0, sb.length() - 1);
value = substring;
}
}
} /*else if (FieldTypeEnum.STANDARD.getValue().equals(fieldShowType)) {
//标准选择
//判断是否必填
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isBlank(value)) {
errorMsg += key + "为必填项,不能为空";
countError++;
}
//判断长度
if (StringUtils.isNotBlank(value) && value.length() > Long.parseLong(dbLength)) {
errorMsg += key + "不能超过" + dbLength + "个字符";
countError++;
}
//判断库中是否存在,如果存在则存id,如果不存在则存输入的值
List<Map<String, Object>> listBySerialNumber = getListBySerialNumber(value);
String serialNumberStr = "";
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<>();
for (Map<String, Object> stringObjectMap : listBySerialNumber) {
sb.append((String) stringObjectMap.get("id") + ",");
list.add((String) stringObjectMap.get("serial_number"));
}
if (StringUtils.isNotBlank(value)) {
for (String s : value.split(",")) {
if (!list.contains(s)) {
sb.append(s);
}
}
}
if (ObjectUtils.isNotEmpty(sb)) {
String substring = sb.toString();
if (substring.endsWith(",") || substring.endsWith("")){
substring = substring.substring(0, substring.length() - 1);
}
value = substring;
}
}*/
}
}
if((dto.get(key)== null && value != null) || (dto.get(key)!= null && !dto.get(key).toString().equals(value))){
dto.put(key, value); // 覆盖原来的值
}
}
if (countError > 0) { if (countError > 0) {
stringMessage.add(errorMsg); stringMessage.add(errorMsg);
} }
num++;
} }
Map map = new HashMap(); Map map = new HashMap();
if (stringMessage.isEmpty()) { if (stringMessage.isEmpty()) {
@@ -1711,6 +2058,46 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
return list; return list;
} }
private List<Map<String, Object>> getImportOnlField(String flag, String cut) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if (fieldList.size() != 0) {
//过滤出搜索条件()
fieldList = fieldList.stream()
.filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))
|| "条款内容".equals(e.getDbFieldName()))
.collect(Collectors.toList());
}
//树形数据字典
List<SysCategoryTreeVO> sysCategoryTree = sysCategoryService.getSysCategoryTreeByCut(cut); // 查询所有 并以树结构返回
List<Map<String, Object>> list = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
Map<String, Object> map = new HashMap<>();
if (FieldTypeEnum.TREE.getValue().equals(onlCgformField.getFieldShowType())) {
List<SysCategoryTreeVO> sysCategoryTreeVOList = sysCategoryTree.stream()
.filter(e -> onlCgformField.getDictId().equals(e.getDictId()))
.collect(Collectors.toList());
map.put("tree", sysCategoryTreeVOList); // 树形结构字段 设置树形结构字段值
} else {
map.put("tree", new ArrayList<>()); // 其他类型字段 该key为空
}
map.put("area", null);//展示区域。没用到
map.put("field_show_type", onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
map.put("field_must_input", onlCgformField.getFieldMustInput());//是否必填
map.put("dict_field", onlCgformField.getDictField()); //下拉类型的数据字典编码
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
map.put("db_length", onlCgformField.getDbLength());//字段长度
if (CutEnum.CN.getValue().equals(cut)) {
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名
} else {
map.put("db_field_txt", onlCgformField.getDbFieldEnName());//字段英文名
}
list.add(map);
}
return list;
}
/** /**
* 过滤map中的值为 null的键值对 * 过滤map中的值为 null的键值对
* @param map * @param map
@@ -20,6 +20,8 @@ import com.jero.modules.system.service.ISysDictItemService;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -31,6 +33,7 @@ import java.util.stream.Collectors;
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMapper, SarFileSplitInfoEO> implements ISarFileSplitInfoService { public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMapper, SarFileSplitInfoEO> implements ISarFileSplitInfoService {
@Autowired @Autowired
@@ -391,26 +391,26 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
// 查询该节点下所有的 子节点 并修改排序 // 查询该节点下所有的 子节点 并修改排序
SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO(); SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO();
sarMenuEO.setId(itemsMap.get("menu_id").toString()); sarMenuEO.setId(itemsMap.get("menu_id").toString());
List<SarFileSplitMenuEO> sarFileSplitMenuEOList = dao.queryAllChildrenByid(sarMenuEO); // List<SarFileSplitMenuEO> sarFileSplitMenuEOList = dao.queryAllChildrenByid(sarMenuEO);
sarMenuEO = dao.selectByPrimaryKey(sarMenuEO.getId()); // sarMenuEO = dao.selectByPrimaryKey(sarMenuEO.getId());
int maxDisplay = dao.getMaxDisplayByid(sarMenuEO.getId()); // int maxDisplay = dao.getMaxDisplayByid(sarMenuEO.getId());
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO(); // SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setDisplaySeqStart(Long.valueOf(maxDisplay + 1)); // sarFileSplitMenuEO.setDisplaySeqStart(Long.valueOf(maxDisplay + 1));
sarFileSplitMenuEO.setDisplaySeqEnd(10000L); // sarFileSplitMenuEO.setDisplaySeqEnd(10000L);
sarFileSplitMenuEO.setChildrenCount(1L); // sarFileSplitMenuEO.setChildrenCount(1L);
sarFileSplitMenuEO.setModifyUser(UserUtils.getUserId()); // sarFileSplitMenuEO.setModifyUser(UserUtils.getUserId());
sarFileSplitMenuEO.setModifyTime(new Date()); // sarFileSplitMenuEO.setModifyTime(new Date());
sarFileSplitMenuEO.setInfoId(itemsMap.get("info_id").toString()); // sarFileSplitMenuEO.setInfoId(itemsMap.get("info_id").toString());
dao.updateDisplaySeqAdd(sarFileSplitMenuEO); // dao.updateDisplaySeqAdd(sarFileSplitMenuEO);
// SAR_FILE_ITEMS_MENU 添加数据, // SAR_FILE_ITEMS_MENU 添加数据,
sarMenuEO.setId(UUID.randomUUID().toString().replace("-", "")); // sarMenuEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarMenuEO.setDisplaySeq(Long.valueOf(maxDisplay + 1)); // sarMenuEO.setDisplaySeq(Long.valueOf(maxDisplay + 1));
sarMenuEO.setCreationTime(new Date()); // sarMenuEO.setCreationTime(new Date());
sarMenuEO.setModifyTime(new Date()); // sarMenuEO.setModifyTime(new Date());
sarMenuEO.setCreationUser(UserUtils.getUserId()); // sarMenuEO.setCreationUser(UserUtils.getUserId());
sarMenuEO.setModifyUser(UserUtils.getUserId()); // sarMenuEO.setModifyUser(UserUtils.getUserId());
result = dao.insertSelective(sarMenuEO); // result = dao.insertSelective(sarMenuEO);
// SAR_FILE_ITEMS 添加数据, // SAR_FILE_ITEMS 添加数据,
String newItemId = UUID.randomUUID().toString().replace("-", ""); String newItemId = UUID.randomUUID().toString().replace("-", "");
@@ -440,29 +440,29 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
result += sarFileSplitItemsValEOMapper.insertForeach(sarFileSplitItemsValEOList); result += sarFileSplitItemsValEOMapper.insertForeach(sarFileSplitItemsValEOList);
} }
// SAR_FILE_ITEMS_PARAMS 添加数据, // SAR_FILE_ITEMS_PARAMS 添加数据,
List<SarFileSplitItemsParamsEO> sarFileSplitItemsParamsEOList = sarFileSplitItemsParamsMapper.queryItemsParamsByMenuId(oldItemIdList); // List<SarFileSplitItemsParamsEO> sarFileSplitItemsParamsEOList = sarFileSplitItemsParamsMapper.queryItemsParamsByMenuId(oldItemIdList);
for (SarFileSplitItemsParamsEO sarFileSplitItemsParamsEO : sarFileSplitItemsParamsEOList) { // for (SarFileSplitItemsParamsEO sarFileSplitItemsParamsEO : sarFileSplitItemsParamsEOList) {
sarFileSplitItemsParamsEO.setId(UUID.randomUUID().toString().replace("-", "")); // sarFileSplitItemsParamsEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarFileSplitItemsParamsEO.setItemId(newItemId); // sarFileSplitItemsParamsEO.setItemId(newItemId);
sarFileSplitItemsParamsEO.setCreationTime(new Date()); // sarFileSplitItemsParamsEO.setCreationTime(new Date());
sarFileSplitItemsParamsEO.setModifyTime(new Date()); // sarFileSplitItemsParamsEO.setModifyTime(new Date());
} // }
if (sarFileSplitItemsParamsEOList.size()>0){ // if (sarFileSplitItemsParamsEOList.size()>0){
result += sarFileSplitItemsParamsMapper.insertForeach(sarFileSplitItemsParamsEOList); // result += sarFileSplitItemsParamsMapper.insertForeach(sarFileSplitItemsParamsEOList);
} // }
// SAR_FILE_ITEMS_TABLE 添加数据, // SAR_FILE_ITEMS_TABLE 添加数据,
List<SarFileSplitItemsTableEO> sarFileSplitItemsTableEOList = sarFileSplitItemsTableEOMapper.queryItemsTableByMenuId(oldItemIdList); // List<SarFileSplitItemsTableEO> sarFileSplitItemsTableEOList = sarFileSplitItemsTableEOMapper.queryItemsTableByMenuId(oldItemIdList);
for (SarFileSplitItemsTableEO sarFileSplitItemsTableEO : sarFileSplitItemsTableEOList) { // for (SarFileSplitItemsTableEO sarFileSplitItemsTableEO : sarFileSplitItemsTableEOList) {
sarFileSplitItemsTableEO.setId(UUID.randomUUID().toString().replace("-", "")); // sarFileSplitItemsTableEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarFileSplitItemsTableEO.setItemsId(newItemId); // sarFileSplitItemsTableEO.setItemsId(newItemId);
sarFileSplitItemsTableEO.setItemsValId(itemValIdMap.get(sarFileSplitItemsTableEO.getItemsValId()).toString()); // sarFileSplitItemsTableEO.setItemsValId(itemValIdMap.get(sarFileSplitItemsTableEO.getItemsValId()).toString());
sarFileSplitItemsTableEO.setCreationTime(new Date()); // sarFileSplitItemsTableEO.setCreationTime(new Date());
sarFileSplitItemsTableEO.setModifyTime(new Date()); // sarFileSplitItemsTableEO.setModifyTime(new Date());
sarFileSplitItemsTableEO.setModifyUser(UserUtils.getUserId()); // sarFileSplitItemsTableEO.setModifyUser(UserUtils.getUserId());
} // }
if (sarFileSplitItemsTableEOList.size()>0){ // if (sarFileSplitItemsTableEOList.size()>0){
result += sarFileSplitItemsTableEOMapper.insertForeach(sarFileSplitItemsTableEOList); // result += sarFileSplitItemsTableEOMapper.insertForeach(sarFileSplitItemsTableEOList);
} // }
return result; return result;
} }
@@ -138,14 +138,14 @@ spring:
# url: jdbc:mysql://10.0.3.44:3306/jero-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai # url: jdbc:mysql://10.0.3.44:3306/jero-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
# url: jdbc:mysql://10.10.10.44:3306/laws_weilai_test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false url: jdbc:mysql://10.10.10.44:3306/laws_weilai_test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
# username: root username: root
# password: 123456 password: 123456
# driver-class-name: com.mysql.cj.jdbc.Driver # driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://121.36.69.172:3307/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false # url: jdbc:mysql://121.36.69.172:3307/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
url: jdbc:mysql://121.36.69.172:3307/laws_weilai_zhn?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai # url: jdbc:mysql://121.36.69.172:3307/laws_weilai_zhn?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root # username: root
password: hzwlsoft.com # password: hzwlsoft.com
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
# 多数据源配置 # 多数据源配置
#multi-datasource1: #multi-datasource1:
@@ -193,6 +193,7 @@ jero :
path : path :
#文件上传根目录 设置 #文件上传根目录 设置
upload: D://opt//upFiles upload: D://opt//upFiles
img: D://opt//upFiles
#webapp文件路径 #webapp文件路径
webapp: D://opt//webapp webapp: D://opt//webapp
shiro: shiro:
@@ -381,4 +382,9 @@ Feishu:
local-tool: local-tool:
uri: http://139.9.235.66:9022 uri: http://139.9.235.66:9022
opensso: opensso:
redirectUri: http%3A%2F%2F139.9.235.66%3A8008%2Fjero-boot%2Fopensso%2Fcallback # TEST版
accessTokenUrl: https://signin-test.nio.com/oauth2/accessToken
profileUrl: https://signin-test.nio.com/oauth2/profile
clientId: 100679
clientSecret: CDf2D9404C6ac1B0f7c3e3845ae0282a
redirectUri: http%3A%2F%2F139.9.235.66%3A8010