Merge branch 'develop_3' into 'develop_master'

Develop 3

See merge request LiuChao/foton-slrs-system-rest!230
This commit is contained in:
super_liu
2021-11-12 13:50:43 +08:00
26 changed files with 1062 additions and 16 deletions
@@ -0,0 +1,125 @@
package com.adc.da.slrs.ImportExcelDatas.comment;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.Year;
import java.util.HashSet;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Component
public class Analysis {
private static final Logger logger = LoggerFactory.getLogger(Contrast.class);
public void run(MultipartFile file, MultipartFile sort) throws IOException {
InputStream inputStream = file.getInputStream();
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
HashSet<String> sortSet = getSet(sort);
for (Row row : sheet) {
if (row.getCell(1)!=null){
//获取表1的标准号
String value = row.getCell(1).toString().trim();
Cell sortCell = row.createCell(11);
Cell sortNumber = row.createCell(12);
Cell sortYear = row.createCell(13);
sortCell.setCellType(CellType.STRING);
sortNumber.setCellType(CellType.STRING);
sortYear.setCellType(CellType.STRING);
List<String> collect = sortSet.stream()
.filter(item ->{
int length = item.length();
if (value.length()>length){
return value.substring(0, length).contains(item.trim());
}else return false;
})
.collect(Collectors.toList());
//对比在表2中是否存在
if (collect.size()==1){
String sortStr = collect.get(0);
int length = sortStr.length();
logger.info("*");
// Pattern pattern = Pattern.compile("^\\S*\\s\\S*[\\u2014\\u002d\\s]\\d{4}$");
// pattern.matcher(standId).matches()
if (value.length()>=length+5){
sortCell.setCellValue(collect.get(0));
sortNumber.setCellValue(value.substring(length,value.length()-5));
sortYear.setCellValue(value.substring(value.length()-4));
}
}else if (collect.size()>1){
String maxLenSort="";
for (String s : collect) {
if (s.length()>maxLenSort.length()){
maxLenSort=s;
}
}
int length = maxLenSort.length();
if (value.length()>=length+5){
logger.info("+");
sortCell.setCellValue(maxLenSort);
sortNumber.setCellValue(value.substring(length,value.length()-5));
sortYear.setCellValue(value.substring(value.length()-4));
}
} else {
logger.info("-");
sortCell.setCellValue("-");
sortNumber.setCellValue("-");
sortYear.setCellValue("-");
}
}
}
File result = new File("C:\\Users\\22501\\Desktop\\foton标准数据\\拆分标准号-海外.xlsx");
FileOutputStream os = new FileOutputStream(result);
workbook.write(os);
// HashMap<String, String> map = new HashMap<>();
}
private HashSet<String> getSet(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
// int lastNum = sheet.getLastRowNum();
HashSet<String> stringHashSet= new HashSet<>();
for (Row row : sheet) {
if (row.getCell(0)!=null){
stringHashSet.add(row.getCell(0).toString().trim());
}
}
return stringHashSet;
}
}
@@ -15,7 +15,7 @@ import java.util.List;
@Component
public class ExclErrorOut {
private static final Logger logger = LoggerFactory.getLogger(BussStandExportUtil.class);
private static final Logger logger = LoggerFactory.getLogger(ExclErrorOut.class);
public static Workbook exportDatas (List<ImportDto> datas,String header) {
Workbook workbook = new XSSFWorkbook();
@@ -1,17 +1,29 @@
package com.adc.da.slrs.ImportExcelDatas.comment;
import com.adc.da.slrs.ImportExcelDatas.entity.ImportDto;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
@Component
public class ExclExport extends ExclErrorOut {
private static final Logger logger = LoggerFactory.getLogger(ExclErrorOut.class);
/**
* 导出多个sheet页的excl
@@ -34,4 +46,71 @@ public class ExclExport extends ExclErrorOut {
return workbook;
}
/**
* 比对表格中的数据是否在数据库表中
* @param sourceFile
* @return
*/
public void contrast(MultipartFile sourceFile, HashSet<List<String>> set) throws IOException {
InputStream inputStream = sourceFile.getInputStream();
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
// HashMap<String, String> map = new HashMap<>();
int lastNum = sheet.getLastRowNum();
for (int i = 0; i < lastNum; i++) {
XSSFRow row = sheet.getRow(i);
if (row.getCell(1)!=null){
// String value = row.getCell(1).toString();
// map.put(value,String.valueOf(i));
String value = row.getCell(1).toString();
Cell cell = row.createCell(11);
Set<List<String>> collect = set.stream()
.filter(item ->
value.contains(item.get(0).trim())
&& value.contains(item.get(1).trim())
&& value.contains(item.get(2).trim())
)
.collect(Collectors.toSet());
if (!collect.isEmpty()){
logger.info("*");
cell.setCellType(CellType.STRING);
cell.setCellValue("1");
}else {
logger.info("-");
cell.setCellType(CellType.STRING);
cell.setCellValue("0");
}
}
// map.strea
// List<User> filterList=map.stre()
// .filter(user -> serviceCodes.contains(user.getOrgId()))
// .collect(Collectors.toList());
}
File file = new File("C:\\Users\\22501\\Desktop\\foton标准数据\\ouhuo.xlsx");
FileOutputStream os = new FileOutputStream(file);
workbook.write(os);
}
}
@@ -2,26 +2,19 @@ package com.adc.da.slrs.ImportExcelDatas.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.common.ReadExcel;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.ImportExcelDatas.comment.Analysis;
import com.adc.da.slrs.ImportExcelDatas.comment.Contrast;
import com.adc.da.slrs.ImportExcelDatas.comment.ExclErrorOut;
import com.adc.da.slrs.ImportExcelDatas.comment.ExclExport;
import com.adc.da.slrs.ImportExcelDatas.entity.ImportDto;
import com.adc.da.slrs.ImportExcelDatas.service.ImportExcelService;
import com.adc.da.slrs.ImportExcelDatas.service.impl.ImportExcelServiceImpl;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStar;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserStarEO;
import com.adc.da.util.exception.AdcDaBaseException;
import com.adc.da.util.utils.IOUtils;
import com.adc.da.util.utils.StringUtils;
import com.adc.da.utils.util.BussStandExportUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
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 org.springframework.web.multipart.MultipartFile;
@@ -97,7 +90,7 @@ public class ImportExcelController extends BaseController<ImportDto> {
}
@ApiOperation("从excl中导入标准信息")
@ApiOperation("从excl分解")
@PostMapping("/analysisExcl")
public void analysisExcl(MultipartFile exclFile,MultipartFile standSort, HttpServletResponse response, HttpServletRequest request) throws IOException {
/**
@@ -139,4 +132,26 @@ public class ImportExcelController extends BaseController<ImportDto> {
}
@ApiOperation("excel表中的信息是否在数据库中存在")
@PostMapping("/isExist")
public String isExist(MultipartFile exclFile){
return importExcelService.isExist(exclFile);
}
@ApiOperation("对比")
@PostMapping("/contrast")
public void contrast(MultipartFile all,MultipartFile excel) throws IOException {
Contrast contrast = new Contrast();
contrast.run(all,excel);
}
@ApiOperation("根据标准从excl中分解出标准号,类别,年份")
@PostMapping("/analysis")
public void analysis(MultipartFile exclFile,MultipartFile standSort) throws IOException {
Analysis analysis = new Analysis();
analysis.run(exclFile,standSort);
}
}
@@ -15,4 +15,7 @@ public interface ImportExcelService extends IService<ImportDto> {
public List<ImportDto> storageExclData(Map<String, List<ImportDto>> importListMap);
public Map<String,List<ImportDto>> analysisExcl(MultipartFile exclFile,MultipartFile standSort);
public String isExist(MultipartFile exclFile);
}
@@ -2,6 +2,7 @@ package com.adc.da.slrs.ImportExcelDatas.service.impl;
import com.adc.da.att.service.IAttFileEOService;
import com.adc.da.att.vo.AttFileVo;
import com.adc.da.slrs.ImportExcelDatas.comment.ExclExport;
import com.adc.da.slrs.ImportExcelDatas.dao.ImportExcelDao;
import com.adc.da.slrs.ImportExcelDatas.entity.ImportDto;
import com.adc.da.slrs.ImportExcelDatas.service.ImportExcelService;
@@ -598,6 +599,37 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
return result;
}
@Override
public String isExist(MultipartFile exclFile) {
ExclExport exclExport = new ExclExport();
QueryWrapper<SarStandardsInfo> standWrapper = new QueryWrapper<>();
standWrapper.select("STAND_NUMBER,STAND_SORT,STAND_YEAR");
List<Map<String, Object>> maps = sarStandardsInfoService.listMaps(standWrapper);
QueryWrapper<SarBussionessStand> bussionessWrapper = new QueryWrapper<>();
bussionessWrapper.select("STAND_CODE AS STAND_NUMBER,STAND_SORT,STAND_YEAR");
List<Map<String, Object>> maps1 = sarBussionessStandService.listMaps(bussionessWrapper);
HashSet<List<String>> nameSet = new HashSet<>();
maps.addAll(maps1);
maps.forEach(item->{
List<String> strings = new LinkedList<>();
strings.add(item.get("STAND_NUMBER").toString().trim());
strings.add(item.get("STAND_SORT").toString().trim());
strings.add(item.get("STAND_YEAR").toString().trim());
nameSet.add(strings);
});
try {
exclExport.contrast(exclFile,nameSet);
return "success";
}catch (Exception e){
e.printStackTrace();
return "failed";
}
}
/**
* 整理为标准信息实体
@@ -0,0 +1,56 @@
package com.adc.da.slrs.sarIssueTrack.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrack;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrackVo;
import com.adc.da.slrs.sarIssueTrack.service.IIssueTrackService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@Controller
@RestController
@Api(tags = "重点标准跟踪清单")
@RequestMapping("/api/sarIssueTrack/issueTrack")
public class IssueTrackController {
@Autowired
private IIssueTrackService issueTrackService;
@PutMapping()
@ApiOperation("新增重点标准跟踪清单项目")
public ResponseMessage addIssueTrack(@RequestBody IssueTrack issueTrack){
boolean b = issueTrackService.addIssueTrack(issueTrack);
return Result.success(b);
}
@DeleteMapping
@ApiOperation("删除重点标准跟踪清单项目")
public ResponseMessage removeIssueTrack(@RequestParam(value="selectedString") String idList){
List<String> stringList = Arrays.asList(idList.split(","));
boolean b = issueTrackService.removeIssueTrack(stringList);
return Result.success(b);
}
@GetMapping
@ApiOperation("查询重点标准跟踪清单")
public ResponseMessage<List<IssueTrack>> getIssueTrack(IssueTrackVo wrapper){
List<IssueTrack> issueTrack = issueTrackService.getIssueTrack(wrapper);
return Result.success(issueTrack);
}
@PostMapping
@ApiOperation("更新重点标准跟踪清单项目")
public ResponseMessage updateIssueTrack(@RequestBody IssueTrack issueTrack){
boolean b = issueTrackService.updateIssueTrack(issueTrack);
return Result.success(b);
}
}
@@ -0,0 +1,7 @@
package com.adc.da.slrs.sarIssueTrack.dao;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrack;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface IssueTrackDao extends BaseMapper<IssueTrack> {
}
@@ -0,0 +1,41 @@
package com.adc.da.slrs.sarIssueTrack.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@TableName("issue_track")
public class IssueTrack {
@TableField("id")
private String id;
@TableField("law_id")
private String lawId;
@TableField("law_name")
private String lawName;
@TableField("product_type")
private String productType;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-mm-dd")
@TableField("impl_time")
private Date implTime;
@TableField("impl_require")
private String implRequire;
@TableLogic(value = "0",delval = "1")
@TableField("del_flag")
private String delFlag;
}
@@ -0,0 +1,7 @@
package com.adc.da.slrs.sarIssueTrack.entity;
import lombok.Data;
@Data
public class IssueTrackVo extends IssueTrack {
}
@@ -0,0 +1,17 @@
package com.adc.da.slrs.sarIssueTrack.service;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrack;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrackVo;
import java.util.List;
public interface IIssueTrackService {
public boolean addIssueTrack(IssueTrack obj);
public boolean removeIssueTrack(List<String> idList);
public List<IssueTrack> getIssueTrack(IssueTrackVo objVo);
public boolean updateIssueTrack(IssueTrack obj);
}
@@ -0,0 +1,58 @@
package com.adc.da.slrs.sarIssueTrack.service.impl;
import com.adc.da.slrs.sarIssueTrack.dao.IssueTrackDao;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrack;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrackVo;
import com.adc.da.slrs.sarIssueTrack.service.IIssueTrackService;
import com.adc.da.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class IssueTrackServiceImpl extends ServiceImpl<IssueTrackDao, IssueTrack> implements IIssueTrackService {
@Override
public boolean addIssueTrack(IssueTrack obj) {
obj.setId(UUIDUtils.randomUUID20());
obj.setDelFlag("0");
return this.save(obj);
}
@Override
public boolean removeIssueTrack(List<String> idList) {
return removeByIds(idList);
}
@Override
public List<IssueTrack> getIssueTrack(IssueTrackVo objVo) {
List<IssueTrack> result=new ArrayList<>();
if (objVo==null){
result=this.list();
}else {
QueryWrapper<IssueTrack> wrapper = new QueryWrapper<>();
if (objVo.getLawId()!=null){
wrapper.like("law_id",objVo.getLawId());
}
if (objVo.getLawName()!=null){
wrapper.like("law_name",objVo.getLawName());
}
if (objVo.getProductType()!=null){
wrapper.like("product_type",objVo.getProductType());
}
result=list(wrapper);
}
return result;
}
@Override
public boolean updateIssueTrack(IssueTrack obj) {
return this.updateById(obj);
}
}
@@ -0,0 +1,116 @@
package com.adc.da.slrs.sarStandUnqualified.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssueVo;
import com.adc.da.slrs.sarStandUnqualified.service.IBusinessDeptIssueService;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.List;
@Controller
@RestController
@RequestMapping("/api/sarStandUnqualified/businessDeptIssue")
@Api(tags = "事业部重点问题")
public class BusinessDeptIssueController extends BaseController {
@Autowired
private IBusinessDeptIssueService iBusinessDeptIssueService;
@PutMapping()
@ApiOperation("新增事业部重点问题")
public ResponseMessage addBussDeptIssue(@RequestBody BusinessDeptIssue issue){
boolean b = iBusinessDeptIssueService.addBusinessDeptIssue(issue);
return Result.success(b);
}
@DeleteMapping
@ApiOperation("删除事业部重点问题")
public ResponseMessage removeBussDeptIssue(@RequestParam(value="selectedString") String idList){
List<String> stringList = Arrays.asList(idList.split(","));
boolean b = iBusinessDeptIssueService.removeBusinessDeptIssue(stringList);
return Result.success(b);
}
@GetMapping
@ApiOperation("查询事业部重点问题")
public ResponseMessage<IPage<BusinessDeptIssue>> getBussDeptIssue(BusinessDeptIssueVo pageVo){
IPage<BusinessDeptIssue> page = iBusinessDeptIssueService.getBusinessDeptIssue(pageVo);
return Result.success(page);
}
@PostMapping
@ApiOperation("更新事业部重点问题")
public ResponseMessage updateBussDeptIssue(@RequestBody BusinessDeptIssue issue){
boolean b = iBusinessDeptIssueService.updateBusinessDeptIssue(issue);
return Result.success(b);
}
@PostMapping("/closeIssue")
@ApiOperation("批量关闭事业部重点问题")
public ResponseMessage closeBusinessIssue(@RequestParam(value="ids")String idList){
List<String> stringList = Arrays.asList(idList.split(","));
boolean b = iBusinessDeptIssueService.closeBusinessDeptIssue(stringList);
return Result.success(b);
}
@GetMapping("/exportIssue")
@ApiOperation("导出事业部重点问题")
public void exportIssue(HttpServletResponse response,BusinessDeptIssueVo issue) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
//TODO
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
if(issue.getFileName()==null || issue.getFileName()==""){
issue.setFileName("事业部重点问题信息");
}
String fileName = URLEncoder.encode(issue.getFileName(), "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
// List<SarStandUnqualified> data=sarStandUnqualifiedService.getStandUnqualifiedExcelData(standUnqualifiedExcelVO);
JSONObject jsonObject = JSONObject.parseObject(issue.getExportContent());
BusinessDeptIssueVo businessDeptIssueVo = JSONObject.toJavaObject(jsonObject, BusinessDeptIssueVo.class);
IPage<BusinessDeptIssue> page = iBusinessDeptIssueService.getBusinessDeptIssue(businessDeptIssueVo);
// 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), BusinessDeptIssue.class).autoCloseStream(Boolean.FALSE).sheet("sheet1")
.doWrite(page.getRecords());
} catch (Exception e) {
e.printStackTrace();
// 重置response
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
response.getWriter().println(JSONObject.toJSONString(Result.error()));
}
}
}
@@ -0,0 +1,69 @@
package com.adc.da.slrs.sarStandUnqualified.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssueVo;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssueVo;
import com.adc.da.slrs.sarStandUnqualified.service.IBusinessDeptIssueService;
import com.adc.da.slrs.sarStandUnqualified.service.IProductDeptIssueService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@Controller
@RequestMapping("/api/sarStandUnqualified/productDeptIssue")
@Api(tags = "产品规划部重点问题项管控")
public class ProductDeptIssueController {
@Autowired
private IProductDeptIssueService iProductDeptIssueService;
@PutMapping()
@ApiOperation("新增产品规划部重点问题")
public ResponseMessage addProductDeptIssue(@RequestBody ProductDeptIssue issue){
boolean b = iProductDeptIssueService.addProductDeptIssue(issue);
return Result.success(b);
}
@DeleteMapping
@ApiOperation("删除产品规划部重点问题")
public ResponseMessage removeProductDeptIssue(@RequestParam(value="selectedString") String idList){
List<String> stringList = Arrays.asList(idList.split(","));
boolean b = iProductDeptIssueService.removeProductDeptIssue(stringList);
return Result.success(b);
}
@GetMapping
@ApiOperation("查询产品规划部重点问题")
public ResponseMessage<IPage<ProductDeptIssue>> getProductDeptIssue(@RequestParam ProductDeptIssueVo wrapper){
IPage<ProductDeptIssue> issueList = iProductDeptIssueService.getProductDeptIssue(wrapper);
return Result.success(issueList);
}
@PostMapping
@ApiOperation("更新产品规划部重点问题")
public ResponseMessage updateProductDeptIssue(@RequestBody ProductDeptIssue issue){
boolean b = iProductDeptIssueService.updateProductDeptIssue(issue);
return Result.success(b);
}
@PostMapping("/closeProductIssue")
@ApiOperation("关闭产品规划部重点问题")
public ResponseMessage closeProductDeptIssue(String idList){
List<String> stringList = Arrays.asList(idList.split(","));
boolean b = iProductDeptIssueService.closeProductDeptIssue(stringList);
return Result.success(b);
}
}
@@ -2,11 +2,18 @@ package com.adc.da.slrs.sarStandUnqualified.dao;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface BusinessDeptIssueDao extends BaseMapper<BusinessDeptIssue> {
IPage<BusinessDeptIssue> findPage(IPage<BusinessDeptIssue> page, @Param(Constants.WRAPPER) QueryWrapper<BusinessDeptIssue> queryWrapper);
}
@@ -1,8 +1,15 @@
package com.adc.da.slrs.sarStandUnqualified.dao;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssue;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
public interface ProductDeptIssueDao extends BaseMapper<ProductDeptIssue> {
public IPage<ProductDeptIssue> findPage(IPage<ProductDeptIssue> page,@Param(Constants.WRAPPER) QueryWrapper<ProductDeptIssue> wrapper);
}
@@ -1,7 +1,15 @@
package com.adc.da.slrs.sarStandUnqualified.entity;
import com.adc.da.base.page.BasePage;
import com.adc.da.http.PageInfo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -10,17 +18,78 @@ import java.util.Date;
@TableName("business_dept_issue")
public class BusinessDeptIssue {
@ExcelIgnore
@TableId
private String id;
@ExcelIgnore
@TableField("law_id")
private String lawId;
@ExcelProperty("标准号")
@TableField(exist = false)
private String lawNumber;
@ExcelProperty("标准名称")
@TableField(exist = false)
private String lawName;
@ExcelProperty("产品类别")
@TableField("product_type")
private String productType;
@ExcelProperty("实施实践")
@TableField("impl_time")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-mm-dd")
private Date implTime;
@ExcelProperty("实施要求")
@TableField("impl_require")
private String implRequire;
@ExcelProperty("资源符合状态")
@TableField("conform_situation")
private String conformSituation;
@ExcelProperty("开发情况")
@TableField("dev_scheme")
private String devScheme;
@ExcelProperty("sop时间")
@TableField("sop_time")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-mm-dd")
private Date sopTime;
@ExcelProperty("完成情况")
@TableField("complete_situation")
private String completeSituation;
@ExcelProperty("超出sop时限后计划")
@TableField("timeout_situation")
private String timeoutSituation;
@ExcelIgnore
@TableLogic(value = "0",delval = "1")
private String delFlag;
@ExcelProperty("责任部门")
@TableField("response_dept")
private String responseDept;
@ExcelProperty("责任人")
@TableField("response_people")
private String responsePeople;
@ExcelIgnore
@TableField("is_close")
private String isClose;
@ExcelIgnore
@TableField(exist = false)
private Integer page;
@ExcelIgnore
@TableField(exist = false)
private Integer pageSize;
}
@@ -0,0 +1,26 @@
package com.adc.da.slrs.sarStandUnqualified.entity;
import lombok.Data;
import java.util.Arrays;
import java.util.List;
@Data
public class BusinessDeptIssueVo extends BusinessDeptIssue {
private String numberOrName;
private String fileName;
private String idList;
private String exportContent;
public List<String> getIdList(){
if (this.idList!=null){
return Arrays.asList(this.idList.split(","));
}else {
return null;
}
}
}
@@ -1,7 +1,12 @@
package com.adc.da.slrs.sarStandUnqualified.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.models.auth.In;
import lombok.Data;
import java.util.Date;
@@ -10,16 +15,59 @@ import java.util.Date;
@TableName("product_dept_issue")
public class ProductDeptIssue {
@TableId
private String id;
@TableField("law_id")
private String lawId;
@TableField(exist = false)
private String lawsNumber;
@TableField(exist = false)
private String lawsName;
@TableField("product_business")
private String productBusiness;
@TableField("platform")
private String platform;
@TableField("poj_name")
private String pojName;
@TableField("poj_description")
private String pojDescription;
@TableField("current_node")
private String currentNode;
@TableField("conceptual_state")
private String conceptualState;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-mm-dd")
@TableField("scheduled_issuance_time")
private Date scheduledIssuanceTime;
@TableField("revised_plan")
private String revisedPlan;
@TableField("explanation")
private String explanation;
@TableField("response_dept")
private String responseDept;
@TableLogic(value = "0",delval = "1")
private String delFlag;
@TableField("is_close")
private String isClose;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer pageSize;
}
@@ -0,0 +1,4 @@
package com.adc.da.slrs.sarStandUnqualified.entity;
public class ProductDeptIssueVo extends ProductDeptIssue {
}
@@ -1,7 +1,24 @@
package com.adc.da.slrs.sarStandUnqualified.service;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrack;
import com.adc.da.slrs.sarIssueTrack.entity.IssueTrackVo;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssueVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface IBusinessDeptIssueService extends IService<BusinessDeptIssue> {
public boolean addBusinessDeptIssue(BusinessDeptIssue obj);
public boolean removeBusinessDeptIssue(List<String> idList);
public IPage<BusinessDeptIssue> getBusinessDeptIssue(BusinessDeptIssueVo objVo);
public boolean updateBusinessDeptIssue(BusinessDeptIssue obj);
public boolean closeBusinessDeptIssue(List<String> idList);
}
@@ -1,4 +1,21 @@
package com.adc.da.slrs.sarStandUnqualified.service;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssueVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
public interface IProductDeptIssueService {
public boolean addProductDeptIssue(ProductDeptIssue obj);
public boolean removeProductDeptIssue(List<String> idList);
public IPage<ProductDeptIssue> getProductDeptIssue(ProductDeptIssueVo objVo);
public boolean updateProductDeptIssue(ProductDeptIssue obj);
public boolean closeProductDeptIssue(List<String> idList);
}
@@ -2,10 +2,99 @@ package com.adc.da.slrs.sarStandUnqualified.service.impl;
import com.adc.da.slrs.sarStandUnqualified.dao.BusinessDeptIssueDao;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssueVo;
import com.adc.da.slrs.sarStandUnqualified.service.IBusinessDeptIssueService;
import com.adc.da.util.UUIDUtils;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BusinessDeptIssueService extends ServiceImpl<BusinessDeptIssueDao, BusinessDeptIssue> implements IBusinessDeptIssueService {
@Autowired
private BusinessDeptIssueDao businessDeptIssueDao;
@Override
public boolean addBusinessDeptIssue(BusinessDeptIssue obj) {
obj.setId(UUIDUtils.randomUUID20());
obj.setDelFlag("0");
return this.save(obj);
}
@Override
public boolean removeBusinessDeptIssue(List<String> idList) {
return removeByIds(idList);
}
@Override
public IPage<BusinessDeptIssue> getBusinessDeptIssue(BusinessDeptIssueVo pageVo) {
IPage<BusinessDeptIssue> page = new Page<>();
QueryWrapper<BusinessDeptIssue> wrapper = new QueryWrapper<>();
//是否分页
if (pageVo.getPage()!=null && pageVo.getPageSize()!=null){
page=new Page<>(pageVo.getPage(),pageVo.getPageSize());
}else {
Integer count = businessDeptIssueDao.selectCount(wrapper);
page=new Page<>(0,count,false);
}
//查询条件
if (pageVo.getIsClose()!=null){
wrapper.like("is_close",pageVo.getIsClose());
}
if (pageVo.getLawNumber()!=null || pageVo.getLawName()!=null){
wrapper.like("laws.LAWS_NUMBER",pageVo.getLawNumber())
.or()
.like("laws.LAWS_NAME",pageVo.getLawName());
}
if (pageVo.getProductType()!=null){
wrapper.like("product_type",pageVo.getProductType());
}
if (pageVo.getResponseDept()!=null){
wrapper.like("response_dept",pageVo.getResponseDept());
}
/**
* 导出
*/
if (pageVo.getIdList()!=null){
wrapper.in("issue.ID",pageVo.getIdList());
}
page = businessDeptIssueDao.findPage(page, wrapper);
return page;
}
@Override
public boolean updateBusinessDeptIssue(BusinessDeptIssue obj) {
return this.updateById(obj);
}
@Override
public boolean closeBusinessDeptIssue(List<String> idList){
List<BusinessDeptIssue> collect = idList.stream()
.map(item -> {
BusinessDeptIssue businessDeptIssue = new BusinessDeptIssue();
businessDeptIssue.setId(item);
businessDeptIssue.setIsClose("1");
return businessDeptIssue;
}).collect(Collectors.toList());
return this.updateBatchById(collect);
}
}
@@ -2,8 +2,81 @@ package com.adc.da.slrs.sarStandUnqualified.service.impl;
import com.adc.da.slrs.sarStandUnqualified.dao.ProductDeptIssueDao;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssue;
import com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssueVo;
import com.adc.da.slrs.sarStandUnqualified.service.IProductDeptIssueService;
import com.adc.da.util.UUIDUtils;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ProductDeptIssueService extends ServiceImpl<ProductDeptIssueDao,ProductDeptIssue> implements IProductDeptIssueService {
@Autowired
private ProductDeptIssueDao productDeptIssueDao;
@Override
public boolean addProductDeptIssue(ProductDeptIssue obj) {
obj.setId(UUIDUtils.randomUUID20());
obj.setDelFlag("0");
return this.save(obj);
}
@Override
public boolean removeProductDeptIssue(List<String> idList) {
return removeByIds(idList);
}
@Override
public IPage<ProductDeptIssue> getProductDeptIssue(ProductDeptIssueVo objVo) {
IPage<ProductDeptIssue> page=new Page<>(objVo.getPage(),objVo.getPage());
QueryWrapper<ProductDeptIssue> wrapper = new QueryWrapper<>();
if (objVo.getLawsNumber()!=null){
wrapper.like("laws.LAWS_NAME",objVo.getLawsName())
.or()
.like("laws.LAWS_NUMBER",objVo.getLawsNumber());
}
if (objVo.getPojName()!=null){
wrapper.like("poj_name",objVo.getPojName());
}
if (objVo.getResponseDept()!=null){
wrapper.like("response_dept",objVo.getResponseDept());
}
productDeptIssueDao.findPage(page,wrapper);
return page;
}
@Override
public boolean updateProductDeptIssue(ProductDeptIssue obj) {
return this.updateById(obj);
}
@Override
public boolean closeProductDeptIssue(List<String> idList){
List<ProductDeptIssue> collect = idList.stream()
.map(id -> {
ProductDeptIssue productDeptIssue = new ProductDeptIssue();
productDeptIssue.setId(id);
productDeptIssue.setIsClose("1");
return productDeptIssue;
}).collect(Collectors.toList());
return this.updateBatchById(collect);
}
}
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.slrs.sarStandUnqualified.dao.BusinessDeptIssueDao">
<resultMap id="BusinessIssuePage" type="com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue">
<result property="id" column="ID"/>
<result property="lawId" column="law_id"/>
<result property="lawNumber" column="LAWS_NUMBER"/>
<result property="lawName" column="LAWS_NAME"/>
<result property="productType" column="product_type"/>
<result property="implTime" column="impl_time"/>
<result property="implRequire" column="impl_require"/>
<result property="conformSituation" column="conform_situation"/>
<result property="devScheme" column="dev_scheme"/>
<result property="sopTime" column="sop_Time"/>
<result property="completeSituation" column="complete_situation"/>
<result property="timeoutSituation" column="timeout_situation"/>
<result property="responseDept" column="response_dept"/>
<result property="responsePeople" column="response_people"/>
</resultMap>
<select id="findPage" resultMap="BusinessIssuePage">
SELECT
issue.*,laws.LAWS_NUMBER,laws.LAWS_NAME
FROM
business_dept_issue AS issue
LEFT JOIN sar_laws_stand_info AS laws
ON issue.law_id = laws.ID
${ew.customSqlSegment}
</select>
</mapper>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.slrs.sarStandUnqualified.dao.ProductDeptIssueDao">
<resultMap id="ProductIssuePage" type="com.adc.da.slrs.sarStandUnqualified.entity.ProductDeptIssue">
<result property="id" column="ID"/>
<result property="lawId" column="law_id"/>
<result property="lawsNumber" column="LAWS_NUMBER"/>
<result property="productBusiness" column="product_business"/>
<result property="platform" column="platform"/>
<result property="pojName" column="poj_name"/>
<result property="pojDescription" column="poj_description"/>
<result property="currentNode" column="current_node"/>
<result property="conceptualState" column="conceptual_state"/>
<result property="scheduledIssuanceTime" column="scheduled_issuance_time"/>
<result property="revisedPlan" column="revised_plan"/>
<result property="explanation" column="explanation"/>
<result property="responseDept" column="response_dept"/>
</resultMap>
<select id="findPage" resultMap="ProductIssuePage">
SELECT
issue.*,laws.LAWS_NUMBER,laws.LAWS_NAME
FROM
product_dept_issue AS issue
LEFT JOIN sar_laws_stand_info AS laws
ON issue.law_id = laws.ID
${ew.customSqlSegment}
</select>
</mapper>