diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java index da5ea5114..cfffca2e5 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java @@ -1,6 +1,7 @@ package com.jero.modules.cert.template.controller; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -233,7 +234,8 @@ public class ParamsInfoEOController extends JeroController selectListByNioNumber(@Param("nioNumber") String nioNumber); + List selectListByNioNumberAndTemplateId(@Param("nioNumber") String nioNumber, @Param("paramsTemplateId") String paramsTemplateId); List selectListByParamsTemplateIds(@Param("paramsTemplateIds") String paramsTemplateIds); - int deleteByNioNumberList(@Param("list") List nioNumberList); + int deleteByNioNumberListAndTemplateId(@Param("list") List nioNumberList, @Param("paramsTemplateId") String paramsTemplateId); int deleteByParamsTemplateIds(@Param("paramsTemplateIds") String paramsTemplateIds); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/CertCategoryParamsInfoEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/CertCategoryParamsInfoEOMapper.xml index 6c71449cc..7f36a2bb6 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/CertCategoryParamsInfoEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/CertCategoryParamsInfoEOMapper.xml @@ -16,10 +16,11 @@ - select * from cert_category_params_info - where nio_number in + where params_template_id = #{paramsTemplateId} + and nio_number in #{item} @@ -34,9 +35,10 @@ - + delete from cert_category_params_info - where nio_number in + where params_template_id = #{paramsTemplateId} + and nio_number in #{nioNumber} diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/ICertCategoryParamsInfoEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/ICertCategoryParamsInfoEOService.java index 93d2eed83..c0818af0d 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/ICertCategoryParamsInfoEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/ICertCategoryParamsInfoEOService.java @@ -1,8 +1,7 @@ package com.jero.modules.cert.template.service; -import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; import com.baomidou.mybatisplus.extension.service.IService; -import org.apache.ibatis.annotations.Param; +import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; import java.util.List; @@ -61,11 +60,11 @@ public interface ICertCategoryParamsInfoEOService extends IService queryList(); - List selectListByNioNumber(String nioNumber); + List selectListByNioNumber(String nioNumber, String paramsTemplateId); List selectListByParamsTemplateIds(String paramsTemplateIds); - int deleteByNioNumberList(List nioNumberList); + int deleteByNioNumberList(List nioNumberList, String paramsTemplateId); int deleteByParamsTemplateIds(String paramsTemplateIds); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/CertCategoryParamsInfoEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/CertCategoryParamsInfoEOServiceImpl.java index 0ca3caeda..38c84bfd6 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/CertCategoryParamsInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/CertCategoryParamsInfoEOServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; import com.jero.modules.cert.template.mapper.CertCategoryParamsInfoEOMapper; import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; @@ -18,6 +19,8 @@ import java.util.List; @Service public class CertCategoryParamsInfoEOServiceImpl extends ServiceImpl implements ICertCategoryParamsInfoEOService { + @Autowired + private CertCategoryParamsInfoEOMapper certCategoryParamsInfoEOMapper; /** * 保存 * @@ -89,22 +92,22 @@ public class CertCategoryParamsInfoEOServiceImpl extends ServiceImpl selectListByNioNumber(String nioNumber) { - return baseMapper.selectListByNioNumber(nioNumber); + public List selectListByNioNumber(String nioNumber, String paramsTemplateId) { + return certCategoryParamsInfoEOMapper.selectListByNioNumberAndTemplateId(nioNumber, paramsTemplateId); } @Override public List selectListByParamsTemplateIds(String paramsTemplateIds) { - return baseMapper.selectListByParamsTemplateIds(paramsTemplateIds); + return certCategoryParamsInfoEOMapper.selectListByParamsTemplateIds(paramsTemplateIds); } @Override - public int deleteByNioNumberList(List nioNumberList) { - return baseMapper.deleteByNioNumberList(nioNumberList); + public int deleteByNioNumberList(List nioNumberList, String paramsTemplateId) { + return certCategoryParamsInfoEOMapper.deleteByNioNumberListAndTemplateId(nioNumberList, paramsTemplateId); } @Override public int deleteByParamsTemplateIds(String paramsTemplateIds) { - return baseMapper.deleteByParamsTemplateIds(paramsTemplateIds); + return certCategoryParamsInfoEOMapper.deleteByParamsTemplateIds(paramsTemplateIds); } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java index 7869fc4b8..784f30a38 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java @@ -69,6 +69,8 @@ import static com.jero.modules.split.util.ExcelUtil.checkObjAllFieldsIsNull; @Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) public class ParamsInfoEOServiceImpl extends ServiceImpl implements IParamsInfoEOService { + @Autowired + private ParamsInfoEOMapper paramsInfoEOMapper; @Autowired private ICertCategoryParamsInfoEOService certCategoryParamsInfoEOService; @@ -160,7 +162,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl certCategoryParamsInfoEOList = paramsInfoEO.getCertCategoryParamsInfoEOList(); @@ -195,7 +197,8 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOList = list(queryWrapper); if (CollectionUtil.isNotEmpty(paramsInfoEOList)) { + String paramsTemplateId = paramsInfoEOList.get(0).getParamsTemplateId(); List nioNumberList = paramsInfoEOList.stream().map(ParamsInfoEO::getNioNumber).collect(Collectors.toList()); // 关联删除认证类别参数项 - certCategoryParamsInfoEOService.deleteByNioNumberList(nioNumberList); + certCategoryParamsInfoEOService.deleteByNioNumberList(nioNumberList, paramsTemplateId); // TODO 关联删除附件模板文件信息和文件 } @@ -231,7 +235,15 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(paramsInfoEO.getNioNumber()); + List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(paramsInfoEO.getNioNumber(), paramsInfoEO.getParamsTemplateId()); + + // 认证类别 数据字典 map + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + Map certCategoryMap = sysDictItemList.stream().collect(Collectors.toMap(c->c.getItemValue(), c->c.getItemText())); + + for (CertCategoryParamsInfoEO certCategoryParamsInfoEO : certCategoryParamsInfoEOList) { + certCategoryParamsInfoEO.setCertCategory_dictText(certCategoryMap.get(certCategoryParamsInfoEO.getCertCategory())); + } paramsInfoEO.setCertCategoryParamsInfoEOList(certCategoryParamsInfoEOList); return paramsInfoEO; } @@ -345,20 +357,21 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOList = baseMapper.selectListWithCert(paramsInfoVO); // 中文数据导出 + List paramsInfoEOList = paramsInfoEOMapper.selectListWithCert(paramsInfoVO); // 中文数据导出 getTreeDictItemText(paramsInfoEOList, cut); List> sheetsList = new ArrayList<>(); - sheetsList = getCnExportSheetsList(paramsInfoEOList, fileNowPath); + sheetsList = getCnExportSheetsList(paramsInfoEOList, fileNowPath, paramsTemplateId); workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); } else if (CutEnum.EN.getValue().equals(cut)) { // 查询导出数据 - List paramsInfoEnExportList = baseMapper.selectListWithCertForEnExport(paramsInfoVO); // 英文数据导出 + List paramsInfoEnExportList = paramsInfoEOMapper.selectListWithCertForEnExport(paramsInfoVO); // 英文数据导出 getTreeDictItemTextForEnExport(paramsInfoEnExportList); List> sheetsList = new ArrayList<>(); - sheetsList = getEnExportSheetsList(paramsInfoEnExportList, fileNowPath); + sheetsList = getEnExportSheetsList(paramsInfoEnExportList, fileNowPath, paramsTemplateId); workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); } @@ -391,7 +404,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl> getCnExportSheetsList(List paramsInfoEOList, String fileNowPath) throws IOException { + private List> getCnExportSheetsList(List paramsInfoEOList, String fileNowPath, String paramsTemplateId) throws IOException { if (CollectionUtil.isEmpty(paramsInfoEOList)) { throw new JeroBootException("没有可导出的数据"); @@ -411,7 +424,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl nioNumber = paramsInfoEOList.stream().map(ParamsInfoEO::getNioNumber).collect(Collectors.toList()); - List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ",")); + List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ","),paramsTemplateId); List certCategoryNameList = new ArrayList<>(); Map certCategoryMap = new HashMap<>(); if (CollectionUtil.isNotEmpty(certCategoryParamsInfoEOList)) { @@ -478,7 +491,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl> getEnExportSheetsList(List paramsInfoEnExportList, String fileNowPath) throws IOException { + private List> getEnExportSheetsList(List paramsInfoEnExportList, String fileNowPath, String paramsTemplateId) throws IOException { if (CollectionUtil.isEmpty(paramsInfoEnExportList)) { throw new JeroBootException("没有可导出的数据"); @@ -498,7 +511,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl nioNumber = paramsInfoEnExportList.stream().map(ParamsInfoEnExport::getNioNumber).collect(Collectors.toList()); - List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ",")); + List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ","),paramsTemplateId); List certCategoryNameList = new ArrayList<>(); Map certCategoryMap = new HashMap<>(); if (CollectionUtil.isNotEmpty(certCategoryParamsInfoEOList)) { @@ -798,17 +811,21 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl updateFileList = new ArrayList<>(); - for (int i=0; i updateFileList = new ArrayList<>(); + for (int i = 0; i < fileIdList.length; i++) { + OSSFile ossFile = new OSSFile(); + ossFile.setId(fileIdList[i]); + ossFile.setConnectId(connectId); + updateFileList.add(ossFile); + } + ossFileService.updateBatchById(updateFileList); + importDto.setFileTemplateConnectId(connectId); } - ossFileService.updateBatchById(updateFileList); - importDto.setFileTemplateConnectId(connectId); + ParamsInfoEO target = new ParamsInfoEO(); BeanUtils.copyProperties(importDto, target); target.setId(UUID.randomUUID().toString().replace("-","")); @@ -1314,11 +1331,11 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl selectListByParamsTemplateIds(String paramsTemplateIds) { - return baseMapper.selectListByParamsTemplateIds(paramsTemplateIds); + return paramsInfoEOMapper.selectListByParamsTemplateIds(paramsTemplateIds); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 25f53f5c9..6d0d6e35f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -2363,7 +2363,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl userIdList, String content, String contentInfo) { + public SysAnnouncement getSysAnnouncement(List userIdList, String content, String contentInfo) { SysAnnouncement sysAnnouncement = new SysAnnouncement(); sysAnnouncement.setDelFlag("0"); sysAnnouncement.setSendStatus("0"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyReadEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyReadEOService.java index 9937f66b0..0cfb5b9bc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyReadEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyReadEOService.java @@ -1,7 +1,8 @@ package com.jero.modules.dummy.service; -import com.jero.modules.dummy.entity.DummyReadEO; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.dummy.entity.DummyReadEO; + import java.util.List; /** @@ -18,7 +19,7 @@ public interface IDummyReadEOService extends IService { * @param dummyReadEO * @return */ - void add(DummyReadEO dummyReadEO); + void add(DummyReadEO dummyReadEO); /** * 更新 @@ -26,7 +27,7 @@ public interface IDummyReadEOService extends IService { * @param dummyReadEO * @return */ - void editById(DummyReadEO dummyReadEO); + void editById(DummyReadEO dummyReadEO); /** * 通过id删除 @@ -34,7 +35,7 @@ public interface IDummyReadEOService extends IService { * @param id * @return */ - void deleteById(String id); + void deleteById(String id); /** * 批量删除 @@ -42,7 +43,7 @@ public interface IDummyReadEOService extends IService { * @param ids * @return */ - void deleteByIds(List ids); + void deleteByIds(List ids); /** * 通过id查询 @@ -50,12 +51,16 @@ public interface IDummyReadEOService extends IService { * @param id * @return */ - DummyReadEO queryById(String id); + DummyReadEO queryById(String id); - /** + /** * 列表查询 * * @return */ - List queryList(); + List queryList(); + + + /**查询订阅虚拟清单的用户*/ + List queryReadUserInfo(String dummyInventoryBaseId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java index c2dce9736..c74e3b024 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java @@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; +import com.jero.modules.domain.service.DomainUserRelService; import com.jero.modules.dummy.entity.DummyContentChangeEO; import com.jero.modules.dummy.entity.DummyInventoryBaseEO; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; @@ -19,16 +22,23 @@ import com.jero.modules.dummy.service.IDummyInventoryBaseEOService; import com.jero.modules.dummy.service.IDummyInventoryInfoEOService; import com.jero.modules.dummy.service.IDummyReadEOService; import com.jero.modules.dummy.util.ListDiff; +import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.message.websocket.WebSocket; +import com.jero.modules.system.entity.SysAnnouncement; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysAnnouncementService; import com.jero.modules.system.service.ISysUserService; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import javax.annotation.Resource; +import java.io.IOException; +import java.util.*; import java.util.stream.Collectors; /** @@ -50,8 +60,18 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl发消息,删除dummy_content_change中上一次存入的数据,将本次数据存入 //没有变化-->不发消息,数据不处理 @@ -257,7 +277,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl infoDiff = null; + List> infoDiffList=null; + String addSerialNumber=null; + String deleteSerialNumber=null; + List addSerialNumberList =null; + List deleteSerialNumberList =null; + //对比,获取值不同的字段 + for(DummyContentChangeEO dummyContentChangeEO : dummyContentChangeEOInfoList) { String infoCJ = dummyContentChangeEO.getContentJson(); - List infoCJList = JSONArray.parseArray(infoCJ,DummyInventoryInfoEO.class);//json转list - //对比,获取值不同的字段 - Map infoDiff = null; - if(infoCJList.size()==dummyInventoryInfoEOList.size()) {//现在的详情数据数量和数据库里的一样 - for (int i = 0; i < infoCJList.size(); i++) { - DummyInventoryInfoEO h = infoCJList.get(i); - DummyInventoryInfoEO g = dummyInventoryInfoEOList.get(i); - infoDiff = ListDiff.compareObject(infoCJList.get(i), dummyInventoryInfoEOList.get(i)); - System.out.println(infoDiff);//不同的字段原,现 - } - }else{//现在的详情数据数量和数据库里的不一样<--详情的id不一样 - String diffId=null; - StringBuilder diffIdBuilder=new StringBuilder(); - for(DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) { - diffId = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId())) - .map(f->f.getId()).collect(Collectors.joining(",")); - diffIdBuilder.append(diffId).append(","); - - } - diffIdBuilder.substring(0,diffIdBuilder.toString().length()-1); + List infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list + //获取数据库和传入同时存在的编号 + List infoCJBaseSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); + List dummyInventoryInfoEOSerialNumberList = dummyInventoryInfoEOList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(dummyInventoryInfoEOSerialNumberList)) { + dummyInventoryInfoEOSerialNumberList.removeIf(s -> !infoCJBaseSerialNumberList.contains(s)); } - System.out.println(infoCJList); + System.out.println(dummyInventoryInfoEOSerialNumberList); + + //4.2.1处理原有详情数据 + for (int i = 0; i < infoCJList.size(); i++) { + infoDiff = ListDiff.compareObject(infoCJList.get(i), dummyInventoryInfoEOList.get(i)); + infoDiffList.add(infoDiff); + } + + //4.2.2处理新增数据 + List infoCJSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); + for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) { + addSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId())) + .map(f -> f.getSerialNumber()).collect(Collectors.toList()); + } + //去掉发布时传入的和数据库同时有的数据 + for(String midSerialNumber:infoCJSerialNumberList){ + addSerialNumberList.remove(midSerialNumber); + } + addSerialNumber =StringUtils.join(addSerialNumberList,","); -// JsonDiff.compareJson(infoCJjson,info,null); - + //4.2.3处理删除的数据 + for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) { + deleteSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId())) + .map(f -> f.getSerialNumber()).collect(Collectors.toList()); + } + for(String midSerialNumber:deleteSerialNumberList){ + infoCJSerialNumberList.remove(midSerialNumber); + } + deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,","); } + //向订阅该领域管理的人发消息和飞书 + sendMsg(baseDiff,dummyContentChangeEOBaseList.get(0).getConnectId(),infoDiff,addSerialNumber,deleteSerialNumber); - //6.数据对比完成后.删除之前保存的dummy_inventory_info中的数据,重新保存最新的数据 + //5.数据对比完成后.删除之前保存的dummy_inventory_info中的数据,重新保存最新的数据 } @@ -312,4 +351,167 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl baseDiff, String idTemp,Map infoDiff,String addSerialNumber,String deleteSerialNumber) { + + String baseName=queryById(idTemp).getName();//基础表id + List userNameList = dummyReadEOService.queryReadUserInfo(idTemp); + List userIdList=sysUserService.queryUserIdListByNameList(userNameList).stream().map(e->e.getId()).collect(Collectors.toList()); + //给发送消息的用户 + if(userIdList.size() == 0){ + return; + } + List sysUsers = sysUserService.listByIds(userIdList); + List thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + if (userIdList.size() != 0) { + String href = backUrl + "/dummy/dummyInventoryBaseEO/issue?id=" + idTemp; + + //The xx virtual list you subscribed to has been updated as follows:1 . xxxxx 2.xxxx + String content ="The " + baseName + " virtual list you subscribed to has been updated."; + String contentInfo ="The " + baseName + " virtual list you subscribed to has been updated as follows : " + "\r\n"; + setContentInfo(contentInfo,baseDiff,infoDiff,addSerialNumber,deleteSerialNumber); + + //封装消息的实体类 + SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo); + sysAnnouncementService.saveAnnouncement(sysAnnouncement); + bussDocumentLibraryEOService.sendWebsocket(idTemp, idTemp); + //飞书 + try { + iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), content, MessageTypeEnum.PUSH.getName(), href); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + } + + public void setContentInfo(String contentInfo,Map baseDiff,Map infoDiff,String addSerialNumber,String deleteSerialNumber) { + int row = 1; + //设置虚拟清单列表的修改消息 + if(MapUtils.isNotEmpty(baseDiff)) { + //虚拟清单名称 + if (StringUtils.isNotBlank(baseDiff.get("name"))) { + List nameList = Arrays.asList(baseDiff.get("name").split(",")); + String baseDiffOldName = nameList.get(0); + String baseDiffNewName = nameList.get(1); + contentInfo += row + ". The name of virtual list has been changed from " + baseDiffOldName + " to " + baseDiffNewName + ".\r\n"; + row++; + } + //适用说明 + if (StringUtils.isNotBlank(baseDiff.get("useExplain"))) { + List useExplainList = Arrays.asList(baseDiff.get("useExplain").split(",")); + String baseDiffOldUseExplain = useExplainList.get(0); + String baseDiffNewUseExplain = useExplainList.get(1); + contentInfo += row + ". The applicable instructions of virtual list has been changed from " + baseDiffOldUseExplain + " to " + baseDiffNewUseExplain + ".\r\n"; + row++; + } + } + + //设置维护清单的新增消息 + if (StringUtils.isNotBlank(addSerialNumber)) { + contentInfo += row + ". " + "This virtual list has been added serial number : " + addSerialNumber + ".\r\n"; + row++; + } + + //设置维护清单的删除消息 + if (StringUtils.isNotBlank(deleteSerialNumber)) { + contentInfo += row + ". " + "This virtual list has been deleted serial number : " + deleteSerialNumber + ".\r\n"; + row++; + } + + //设置维护清单的修改消息 + if(MapUtils.isNotEmpty(infoDiff)) { + //技术领域 + if (StringUtils.isNotBlank(infoDiff.get("technologyTerritory"))) { + List technologyTerritoryList = Arrays.asList(infoDiff.get("technologyTerritory").split(",")); + String infoDiffOldTechnologyTerritory = technologyTerritoryList.get(0); + String infoDiffNewTechnologyTerritory = technologyTerritoryList.get(1); + contentInfo += row + ". " + infoDiffOldTechnologyTerritory + " has been changed to" + infoDiffNewTechnologyTerritory + ".\r\n"; + row++; + } + //新车型实施日期 + if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1"))) { + List xin1Che1Xing2Shi2Shi1Ri4Qi1List = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1").split(",")); + String infoDiffOldXin1Che1Xing2Shi2Shi1Ri4Qi1 = xin1Che1Xing2Shi2Shi1Ri4Qi1List.get(0); + String infoDiffNewXin1Che1Xing2Shi2Shi1Ri4Qi1 = xin1Che1Xing2Shi2Shi1Ri4Qi1List.get(1); + contentInfo += row + ". " + infoDiffOldXin1Che1Xing2Shi2Shi1Ri4Qi1 + " has been changed to" + infoDiffNewXin1Che1Xing2Shi2Shi1Ri4Qi1 + ".\r\n"; + row++; + } + //在产车实施日期 + if (StringUtils.isNotBlank(infoDiff.get("implementTime"))) { + List implementTimeList = Arrays.asList(infoDiff.get("implementTime").split(",")); + String infoDiffOldImplementTime = implementTimeList.get(0); + String infoDiffNewImplementTime = implementTimeList.get(1); + contentInfo += row + ". " + infoDiffOldImplementTime + " has been changed to" + infoDiffNewImplementTime + ".\r\n"; + row++; + } + //WVTA ID + if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) { + List wvtaIdList = Arrays.asList(infoDiff.get("wvtaId").split(",")); + String infoDiffOldWvtaId = wvtaIdList.get(0); + String infoDiffNewWvtaId = wvtaIdList.get(1); + contentInfo += row + ". " + infoDiffOldWvtaId + " has been changed to" + infoDiffNewWvtaId + ".\r\n"; + row++; + } + //子标题 + if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) { + List subtitleList = Arrays.asList(infoDiff.get("subtitle").split(",")); + String infoDiffOldSubtitle = subtitleList.get(0); + String infoDiffNewSubtitle = subtitleList.get(1); + contentInfo += row + ". " + infoDiffOldSubtitle + " has been changed to" + infoDiffNewSubtitle + ".\r\n"; + row++; + } + //实施类别 + if (StringUtils.isNotBlank(infoDiff.get("implementType"))) { + List implementTypeList = Arrays.asList(infoDiff.get("implementType").split(",")); + String infoDiffOldImplementType = implementTypeList.get(0); + String infoDiffNewImplementType = implementTypeList.get(1); + contentInfo += row + ". " + infoDiffOldImplementType + " has been changed to" + infoDiffNewImplementType + ".\r\n"; + row++; + } + //认证类型 + if (StringUtils.isNotBlank(infoDiff.get("attestationType"))) { + List attestationTypeList = Arrays.asList(infoDiff.get("attestationType").split(",")); + String infoDiffOldAttestationType = attestationTypeList.get(0); + String infoDiffNewAttestationType = attestationTypeList.get(1); + contentInfo += row + ". " + infoDiffOldAttestationType + " has been changed to" + infoDiffNewAttestationType + ".\r\n"; + row++; + } + + //认证级别 + //责任领域 + //备注 + //设计符合性确认-交付物类型 + //设计符合性确认-交付物模板 + //设计符合性确认-发起人 + //设计符合性确认-责任人 + //prehomo确认-交付物类型 + //prehomo确认-交付物模板 + //prehomo确认-发起人 + //prehomo确认-责任人 + //验证符合性确认-交付物类型 + //验证符合性确认-交付物模板 + //验证符合性确认-发起人 + //验证符合性确认-责任人 + + + + + + + + + + } + } + + public void setContent(String contentInfo,Map infoDiff, String field,int row){ + + if (StringUtils.isNotBlank(infoDiff.get(field))) { + List list = Arrays.asList(infoDiff.get(field).split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentInfo += row + ". " + infoDiffOld + " has been changed to" + infoDiffNew + ".\r\n"; + row++; + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 56fd2d78a..18048d4a5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -579,7 +579,9 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl collect = fileInfos.stream().filter(e -> s.equals(e.getId())).collect(Collectors.toList()); - sb.append(collect.get(0).getFileName() + ","); + if(collect.size() != 0){ + sb.append(collect.get(0).getFileName() + ","); + } } String sbStr = ""; if(StringUtils.isNotBlank(sb)){ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyReadEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyReadEOServiceImpl.java index 0a416f321..28f98395f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyReadEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyReadEOServiceImpl.java @@ -1,12 +1,17 @@ package com.jero.modules.dummy.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; import com.jero.modules.dummy.entity.DummyReadEO; import com.jero.modules.dummy.mapper.DummyReadEOMapper; import com.jero.modules.dummy.service.IDummyReadEOService; +import me.zhyd.oauth.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Date; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 虚拟清单订阅表 @@ -16,6 +21,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; */ @Service public class DummyReadEOServiceImpl extends ServiceImpl implements IDummyReadEOService { + @Autowired + private DummyReadEOMapper dummyReadEOMapper; + /** * 保存 @@ -24,12 +32,12 @@ public class DummyReadEOServiceImpl extends ServiceImpl ids) { - removeByIds(ids); - } + public void deleteByIds(List ids) { + removeByIds(ids); + } /** * 通过id查询 @@ -73,17 +81,35 @@ public class DummyReadEOServiceImpl extends ServiceImpl queryList() { - return list(); - } + public List queryList() { + return list(); + } + + /** + * 查询订阅虚拟清单的用户 + * + * @return + */ + @Override + public List queryReadUserInfo(String dummyInventoryBaseId) { + //获取订阅该虚拟清单的所有用户信息 + if(StringUtils.isNotEmpty(dummyInventoryBaseId)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("create_by").eq("dummy_inventory_base_id",dummyInventoryBaseId); + List readUserList = list(queryWrapper).stream().map(e -> e.getCreateBy()).distinct().collect(Collectors.toList()); + return readUserList; + }else{ + throw new JeroBootException("The virtual inventory is not subscribed.");//该虚拟清单未被订阅 + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java index 65f855bea..2986bef8f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java @@ -19,8 +19,8 @@ public class ListDiff { e.printStackTrace(); } - if( ! equals(v1, v2) - && !f.getName().equals("updateTime") ){ + if( ! equals(v1, v2) && !f.getName().contains("create") + && !f.getName().contains("update") ){ StringBuilder v1String= new StringBuilder(String.valueOf(v1)); StringBuilder v2String= new StringBuilder(String.valueOf(v2)); @@ -28,7 +28,7 @@ public class ListDiff { result.put(f.getName(), v1String.append(",").append(v2String).toString()); - System.out.println("zlzl"); + } } return result; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index 7b40dfa2a..65145cb74 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -330,4 +331,37 @@ public class ProjectLawsInventoryEOController extends JeroController importData(@RequestParam(value = "file", required = false) MultipartFile file, + ProjectLawsInventoryEO projectLawsInventoryEO) { + projectLawsInventoryEOService.importData(file,projectLawsInventoryEO); + return Result.OK("导入成功"); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectVersionInfoEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectVersionInfoEOController.java new file mode 100644 index 000000000..dbb8a496b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectVersionInfoEOController.java @@ -0,0 +1,171 @@ +package com.jero.modules.project.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.project.entity.ProjectVersionInfoEO; +import com.jero.modules.project.service.IProjectVersionInfoEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 法规清单定板详情表 + * @Author: jero-boot + * @Date: 2022-05-05 + * @Version: V1.0 + */ +@Api(tags="法规清单定板详情表") +@RestController +@RequestMapping("/project/projectVersionInfoEO") +@Slf4j +public class ProjectVersionInfoEOController extends JeroController { + @Autowired + private IProjectVersionInfoEOService projectVersionInfoEOService; + + /** + * 分页列表查询 + * + * @param projectVersionInfoEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "法规清单定板详情表-分页列表查询") + @ApiOperation(value="法规清单定板详情表-分页列表查询", notes="法规清单定板详情表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(ProjectVersionInfoEO projectVersionInfoEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectVersionInfoEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = projectVersionInfoEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "法规清单定板详情表-列表查询") + @ApiOperation(value="法规清单定板详情表-列表查询", notes="法规清单定板详情表-列表查询") + @GetMapping(value = "/list") + public Result> queryList(ProjectVersionInfoEO projectVersionInfoEO, + HttpServletRequest req) { + List list = projectVersionInfoEOService.queryInfoList(projectVersionInfoEO,req); + return Result.OK(list); + } + + /** + * 添加 + * + * @param projectVersionInfoEO + * @return + */ + @AutoLog(value = "法规清单定板详情表-添加") + @ApiOperation(value="法规清单定板详情表-添加", notes="法规清单定板详情表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ProjectVersionInfoEO projectVersionInfoEO) { + projectVersionInfoEOService.add(projectVersionInfoEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param projectVersionInfoEO + * @return + */ + @AutoLog(value = "法规清单定板详情表-编辑") + @ApiOperation(value="法规清单定板详情表-编辑", notes="法规清单定板详情表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody ProjectVersionInfoEO projectVersionInfoEO) { + projectVersionInfoEOService.editById(projectVersionInfoEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "法规清单定板详情表-通过id删除") + @ApiOperation(value="法规清单定板详情表-通过id删除", notes="法规清单定板详情表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + projectVersionInfoEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "法规清单定板详情表-批量删除") + @ApiOperation(value="法规清单定板详情表-批量删除", notes="法规清单定板详情表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.projectVersionInfoEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "法规清单定板详情表-通过id查询") + @ApiOperation(value="法规清单定板详情表-通过id查询", notes="法规清单定板详情表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ProjectVersionInfoEO projectVersionInfoEO = projectVersionInfoEOService.queryById(id); + if(projectVersionInfoEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(projectVersionInfoEO); + } + + /** + * 导出excel + * + * @param request + * @param projectVersionInfoEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ProjectVersionInfoEO projectVersionInfoEO) { + return super.exportXls(request, projectVersionInfoEO, ProjectVersionInfoEO.class, "法规清单定板详情表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ProjectVersionInfoEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java new file mode 100644 index 000000000..92ff8e36e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java @@ -0,0 +1,239 @@ +package com.jero.modules.project.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 法规清单定板详情表 + * @Author: jero-boot + * @Date: 2022-05-05 + * @Version: V1.0 + */ +@Data +@TableName("project_version_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="project_version_info对象", description="法规清单定板详情表") +public class ProjectVersionInfoEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + + /**法规清单版本id*/ + @Excel(name = "法规清单版本id", width = 15) + @ApiModelProperty(value = "法规清单版本id") + private java.lang.String historyVersionsId; + + /**项目库id*/ + @Excel(name = "项目库id", width = 15) + @ApiModelProperty(value = "项目库id") + private java.lang.String projectLibraryId; + + /**编号*/ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private java.lang.String serialNumber; + + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + + /**子标题*/ + @Excel(name = "子标题", width = 15) + @ApiModelProperty(value = "子标题") + private java.lang.String subtitle; + + /**对应标准*/ + @Excel(name = "对应标准", width = 15) + @ApiModelProperty(value = "对应标准") + private java.lang.String correspondingStandard; + + /**实施类别*/ + @Excel(name = "实施类别", width = 15) + @ApiModelProperty(value = "实施类别") + private java.lang.String implementType; + + /**新车型实施日期*/ + @Excel(name = "新车型实施日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "新车型实施日期") + private java.util.Date xin1Che1Xing2Shi2Shi1Ri4Qi1; + + /**在产车实施日期*/ + @Excel(name = "在产车实施日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "在产车实施日期") + private java.util.Date implementTime; + + /**认证类型*/ + @Excel(name = "认证类型", width = 15) + @ApiModelProperty(value = "认证类型") + private java.lang.String attestationType; + + /**认证级别*/ + @Excel(name = "认证级别", width = 15) + @ApiModelProperty(value = "认证级别") + private java.lang.String attestationRank; + + /**WVTA ID*/ + @Excel(name = "WVTA ID", width = 15) + @ApiModelProperty(value = "WVTA ID") + private java.lang.String wvtaId; + + /**责任领域*/ + @Excel(name = "责任领域", width = 15) + @ApiModelProperty(value = "责任领域") + private java.lang.String dutyTerritory; + + /**法规工程师*/ + @Excel(name = "法规工程师", width = 15) + @ApiModelProperty(value = "法规工程师") + private java.lang.String regulationOwnerId; + + /**认证工程师*/ + @Excel(name = "认证工程师", width = 15) + @ApiModelProperty(value = "认证工程师") + private java.lang.String homologationEngineerId; + + /**工程接口人*/ + @Excel(name = "工程接口人", width = 15) + @ApiModelProperty(value = "工程接口人") + private java.lang.String engineeringInterfacePerson; + + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private java.lang.String remark; + + /**设计符合性确认-交付物类型*/ + @Excel(name = "设计符合性确认-交付物类型", width = 15) + @ApiModelProperty(value = "设计符合性确认-交付物类型") + private java.lang.String designDeliverableType; + + /**设计符合性确认-交付物模板*/ + @Excel(name = "设计符合性确认-交付物模板", width = 15) + @ApiModelProperty(value = "设计符合性确认-交付物模板") + private java.lang.String designDeliverableTemplate; + + /**设计符合性确认-发起人*/ + @Excel(name = "设计符合性确认-发起人", width = 15) + @ApiModelProperty(value = "设计符合性确认-发起人") + private java.lang.String designInitiator; + + /**设计符合性确认-责任人*/ + @Excel(name = "设计符合性确认-责任人", width = 15) + @ApiModelProperty(value = "设计符合性确认-责任人") + private java.lang.String designDuty; + + /**设计符合性确认-截止时间*/ + @Excel(name = "设计符合性确认-截止时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "设计符合性确认-截止时间") + private java.util.Date designDueDate; + + /**prehomo确认-交付物类型*/ + @Excel(name = "prehomo确认-交付物类型", width = 15) + @ApiModelProperty(value = "prehomo确认-交付物类型") + private java.lang.String prehomoDeliverableType; + + /**prehomo确认-交付物模板*/ + @Excel(name = "prehomo确认-交付物模板", width = 15) + @ApiModelProperty(value = "prehomo确认-交付物模板") + private java.lang.String prehomoDeliverableTemplate; + + /**prehomo确认-发起人*/ + @Excel(name = "prehomo确认-发起人", width = 15) + @ApiModelProperty(value = "prehomo确认-发起人") + private java.lang.String prehomoInitiator; + + /**prehomo确认-责任人*/ + @Excel(name = "prehomo确认-责任人", width = 15) + @ApiModelProperty(value = "prehomo确认-责任人") + private java.lang.String prehomoDuty; + + /**prehomo确认-截止时间*/ + @Excel(name = "prehomo确认-截止时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "prehomo确认-截止时间") + private java.util.Date prehomoDueDate; + + /**验证符合性确认-交付物类型*/ + @Excel(name = "验证符合性确认-交付物类型", width = 15) + @ApiModelProperty(value = "验证符合性确认-交付物类型") + private java.lang.String verifyDeliverableType; + + /**验证符合性确认-交付物模板*/ + @Excel(name = "验证符合性确认-交付物模板", width = 15) + @ApiModelProperty(value = "验证符合性确认-交付物模板") + private java.lang.String verifyDeliverableTemplate; + + /**验证符合性确认-发起人*/ + @Excel(name = "验证符合性确认-发起人", width = 15) + @ApiModelProperty(value = "验证符合性确认-发起人") + private java.lang.String verifyInitiator; + + /**验证符合性确认-责任人*/ + @Excel(name = "验证符合性确认-责任人", width = 15) + @ApiModelProperty(value = "验证符合性确认-责任人") + private java.lang.String verifyDuty; + + /**验证符合性确认-截止时间*/ + @Excel(name = "验证符合性确认-截止时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "验证符合性确认-截止时间") + private java.util.Date verifyDueDate; + + /**任务发布状态*/ + @Excel(name = "任务发布状态", width = 15) + @ApiModelProperty(value = "任务发布状态") + private java.lang.String taskReleaseStatus; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectVersionInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectVersionInfoEOMapper.java new file mode 100644 index 000000000..dc62733db --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectVersionInfoEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.project.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.project.entity.ProjectVersionInfoEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 法规清单定板详情表 + * @Author: jero-boot + * @Date: 2022-05-05 + * @Version: V1.0 + */ +public interface ProjectVersionInfoEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectVersionInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectVersionInfoEOMapper.xml new file mode 100644 index 000000000..2dd2368a0 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectVersionInfoEOMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 76e135215..7a9a73770 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -4,8 +4,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -97,4 +99,19 @@ public interface IProjectLawsInventoryEOService extends IService { + + /** + * 保存 + * + * @param projectVersionInfoEO + * @return + */ + void add(ProjectVersionInfoEO projectVersionInfoEO); + + /** + * 更新 + * + * @param projectVersionInfoEO + * @return + */ + void editById(ProjectVersionInfoEO projectVersionInfoEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProjectVersionInfoEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + + List queryInfoList(ProjectVersionInfoEO projectVersionInfoEO, + HttpServletRequest req); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCommentEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCommentEOServiceImpl.java index 01c9d965d..896dbd2ba 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCommentEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCommentEOServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ProjectCommentEO; import com.jero.modules.project.entity.ProjectReplyEO; +import com.jero.modules.project.enums.ProjectRoleEnum; import com.jero.modules.project.mapper.ProjectCommentEOMapper; import com.jero.modules.project.service.IProjectCommentEOService; import com.jero.modules.project.service.IProjectReplyEOService; @@ -30,6 +31,8 @@ public class ProjectCommentEOServiceImpl extends ServiceImpl getInfoList(ProjectCommentEO projectCommentEOTemp) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //评论的内容 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(ProjectCommentEO::getCreateBy,sysUser.getUsername()).in(ProjectCommentEO::getProjectLibraryId,projectCommentEOTemp.getProjectLibraryId()); + + //验证当前用户在该项目中是什么角色 + int isProjectRole = projectLawsInventoryEOService.checkUserRole(projectCommentEOTemp.getProjectLibraryId(), sysUser.getId(), ""); + if(!ProjectRoleEnum.STUDIO_ENGINEER.getValue().equals(String.valueOf(isProjectRole))){ + //studio工程师(某一条项目中所有的评论和回复) + //其他角色(只能看自己评论,自己回复和studio工程师回复的) + wrapper.in(ProjectCommentEO::getCreateBy,sysUser.getUsername()); + } + //评论的内容 + wrapper.in(ProjectCommentEO::getProjectLibraryId,projectCommentEOTemp.getProjectLibraryId()); wrapper.orderByDesc(ProjectCommentEO::getCreateTime); List projectCommentEOS = this.list(wrapper); List projectCommentIdList = projectCommentEOS.stream().map(ProjectCommentEO::getId).collect(Collectors.toList()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectHistoryVersionsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectHistoryVersionsEOServiceImpl.java index deeb25fca..47f03e13f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectHistoryVersionsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectHistoryVersionsEOServiceImpl.java @@ -1,9 +1,18 @@ package com.jero.modules.project.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.modules.project.entity.ProjectHistoryVersionsEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectVersionInfoEO; import com.jero.modules.project.mapper.ProjectHistoryVersionsEOMapper; import com.jero.modules.project.service.IProjectHistoryVersionsEOService; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectVersionInfoEOService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; import java.util.List; import java.util.Date; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -17,6 +26,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class ProjectHistoryVersionsEOServiceImpl extends ServiceImpl implements IProjectHistoryVersionsEOService { + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + @Autowired + private IProjectVersionInfoEOService iProjectVersionInfoEOService; /** * 保存 * @@ -29,7 +42,24 @@ public class ProjectHistoryVersionsEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectLawsInventoryEO::getProjectLibraryId,projectHistoryVersionsEO.getProjectLibraryId()); + List projectLawsInventoryEOS = projectLawsInventoryEOService.list(wrapper); + List projectVersionInfoEOS = new ArrayList<>(); + if(projectLawsInventoryEOS.size() != 0){ + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + ProjectVersionInfoEO projectVersionInfoEO = new ProjectVersionInfoEO(); + projectVersionInfoEO.setHistoryVersionsId(projectHistoryVersionsEO.getId()); + BeanUtils.copyProperties(projectLawsInventoryEO, projectVersionInfoEO); + projectVersionInfoEOS.add(projectVersionInfoEO); + } + } + if(projectVersionInfoEOS.size() != 0){ + iProjectVersionInfoEOService.saveBatch(projectVersionInfoEOS); + } + } /** * 更新 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index c93d6e474..b80ab4903 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.modules.project.service.impl; import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -45,14 +46,28 @@ import com.jero.modules.system.service.ISysUserService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFRichTextString; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -103,6 +118,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(titleOne.split(",")); + int index = 0; + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + index = list.indexOf("备注") + 1; + }else{ + index = list.indexOf("remarks") + 1; + } + + //创建临时文件夹 + File nowFile = new File(filePath); + if (nowFile.exists()) { + nowFile.delete(); + } + nowFile.mkdirs(); + HSSFSheet sheet = workbook.createSheet("虚拟清单导入模板"); + sheet.setDefaultColumnWidth(16);//列宽 + HSSFCellStyle cellStyle = workbook.createCellStyle(); + cellStyle.setWrapText(true);//自动换行 + cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 + + HSSFCellStyle cellStyleTemp = workbook.createCellStyle(); + cellStyleTemp.setWrapText(true);//自动换行 + + + int count = 1; + int startLine = 0; + int endLine = 0; + int line = 4; + for (int i = 0; i < index; i++) { + //合并单元格 + CellRangeAddress region1 = + new CellRangeAddress(0, 1, i, i); + sheet.addMergedRegion(region1); + } + for (int i = index; i < 15; i++) { + if(count > 1){ + startLine = startLine + line + 1; + endLine = startLine + line; + }else{ + startLine = i; + endLine = i + line; + } + //合并单元格 + CellRangeAddress region1 = + new CellRangeAddress(0, 0, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列 + sheet.addMergedRegion(region1); + count ++; + } + CellRangeAddress region = + new CellRangeAddress(2, 2, 0, 25); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列 + sheet.addMergedRegion(region); + String explain= ""; + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + explain = "填写说明\n" + + "1.导入数据从第四行开始\n" + + "2.所有带*号的字段必须填写\n"+ + "3.认证类型,认证级别,实施类别,交付物类型,发起人,责任人,字段是单选属性,必须和系统中的对应字段选项相匹配\n" + + "4.责任领域,字段是多选属性,必须和系统中的对应字段选项相匹配,填写多个时采用英文或中文逗号分割\n" + + "5.编号,子标题,WVTA ID,备注,填写文本内容\n" + + "6.交付物模板字段为文件属性,填写时需要在本文件同级目录下以标准号为名称建立文件夹,并在文件夹下放置文件,假设在AAA标准号下放置了B.docx,则应填写AAA/B.docx"; + }else{ + explain = "filling explanation\n" + + "1.import data starts at the fourth line\n" + + "2.all fields marked with * must be filled in\n"+ + "3.certification type,certification level,implementation category,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" + + "4.area of responsibility, field is a multi-select attribute and must match the corresponding field in the system. If multiple fields are filled in, separate them by commas (,)\n" + + "5.serial number,subtitle,WVTA ID,remarks,Fill in the text\n" + + "6.deliverable template,When filling in the field, you need to create a folder in the directory of the same level as the file with the name of the standard number and place the file in the folder. If b. diocx is stored under the AAA standard number, enter AAA/B. diocx"; + } + + + for (int i = 0; i < 3; i++) { + //表头 + Row row = sheet.createRow(i);//开始创建标题行 + String[] headerArr = titleOne.split(","); + int lineTemp = index; + if (i == 0) { + for (int m = 0; m < headerArr.length; m++) { + if(m < index){ + row.createCell(m).setCellValue(headerArr[m]); + }else{ + row.createCell(lineTemp).setCellValue(headerArr[m]); + Cell cell = row.getCell(lineTemp); + cell.setCellStyle(cellStyle); + lineTemp = lineTemp + 5; + } + } + + }else if(i == 1){ + //titleTwo + String[] headerArrTwo = titleTwo.split(","); + for (int j = 0; j < headerArrTwo.length; j++) { + row.createCell(11+j).setCellValue(headerArrTwo[j]); + } + }else{ + short height = (short) (7 * 252); + row.setHeight((short) height); + Cell cell = row.createCell(0); + cell.setCellStyle(cellStyleTemp); + cell.setCellValue(new HSSFRichTextString(explain)); + } + } + response.setHeader("Content-Disposition", + "attachment; filename=\"" + fileOriName + ".xls"); + response.setContentType("application/force-download"); + response.flushBuffer(); + os = response.getOutputStream(); + workbook.write(os); + } catch (Exception e) { + e.printStackTrace(); + throw new JeroBootException("下载文件失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + } + + } + + @Override + public void exportData(HttpServletResponse response, HttpServletRequest request, ProjectLawsInventoryEO projectLawsInventoryEO) { + + } + + @Override + public void importData(MultipartFile file, ProjectLawsInventoryEO projectLawsInventoryEO) { } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectVersionInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectVersionInfoEOServiceImpl.java new file mode 100644 index 000000000..a3566144b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectVersionInfoEOServiceImpl.java @@ -0,0 +1,101 @@ +package com.jero.modules.project.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.project.entity.ProjectVersionInfoEO; +import com.jero.modules.project.mapper.ProjectVersionInfoEOMapper; +import com.jero.modules.project.service.IProjectVersionInfoEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: 法规清单定板详情表 + * @Author: jero-boot + * @Date: 2022-05-05 + * @Version: V1.0 + */ +@Service +public class ProjectVersionInfoEOServiceImpl extends ServiceImpl implements IProjectVersionInfoEOService { + + /** + * 保存 + * + * @param projectVersionInfoEO + * @return + */ + @Override + public void add(ProjectVersionInfoEO projectVersionInfoEO) { + Date now = new Date(); + projectVersionInfoEO.setCreateTime(now); + projectVersionInfoEO.setUpdateTime(now); + save(projectVersionInfoEO); + } + + /** + * 更新 + * + * @param projectVersionInfoEO + * @return + */ + @Override + public void editById(ProjectVersionInfoEO projectVersionInfoEO) { + Date now = new Date(); + projectVersionInfoEO.setUpdateTime(now); + saveOrUpdate(projectVersionInfoEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProjectVersionInfoEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public List queryInfoList(ProjectVersionInfoEO projectVersionInfoEO, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectVersionInfoEO, req.getParameterMap()); + queryWrapper.orderByDesc("create_time"); + List projectVersionInfoEOS = this.list(queryWrapper); + return projectVersionInfoEOS; + } +} diff --git a/jero-web/src/api/manage.js b/jero-web/src/api/manage.js index 8e3d35147..74e813452 100644 --- a/jero-web/src/api/manage.js +++ b/jero-web/src/api/manage.js @@ -113,21 +113,6 @@ export function downFile(url,parameter){ }) } -/** - * 下载文件 用于excel导出 -- post - * @param url - * @param parameter - * @returns {*} - */ -export function downFilePost(url,parameter){ - return axios({ - url: url, - data: parameter, - method:'post' , - responseType: 'blob' - }) -} - /** * 下载文件 * @param url 文件路径 diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 37f1834d0..b9dba09d0 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -706,6 +706,12 @@ module.exports = { uploadTime: 'Upload time', enclosure: 'enclosure', // 认证 + parameter: 'parameter', + changeExtension: 'change Extension', + detailedList: 'detailedList', + collectionCompletionTime: 'collection Completion Time', + parameterTemplateName: 'parameter Template Name', + onlyThree: 'Only letters, numbers and horizontal bars (-) can be entered', templateName: 'template Name', pleaseSelectData: 'please Select Data', templateCopy: 'template Copy', @@ -743,4 +749,10 @@ module.exports = { replyToComments:'Reply to comments', noComment:'No comment', theReceived:'The final version can be made only when the list confirmation status and task confirmation status of all data are received', + notEvaluated:'Not evaluated', + cannotExceed:'cannot exceed', + Characters:'Characters', + standardInformation:'standardInformation', + VirtualList:'VirtualList', + importTemplate:'import template', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 0bad590e8..0f3b73146 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -55,7 +55,7 @@ module.exports = { close: '关闭', no: '没有任何', click: '点击', - add: '新增', + add: '添加', FilterMatching: '过滤条件匹配', AllMatching: '(所有条件都要求匹配)', AnyOneMatches: '(条件中的任意一个匹配)', @@ -580,6 +580,7 @@ module.exports = { selectDisplayList: '请选择是否列表展示', documentSplitDisplay: '文档拆分模块展示', VirtualListName: '虚拟清单名称', + VirtualList:'虚拟清单', listStatus: '清单状态', creater: '创建人', withdraw: '撤回', @@ -686,7 +687,7 @@ module.exports = { projectDetails:'项目详情', listOfRegulations:'法规清单', taskList:'任务清单', - TaskParameterCollection:'任务参数收集', + TaskParameterCollection:'认证参数收集', nonConformance:'未符合项', deadlineForConfirmationOfDesignCompliance:'设计符合性确认截止时间', prehomoConfirmationDeadline:'PreHomo确认截止时间', @@ -712,6 +713,12 @@ module.exports = { uploadTime:'上传时间', enclosure:'附件', // 认证 + parameter: '参数', + changeExtension: '变更扩展', + detailedList: '清单', + collectionCompletionTime: '收集完成时间', + parameterTemplateName: '参数模板名称', + onlyThree: '只能输入字母,数字,横杠(-)三种内容', templateName: '模板名称', pleaseSelectData: '请选择数据', templateCopy: '模板复制', @@ -748,4 +755,9 @@ module.exports = { replyToComments:'回复评论', noComment:'暂无评论', theReceived:'所有数据的清单确认状态和任务确认状态都为接受才可以定版', + notEvaluated:'未评估', + cannotExceed:'不能超出', + Characters:'个字符', + standardInformation:'标准信息', + importTemplate:'导入模板', } \ No newline at end of file diff --git a/jero-web/src/components/ImportFile/index.vue b/jero-web/src/components/ImportFile/index.vue index 6a8cdc022..009755729 100644 --- a/jero-web/src/components/ImportFile/index.vue +++ b/jero-web/src/components/ImportFile/index.vue @@ -44,6 +44,10 @@ paramsTemplateId: { type: String, default: '' + }, + projectLibraryId: { + type: String, + default: '' } }, data() { @@ -60,6 +64,8 @@ return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&dummyInventoryBaseId=' + this.dummyInventoryBaseId } else if (this.paramsTemplateId) { return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '¶msTemplateId=' + this.paramsTemplateId + } else if (this.projectLibraryId) { + return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&projectLibraryId=' + this.projectLibraryId } return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut } diff --git a/jero-web/src/components/layouts/TabLayout.vue b/jero-web/src/components/layouts/TabLayout.vue index b2be44bb8..8dc37c162 100644 --- a/jero-web/src/components/layouts/TabLayout.vue +++ b/jero-web/src/components/layouts/TabLayout.vue @@ -92,6 +92,7 @@ this.$route.path == '/virtualListDetails' || this.$route.path == '/ProjectDetails' || this.$route.path == '/handshakeProcess' || + this.$route.path == '/historicalVersion' || this.$route.path == '/processDetails') { return false } else { diff --git a/jero-web/src/components/libraryAddForm/index.vue b/jero-web/src/components/libraryAddForm/index.vue index 8aa995b6e..a799a8c5c 100644 --- a/jero-web/src/components/libraryAddForm/index.vue +++ b/jero-web/src/components/libraryAddForm/index.vue @@ -429,7 +429,7 @@ || res.field_show_type === '11') { rule.push({ max: res.db_length, - message: res.db_field_txt + '不能超出' + res.db_length + '个字符', + message: res.db_field_txt + this.$t('cannotExceed') + res.db_length + this.$t('Characters'), trigger: 'blur' }) } diff --git a/jero-web/src/config/router.config.js b/jero-web/src/config/router.config.js index cbe8e896f..b63bf562a 100644 --- a/jero-web/src/config/router.config.js +++ b/jero-web/src/config/router.config.js @@ -342,6 +342,11 @@ export const constantRouterMap = [ name: 'handshakeProcess', component: () => import(/* webpackChunkName: "user" */ '@/views/processCenter/processForm/handshakeProcess/index') }, + { + path: '/historicalVersion', + name: 'historicalVersion', + component: () => import(/* webpackChunkName: "user" */ '@/views/projectManagement/historicalVersion/index') + }, { path: '/processDetails', name: 'processDetails', diff --git a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue index 6af68867a..78812a1f0 100644 --- a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue +++ b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue @@ -138,7 +138,7 @@ {{$t('deleteLib')}} - {{text && text.length > 20 ? text.slice(0,19)+'...':text}} + {{text && text.length > 10 ? text.slice(0,9)+'...':text}} {{record.designDeliverableType_dictText}}
@@ -290,6 +290,12 @@ fixed: 'left', scopedSlots: { customRender: 'titleName' } }, + { + title: this.$t('zoneOfApplication'), + align: 'center', + ellipsis: true, + dataIndex: 'region_dictText' + }, { title: this.$t('scopeOfApplication'), align: 'center', @@ -308,12 +314,6 @@ ellipsis: true, dataIndex: 'correspondingStandardName' }, - { - title: this.$t('zoneOfApplication'), - align: 'center', - ellipsis: true, - dataIndex: 'region_dictText' - }, { title: this.$t('implementationCategory'), align: 'center', @@ -568,17 +568,18 @@ }, //模板下载 handleModule() { - downloadFile(this.url.exportTemplate, '模板下载.xls', {}) + downloadFile(this.url.exportTemplate, this.$t('VirtualList')+this.$t('importTemplate')+'.xls', {}) }, //导出 handleExport() { let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) let query = { ...this.queryParam, + ...this.queryParamQuery, ids: selectedRowKeys.join(','), dummyInventoryBaseId: this.$route.query.id } - downloadFile(this.url.exportData, this.$route.query.name + '虚拟清单.zip', query, this.Deselect) + downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualList')+'.zip', query, this.Deselect) }, Deselect() { this.selectedRowKeys = [] diff --git a/jero-web/src/views/documentTools/virtualList/index.vue b/jero-web/src/views/documentTools/virtualList/index.vue index 5f50148c6..958acdffc 100644 --- a/jero-web/src/views/documentTools/virtualList/index.vue +++ b/jero-web/src/views/documentTools/virtualList/index.vue @@ -99,7 +99,7 @@ @@ -107,12 +107,13 @@
+ * {{$t('instructionForUse')}}
- + + v-model.trim="formInline.useExplain" :rows="4"/>
@@ -139,11 +140,30 @@ selectedRowKeys: [], formInline: {}, rules: { - name: [{ - required: true, - message: this.$t('VirtualListName') + this.$t('cannotEmpty'), - trigger: 'blur' - }] + name: [ + { + required: true, + message: this.$t('VirtualListName') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 100, + message: this.$t('VirtualListName') + this.$t('cannotExceed') + 100 + this.$t('Characters'), + trigger: 'blur' + } + ], + useExplain: [ + { + required: true, + message: this.$t('instructionForUse') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 500, + message: this.$t('instructionForUse') + this.$t('cannotExceed') + 500 + this.$t('Characters'), + trigger: 'blur' + } + ] }, visible: false, dataSource: [], @@ -200,6 +220,9 @@ this.title = '新增' this.formInline = {} this.visible = true + this.$nextTick(() => { + this.$refs.ruleForm.clearValidate() + }) }, //批量删除 handleDel() { @@ -229,6 +252,9 @@ this.title = '编辑' this.formInline = JSON.parse(JSON.stringify(item)) this.visible = true + this.$nextTick(() => { + this.$refs.ruleForm.clearValidate() + }) }, //撤回 withdraw(val) { diff --git a/jero-web/src/views/parameter/parameterlist/components/addModel.vue b/jero-web/src/views/parameter/parameterlist/components/addModel.vue index a51b72e89..a9fe82a35 100644 --- a/jero-web/src/views/parameter/parameterlist/components/addModel.vue +++ b/jero-web/src/views/parameter/parameterlist/components/addModel.vue @@ -18,7 +18,7 @@ {{$t('NiONumber')}} - + {{$t('Required')}} - + {{$t('yes')}} @@ -49,7 +49,7 @@ {{$t('ParameterName')}} - + {{$t('parameterBatch')}}
- + {{$t('areaOfResponsibility')}} - + {{$t('ParameterDescription')}} - + {{$t('certificationCategory')}} - + {{$t('controlAlternatives')}} - + + @click="clickButtonToUpload('fileTemplateConnectId')"> {{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' || formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}} @@ -221,7 +221,7 @@ {{$t('standard')}} - + {{$t('ParameterName')}} - + {{$t('ParameterDescription')}} - + { - // if (res.success) { - // this.$refs.uploadFile.perentHandleFunc(res.result) - // } else { - // this.$refs.uploadFile.perentHandleFunc() - // } - // }) + getAction('sys/common/getFileInfos', { id: this.formInline[item] }).then((res) => { + if (res.success) { + this.$refs.uploadFile.perentHandleFunc(res.result) + } else { + this.$refs.uploadFile.perentHandleFunc() + } + }) }, Onchangelabel(val) { - + let _tt = [] + console.log(val,'val,,,,') // this.formInline.certCategoryParamsInfoEOList = [] val.forEach((item) => { - this.contentList.push({ + _tt.push({ textVal: item.text, // tab certCategory: '', // 所属认证类别 paramsNumber: '', // 编号 @@ -384,6 +398,7 @@ export default { description: ''// 参数说明 }) }) + this.contentList = _tt }, Onchange() { @@ -420,6 +435,11 @@ export default { this.$nextTick(() => { this.formInline = value }) + // if(value.certCategoryParamsInfoEOList.length > 0 ) { + // this.contentList = value.certCategoryParamsInfoEOList + // } + console.log(this.contentList,'this.contentList') + console.log(value.certCategoryParamsInfoEOList,'lllll') }, handleCancel() { this.visible = false diff --git a/jero-web/src/views/parameter/parameterlist/index.vue b/jero-web/src/views/parameter/parameterlist/index.vue index f7aa102f5..7c44a8e66 100644 --- a/jero-web/src/views/parameter/parameterlist/index.vue +++ b/jero-web/src/views/parameter/parameterlist/index.vue @@ -55,9 +55,9 @@
-
+
- {{$t('Version')}} + {{$t('releaseVersion')}}
@@ -199,17 +199,43 @@ export default { paramsTemplateId: this.$route.query.id, ...this.queryParam, ids: this.selectedRowKeys.join(','), - // exportName: '参数项列表.xlsx' } let _xx = JSON.stringify(_tt) - let _yy = { - - } - downloadFile('params/paramsInfo/exportParamsInfoZip', '参数项列表.zip', { paramsInfoVO : _xx }, this.Deselect) + let _yy = { paramsInfoVO : _xx, exportName: '参数项列表' } + downloadFile('params/paramsInfo/exportParamsInfoZip', '参数项列表.zip', { paramsInfoVO : _xx, exportName: '参数项列表' } , this.Deselect) + }, + // 发布版本 + releaseVersion() { + let _this = this + axios({ + url: `/jero-boot/params/paramsInfo/publish?paramsTemplateId=${this.$route.query.id}`, + method: 'get', + transformRequest: [function (data) { + let ret = '' + for (let it in data) { + ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&' + } + return ret + }], + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'X-Access-Token':_this.token + } + }) + .then( (res) =>{ + if (res.data.success) { + _this.$message.success(res.data.result) + }else{ + _this.$message.warning(res.data.result) + } + }) + .catch( (error) =>{ + console.log(error); + }); }, //下载模板 handleModule() { - downloadFile('params/paramsInfo/exportTemplate', '参数项列表.xls', {}) + downloadFile('params/paramsInfo/exportTemplate', '参数项列表.xlsx', {}) }, handleToggleSearch() { this.toggleSearchStatus = !this.toggleSearchStatus @@ -221,10 +247,6 @@ export default { //添加 handleAdd() { this.$refs.addModelRef.addModel() - }, - // 复制 - handlecody(){ - }, //批量删除 handleDel() { diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index e1cdaba08..f51b28255 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -39,7 +39,7 @@ {{$t('taskList')}}
-
+
{{$t('TaskParameterCollection')}}
@@ -52,7 +52,7 @@ - +
diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index e18c04b93..a64ab86c5 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -102,25 +102,15 @@
- - -
-
-
-
-
- -
-
+ + + - - Tab 2 + + - - Tab 3 - - - Tab 4 + + @@ -135,17 +125,24 @@ import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import addModel from './addModel' import settingList from './settingList' + import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts' + import deliverableStatusEchart from './deliverableStatusEchart' + import certificationProgressEchart from './certificationProgressEchart' export default { name: 'ProjectDetails', components: { listOfRelevantPersonnel, addModel, - settingList + settingList, + currentStatusOfTheProjectEcharts, + deliverableStatusEchart, + certificationProgressEchart }, data() { return { queryForm: {}, + activeKey: this.$t('CurrentStatusOfTheProject'), url: { queryById: 'project/projectLibraryBase/queryById', add: 'project/projectLibraryBase/add', @@ -161,7 +158,6 @@ mounted() { this.getForm() this.getSetting() - this.mainEcharts() }, methods: { getForm() { @@ -185,26 +181,6 @@ settingListForm() { this.getSetting() }, - mainEcharts() { - var myChart = echarts.init(document.getElementById('main')) - myChart.setOption({ - title: { - text: 'ECharts 入门示例' - }, - tooltip: {}, - xAxis: { - data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] - }, - yAxis: {}, - series: [ - { - name: '销量', - type: 'bar', - data: [5, 20, 36, 10, 10, 20] - } - ] - }) - }, ListOfRelevantPersonnelClick() { this.$refs.listOfRelevantPersonnelRef.getData() }, @@ -329,29 +305,6 @@ } } - .box-content { - width: 100%; - display: flex; - justify-content: space-between; - - .box-content-left { - width: calc(50% - 12px); - height: 300px; - border: 2px #eff1f3 solid; - - #main { - width: 100%; - height: 100%; - } - } - - .box-content-right { - width: calc(50% - 12px); - height: 300px; - border: 2px #eff1f3 solid; - } - } - @media screen and (min-width: 600px) and (max-width: 1600px) { .process-content-right-top { diff --git a/jero-web/src/views/projectManagement/components/TaskList.vue b/jero-web/src/views/projectManagement/components/TaskList.vue index 6fe7f565c..02e2c0a3a 100644 --- a/jero-web/src/views/projectManagement/components/TaskList.vue +++ b/jero-web/src/views/projectManagement/components/TaskList.vue @@ -43,14 +43,49 @@
+ +
+ 1212sdfdsf
+ 责任领土 +
+
+ 截止时间: 2022-06-01
+ 流程状态: 待审核
+ 待追踪 +
+
+
+
+
+ 截止时间: 2022-06-01
+ 流程状态: 待审核
+ 待追踪 +
+
+ 截止时间: 2022-06-01
+ 流程状态: 待审核
+ 待追踪 +
+
+ + 实验通过 + +
+
+
+
+
+
@@ -59,9 +94,10 @@ diff --git a/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue b/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue new file mode 100644 index 000000000..2c57f37e6 --- /dev/null +++ b/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/commentList.vue b/jero-web/src/views/projectManagement/components/commentList.vue index 08b73d8d9..65b9546e9 100644 --- a/jero-web/src/views/projectManagement/components/commentList.vue +++ b/jero-web/src/views/projectManagement/components/commentList.vue @@ -9,6 +9,9 @@ @close="handleCancel" :visible="visible">
+ + {{$t('query')}} {{$t('publishComment')}}
@@ -29,8 +32,8 @@
-
-
+
+
@@ -41,7 +44,7 @@
{{val.content}}
-
+
@@ -99,6 +102,7 @@ visible: false, dataList: [], formInline: {}, + commentContent:'', loading: false, title: this.$t('comment'), confirmLoading: false, @@ -143,10 +147,13 @@ this.$nextTick(() => { this.$refs.ruleForm.clearValidate() }) + }, + submitQuery(){ + }, getList() { this.loading = true - getAction(this.url.list, { projectLibraryId: this.$route.query.id }).then((res) => { + getAction(this.url.list, { projectLibraryId: this.$route.query.id,commentContent:this.commentContent }).then((res) => { if (res.success) { this.loading = false this.dataList = res.result || [] @@ -336,12 +343,6 @@ line-height: 48px; } - .box-input { - display: inline-block; - height: 38px; - width: 100%; - } - .itemModel { width: calc(100% - 64px); display: inline-block; @@ -361,4 +362,8 @@ text-align: center; margin-top: 40px; } + .box-input{ + width: calc(100% - 168px); + margin-right: 8px; + } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/currentStatusOfTheProjectEcharts.vue b/jero-web/src/views/projectManagement/components/currentStatusOfTheProjectEcharts.vue new file mode 100644 index 000000000..e237b605a --- /dev/null +++ b/jero-web/src/views/projectManagement/components/currentStatusOfTheProjectEcharts.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue b/jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue new file mode 100644 index 000000000..a81056a91 --- /dev/null +++ b/jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue @@ -0,0 +1,113 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/historicalVersionList.vue b/jero-web/src/views/projectManagement/components/historicalVersionList.vue index 4066ed627..f545a7c82 100644 --- a/jero-web/src/views/projectManagement/components/historicalVersionList.vue +++ b/jero-web/src/views/projectManagement/components/historicalVersionList.vue @@ -24,31 +24,31 @@ diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 335341baf..2ad9aef01 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -67,7 +67,8 @@