Merge remote-tracking branch 'origin/dev_20230216' into dev_20230216

This commit is contained in:
SUNJIABIN
2023-03-07 15:38:01 +08:00
19 changed files with 789 additions and 82 deletions
@@ -58,7 +58,7 @@ public class ReplyController extends BaseController<Reply> {
return Result.error("-1","添加失败");
}
}
@PostMapping("/updateReply")
//@PostMapping("/updateReply")
public ResponseMessage updateReply(String id){
if(StringUtils.isEmpty(id)){
return Result.error("-1","请选择要归档的回答");
@@ -78,4 +78,16 @@ public class ReplyController extends BaseController<Reply> {
public ResponseMessage updateReply(@RequestBody ReplyPage reply){
return Result.success(replyService.listByPage(reply));
}
@PostMapping("/updateReply")
public ResponseMessage updateReplyInfo(@RequestBody List<Reply> replyList){
if (replyList.isEmpty()){
return Result.error("-1","编辑失败",null);
}
for(Reply reply: replyList){
reply.setState("yes");
}
replyService.updateBatchById(replyList);
return Result.success("200","编辑成功",null);
}
}
@@ -67,6 +67,14 @@ public class SarBussStandAttrInfo extends BaseEntity {
@TableField(exist = false)
private String glwj;
@ApiModelProperty(value = "译文件")
@TableField("TRANSLATION")
private String translation;
@ApiModelProperty(value = "原文件")
@TableField("FBGBUSS")
private String fbgbuss;
//
// @TableField("SVPPS")
// private String svpps;
@@ -416,6 +416,10 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
}
}
@ApiOperation(value = "|SarBussionessStand|清空附件 重新挂靠")
@GetMapping("/emptyFileAnewStorage")
public ResponseMessage emptyFileAnewStorage (){
return sarBussionessStandEOService.emptyFileAnewStorage();
}
}
@@ -1,5 +1,6 @@
package com.adc.da.slrs.sarBussionessStand.dao;
import com.adc.da.slrs.sarBussionessStand.entity.OldSystem;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStandExport;
import com.adc.da.slrs.sarStandardsInfo.entity.RecommendVO;
@@ -119,5 +120,7 @@ public interface SarBussionessStandDao extends BaseMapper<SarBussionessStand> {
void importSarBussionessStand(SarBussionessStand sarBussionessStands);
List<OldSystem> selectListInfo();
}
@@ -0,0 +1,33 @@
package com.adc.da.slrs.sarBussionessStand.entity;
import lombok.Data;
@Data
public class OldSystem {
//kmpro_addon34 与 buss_id 对应
private String loreDocId;
//lore_depot_sort
private String sortId;
//lore_attache
private String fileSign;
//lore_attache
private String fileSrc;
//lore_depot_sort
private String sortSign;
//新系统返回数据所需要的
private String attfid;
private String standId;
private String buildId;
// 需要组合的数据
private String attFileId;
private String original;
private String Translation;
}
@@ -55,8 +55,9 @@ public interface ISarBussionessStandService extends IService<SarBussionessStand>
void convertDocAllQB(List<SarBussStandFile> list);
void checkFileByEncrypt();
ResponseMessage emptyFileAnewStorage();
//导入
ResponseMessage<SarBussionessStand> importSarBussionessStandFile(MultipartFile file) throws Exception;
ResponseMessage<SarBussionessStand> importSarBussionessStandFile(MultipartFile file);
}
@@ -41,6 +41,7 @@ import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn;
import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService;
import com.adc.da.slrs.sarBussStandVal.dao.SarBussStandValDao;
import com.adc.da.slrs.sarBussStandVal.entity.SarBussStandVal;
import com.adc.da.slrs.sarBussionessStand.entity.OldSystem;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStandExport;
@@ -55,6 +56,7 @@ import com.adc.da.slrs.sarMenuStandard.service.ISarMenuStandardNewService;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao;
import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo;
import com.adc.da.slrs.sarStandFile.entity.SarStandFile;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao;
@@ -229,6 +231,9 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Autowired
private ISarBussStandAttrInfoService sarBussStandAttrInfoService;
@Autowired
private SarStandardsInfoDao sarStandardsInfoDao;
@Override
public SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId){
@@ -2003,7 +2008,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
* @throws Exception
*/
@Override
public ResponseMessage<SarBussionessStand> importSarBussionessStandFile(MultipartFile file) throws Exception {
public ResponseMessage<SarBussionessStand> importSarBussionessStandFile(MultipartFile file) {
//给出头部信息
String[] headerExcel = {"企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,废止日期,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,上传时间,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--乘用车vpps中文名称,关联模块--卡车VPPS编码,关联模块--卡车vpps中文名称,附件,企标类型,标准年份,"};
@@ -2028,7 +2033,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
saveDirectory.mkdir();
}
//将文件写入到指定路径中
FileUtils.copyInputStreamToFile(file.getInputStream(),new File(path + "/" + fileNameStr));
//FileUtils.copyInputStreamToFile(file.getInputStream(),new File(path + "/" + fileNameStr));
try {
//解压缩
String zipEntryName = FileUnZip.unZipFiles(path + "/" + fileNameStr, path);
@@ -2714,6 +2719,210 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
row.setAttrInfoMap(getAttrMap);
}
}
/*
//1:数据迁移方案
//方案一:清空附件 重新挂靠
//1.流程:
//a.备份并清空新系统中标准下附件
//识别老系统中原文标签下标准对应新系统标准数据
//b.将老系统中原文附件迁移至新系统存储空间,涉及到文件的复制和转码(其中转码失败率比较高,需要一定时间)
//c.对应的文件路径储存在新系统数据库中,并且对应挂靠新系统中标准的发布稿原文下
//d.搜索中心的刷新
//
//2.关联关系
//新系统中数据表sar_standards_info表的BUILD_ID字段,对应老系统中数据表kmpro_addon34表的lore_doc_id字段
//
//老系统中
//kmpro_addon34表,记录所有标准信息
//lore_depot_sort 表中Sign字段可以看出是原文或译文
//lore_attache表中记录附件名称和路径
//
//新系统中
//sar_standards_info表,记录所有海外标准信息
//sar_buss_stand_attr_info表,记录标准对应附件(目前只有发布稿原文的字段,没有发布稿译文的存储字段。。)
//att_file_01——att_file_10表,记录附件对应存储位置
//
:
*/
@Override
public ResponseMessage emptyFileAnewStorage() {
//1 查询 新系统的所有数据 其中包含为 国内 海外 获取到 DUILD_Id 字段用来对比
List<OldSystem> SarBussionessStandList = sarBussionessStandEODao.selectListInfo();
List<OldSystem> SarStandardsInfoList = sarStandardsInfoDao.selectListInfo();
// 获取 kmpro_addon34 表的 lore_doc_id
List<OldSystem> oldSystemInfoList = sarStandardsInfoDao.selectOldSystemInfo();
//组合数据
List<OldSystem> oldArr = new ArrayList();
List<OldSystem> oldInfoArr = new ArrayList();
//文件id
List<String> fileIdList = new ArrayList<>();
//文件路径
List<String> fileSrcList = new ArrayList<>();
//国内海外
for (OldSystem oldSystem: oldSystemInfoList){
for (OldSystem SarStandardsInfo: SarStandardsInfoList){
//lore_doc_id 与 DUILD_Id
if(StringUtils.isNotBlank(SarStandardsInfo.getBuildId())){
if(oldSystem.getLoreDocId().equals(SarStandardsInfo.getBuildId())){
//查询文件是否是多个 是否存在
List<OldSystem> fileList = sarStandardsInfoDao.OldSystemFile(oldSystem.getLoreDocId());
if(!fileList.isEmpty()){
if(fileList.size()==1){
//判断文件是否存在 重新存入文件 获取id 存入att 表
OldSystem old = new OldSystem();
File file = new File(fileList.get(0).getFileSrc());
AttFileVo attFileVo = attFileEOService.saveFileInfo(file);
//文件id 和数据id
if(attFileVo != null) {
fileIdList.add(attFileVo.getId());
fileSrcList.add(fileList.get(0).getFileSrc());
old.setStandId(SarStandardsInfo.getStandId());
old.setSortSign(SarStandardsInfo.getSortSign());
//判断存入原本版本 还是译文版本
if (SarStandardsInfo.getSortSign().contains("")) {
old.setTranslation(attFileVo.getId());
} else {
old.setOriginal(attFileVo.getId());
}
oldArr.add(old);
}
}else {
String yuan = "";
String yi = "";
OldSystem old = new OldSystem();
//每一个文件 都是一个英文版 或者译文版
// 如果每一个文件是 那我必然不能 这样子拼接
// 应该是先判断他是 英文版 还是译文版 然后再 去拼接
for (OldSystem src:fileList){
File file = new File(src.getFileSrc());
AttFileVo attFileVo = attFileEOService.saveFileInfo(file);
if(attFileVo != null) {
if (SarStandardsInfo.getSortSign().contains("")) {
if (StringUtils.isNotBlank(yi)) {
yi = "," + attFileVo.getId();
} else {
yi = attFileVo.getId();
}
if (StringUtils.isNotBlank(yi)) {
old.setTranslation(yi);
}
} else {
if (StringUtils.isNotBlank(yuan)) {
yuan = "," + attFileVo.getId();
} else {
yuan = attFileVo.getId();
}
if (StringUtils.isNotBlank(yuan)) {
old.setOriginal(yuan);
}
}
fileSrcList.add(src.getFileSrc());
fileIdList.add(attFileVo.getId());
}
}
old.setStandId(SarStandardsInfo.getStandId());
oldArr.add(old);
}
}
}
}
}
}
// 企业
for (OldSystem oldSystem: oldSystemInfoList){
for (OldSystem sarBussionessStand: SarBussionessStandList){
//lore_doc_id 与 DUILD_Id
if(StringUtils.isNotBlank(sarBussionessStand.getBuildId())){
if(oldSystem.getLoreDocId().equals(sarBussionessStand.getBuildId())){
//查询文件是否是多个 是否存在
List<OldSystem> fileList = sarStandardsInfoDao.OldSystemFile(oldSystem.getLoreDocId());
if(!fileList.isEmpty()){
if(fileList.size()==1){
//判断文件是否存在 重新存入文件 获取id 存入att 表
OldSystem old = new OldSystem();
File file = new File(fileList.get(0).getFileSrc());
AttFileVo attFileVo = attFileEOService.saveFileInfo(file);
//文件id 和数据id
if(attFileVo != null) {
fileIdList.add(attFileVo.getId());
fileSrcList.add(fileList.get(0).getFileSrc());
old.setStandId(sarBussionessStand.getStandId());
old.setSortSign(sarBussionessStand.getSortSign());
//判断存入原本版本 还是译文版本
if (sarBussionessStand.getSortSign().contains("")) {
old.setTranslation(attFileVo.getId());
} else {
old.setOriginal(attFileVo.getId());
}
oldInfoArr.add(old);
}
}else {
String yuan = "";
String yi = "";
OldSystem old = new OldSystem();
for (OldSystem src:fileList) {
File file = new File(src.getFileSrc());
AttFileVo attFileVo = attFileEOService.saveFileInfo(file);
if (attFileVo != null) {
if (sarBussionessStand.getSortSign().contains("")) {
if (StringUtils.isNotBlank(yi)) {
yi = "," + attFileVo.getId();
} else {
yi = attFileVo.getId();
}
old.setTranslation(yi);
} else {
if (StringUtils.isNotBlank(yuan)) {
yuan = "," + attFileVo.getId();
} else {
yuan = attFileVo.getId();
}
old.setOriginal(yuan);
}
fileSrcList.add(src.getFileSrc());
fileIdList.add(attFileVo.getId());
}
}
old.setStandId(sarBussionessStand.getStandId());
oldInfoArr.add(old);
}
}
}
}
}
}
// 获取完整数据以后 数据库 增加字段, 然后区分是否是译文 原文 然后 进行保存 通过 id 可以找到对应的数据
// 企业
for(OldSystem data : oldInfoArr) {
SarBussStandAttrInfo sarBussStandAttrInfo = new SarBussStandAttrInfo();
String id = sarBussStandAttrInfoEODao.selectFieldValByStandId("id", data.getStandId());
if(StringUtils.isNotBlank(id)) {
sarBussStandAttrInfo.setId(id);
sarBussStandAttrInfo.setFbgbuss(data.getOriginal());
sarBussStandAttrInfo.setTranslation(data.getTranslation());
}
sarBussStandAttrInfoEODao.updateById(sarBussStandAttrInfo);
}
//海外 国内
for(OldSystem data : oldInfoArr) {
SarStandAttrInfo sarStandAttrInfo = new SarStandAttrInfo();
String id = sarStandAttrInfoEODao.selectFieldValByStandId("id", data.getStandId());
if(StringUtils.isNotBlank(id)) {
sarStandAttrInfo.setId(id);
sarStandAttrInfo.setFbgbjbd(data.getOriginal());
sarStandAttrInfo.setTranslation(data.getTranslation());
}
sarStandAttrInfoEODao.updateById(sarStandAttrInfo);
}
//文件删除
// for (String s : fileSrcList){
// File file = new File(s);
// file.delete();
// }
return Result.success();
}
}
@@ -238,5 +238,9 @@ public class SarStandAttrInfo extends BaseEntity {
@TableField("BDTBZH")
private String bdtbzh;
@ApiModelProperty(value = "译文件")
@TableField("TRANSLATION")
private String translation;
}
@@ -0,0 +1,81 @@
package com.adc.da.slrs.sarStandTranslate.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.adc.da.slrs.sarStandTranslate.entity.SarStandTranslate;
import com.adc.da.slrs.sarStandTranslate.service.SarStandTranslateService;
import com.adc.da.util.UUIDUtils;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author gjb
* @since 2023/2/23
*/
@RestController
@Api(tags = "流程中心-标准需求(翻译)申请流程")
@RequestMapping("/${restPath}/sarStandTranslate")
@Slf4j
public class SarStandTranslateController extends BaseController<SarStandTranslate> {
@Autowired
private SarStandTranslateService sarStandTranslateService;
/**
* 流程中心,标准需求翻译申请 发起
* @param
* @return
*/
@PostMapping("/addSarStandTranslate")
public ResponseMessage addSarStandTranslate(@RequestBody SarStandTranslate sarStandTranslate){
sarStandTranslate.setId(UUIDUtils.randomUUID20());
if(sarStandTranslateService.save(sarStandTranslate)){
return Result.success("200","添加成功",sarStandTranslate);
}else {
return Result.error("-1","添加失败",null);
}
}
/**
* 流程中心,标准需求翻译审核 回填
* @param
* @return
*/
@PostMapping("/selectSarStandTranslate")
public ResponseMessage selectSarStandTranslate(String id){
SarStandTranslate byId = sarStandTranslateService.getById(id);
if(byId!=null){
return Result.success("200",null,byId);
}else {
return Result.error("-1","失败",null);
}
}
/**
* 流程中心,标准需求翻译申请 审核
* @param
* @return
*/
@PostMapping("/updateSarStandTranslate")
public ResponseMessage updateSarStandTranslate(@RequestBody SarStandTranslate sarStandTranslate){
if(sarStandTranslateService.updateById(sarStandTranslate)){
return Result.success("200","成功",sarStandTranslate);
}else {
return Result.error("-1","失败",null);
}
}
}
@@ -0,0 +1,15 @@
package com.adc.da.slrs.sarStandTranslate.dao;
import com.adc.da.slrs.sarStandTranslate.entity.SarStandTranslate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author gjb
* @since 2023-02-23
*/
public interface SarStandTranslateDao extends BaseMapper<SarStandTranslate> {
}
@@ -1,4 +1,104 @@
package com.adc.da.slrs.sarStandTranslate.entity;
public class SarStandTranslate {
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
* 标准需求翻译申请表
* @author gjb
* @since 2023-02-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="SarStandTranslate对象", description="")
public class SarStandTranslate extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
@ApiModelProperty(value = "申请人")
@TableField("PRORPSER_NAME")
private String proposerName;
@ApiModelProperty(value = "申请单位")
@TableField("PRORPSER_UNIT")
private String proposerUnit;
// @ApiModelProperty(value = "联系电话")
// @TableField("PHONE")
// private String phone;
//
// @ApiModelProperty(value = "邮箱")
// @TableField("MAIL")
// private String mail;
@ApiModelProperty(value = "类型")
@TableField("TYPE")
private String type;
@ApiModelProperty(value = "标准编号")
@TableField("STAND_NUMBER")
private String standNumber;
@ApiModelProperty(value = "标准名称")
@TableField("STAND_NAME")
private String standName;
@ApiModelProperty(value = "需求时间")
@TableField("NEED_TIME")
private String needTime;
@ApiModelProperty(value = "页数/字数")
@TableField("NUMBER_WORDS")
private String numberWords;
@ApiModelProperty(value = "原语言")
@TableField("INITIAL_LANGUAGE")
private String initialLanguage;
@ApiModelProperty(value = "目标语言")
@TableField("GOAL_LANGUAGE")
private String goalLanguage;
@ApiModelProperty(value = "费用出资项目目的项目名称")
@TableField("COST_GOAL_PROECT_NAME")
private String costGoalProectName;
@ApiModelProperty(value = "费用出资项目目的项目编号科目")
@TableField("COST_GOAL_PROECT_NUMBER")
private String costGoalProectNumber;
@ApiModelProperty(value = "是否批准")
@TableField("RATIFY")
private String ratify;
@ApiModelProperty(value = "申请理由")
@TableField("REASON")
private String reason;
@ApiModelProperty(value = "驳回理由")
@TableField("NOT_REASON")
private String notReason;
@ApiModelProperty(value = "费用")
@TableField("COST")
private String cost;
@ApiModelProperty(value = "审核人")
@TableField("AUDIT")
private String audit;
}
@@ -0,0 +1,7 @@
package com.adc.da.slrs.sarStandTranslate.service;
import com.adc.da.slrs.sarStandTranslate.entity.SarStandTranslate;
import com.baomidou.mybatisplus.extension.service.IService;
public interface SarStandTranslateService extends IService<SarStandTranslate> {
}
@@ -0,0 +1,19 @@
package com.adc.da.slrs.sarStandTranslate.service.impl;
import com.adc.da.slrs.sarStandTranslate.dao.SarStandTranslateDao;
import com.adc.da.slrs.sarStandTranslate.entity.SarStandTranslate;
import com.adc.da.slrs.sarStandTranslate.service.SarStandTranslateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class SarStandTranslateServiceImpl extends ServiceImpl<SarStandTranslateDao, SarStandTranslate> implements SarStandTranslateService {
@Autowired
private SarStandTranslateDao sarStandTranslateDao;
}
@@ -1,5 +1,6 @@
package com.adc.da.slrs.sarStandardsInfo.dao;
import com.adc.da.slrs.sarBussionessStand.entity.OldSystem;
import com.adc.da.slrs.sarStandardsInfo.entity.DSarStandardDTO;
import com.adc.da.slrs.sarStandardsInfo.entity.RecommendVO;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
@@ -99,4 +100,9 @@ public interface SarStandardsInfoDao extends BaseMapper<SarStandardsInfo> {
List<DSarStandardDTO> dealWithDS(@Param("type") String standType, @Param("status")List<String> strings);
List<OldSystem> selectOldSystemInfo();
List<OldSystem> selectListInfo();
List<OldSystem> OldSystemFile(@Param("loreDocId") String loreDocId);
}