Commit 0087739a authored by chenhao's avatar chenhao

完成微型消防站优化项的开发

parent ef9a8f1e
package com.yeejoin.amos.boot.module.common.api.dto;
import java.io.Serializable;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "DutyFireFightingDto", description = "微型消防站值班")
public class DutyFireFightingDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "单位ID")
private String teamId;
@ApiModelProperty(value = "单位名称")
private String teamName;
@ApiModelProperty(value = "岗位id")
private String postType;
@ApiModelProperty(value = "岗位名称")
private String postTypeName;
@ApiModelProperty(value = "值班信息")
private List<DutyPersonShiftDto> dutyShift;
@ApiModelProperty(value = "值班开始时间")
private String startTime;
@ApiModelProperty(value = "值班结束时间")
private String endTime;
@ApiModelProperty(value = "微型消防站")
private String fireFighting;
@ApiModelProperty(value = "微型消防站Id")
private String fireFightingId;
}
package com.yeejoin.amos.boot.module.common.api.dto;
import java.io.Serializable;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "DutyFireFightingExcleDto", description = "微型消防站值班")
public class DutyFireFightingExcleDto implements Serializable{
@ExcelIgnore
private static final long serialVersionUID = 1L;
@ExcelProperty(value = "序号", index = 0)
@ApiModelProperty(value = "序号")
private Integer number;
@ExcelIgnore
@ApiModelProperty(value = "单位ID")
private String teamId;
@ExcelProperty(value = "单位名称", index = 1)
@ApiModelProperty(value = "单位名称")
private String teamName;
@ExcelIgnore
@ApiModelProperty(value = "用户id")
private String userId;
@ExcelProperty(value = "用户名称", index = 2)
@ApiModelProperty(value = "用户名称")
private String userName;
// @ExcelIgnore
// @ApiModelProperty(value = "部门id")
// private String deptId;
// @ExcelIgnore
// @ApiModelProperty(value = "部门名称")
// private String deptName;
@ExcelIgnore
@ApiModelProperty(value = "岗位id")
private String postType;
@ExcelProperty(value = "岗位", index = 3)
@ApiModelProperty(value = "岗位名称")
private String postTypeName;
@ExcelProperty(value = "微型消防站", index = 4)
@ApiModelProperty(value = "微型消防站")
private String fireFighting;
@ExcelIgnore
@ApiModelProperty(value = "微型消防站Id")
private String fireFightingId;
@ExcelIgnore
@ApiModelProperty(value = "值班信息")
private List<DutyPersonShiftDto> dutyShift;
@ExcelIgnore
@ApiModelProperty(value = "值班开始时间")
private String startTime;
@ExcelIgnore
@ApiModelProperty(value = "值班结束时间")
private String endTime;
}
...@@ -75,4 +75,7 @@ public class OrgUsrDto extends BaseDto { ...@@ -75,4 +75,7 @@ public class OrgUsrDto extends BaseDto {
@ApiModelProperty(value = "动态表单值") @ApiModelProperty(value = "动态表单值")
private List<DynamicFormInstance> dynamicFormValue; private List<DynamicFormInstance> dynamicFormValue;
@ApiModelProperty(value = "动态表单值-DTO类型")
private List<DynamicFormInstanceDto> dynamicFormValueDto;
} }
...@@ -6,18 +6,25 @@ import java.io.OutputStream; ...@@ -6,18 +6,25 @@ import java.io.OutputStream;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.alibaba.excel.annotation.ExcelProperty; import org.apache.poi.ss.usermodel.BorderStyle;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader; import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.read.metadata.ReadSheet; import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont; import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
...@@ -36,20 +43,19 @@ public class ExcelUtil { ...@@ -36,20 +43,19 @@ public class ExcelUtil {
* @param model 导出的头 * @param model 导出的头
* @param flag true模板填充下拉 false 不填充 * @param flag true模板填充下拉 false 不填充
*/ */
public static void createTemplate(HttpServletResponse response, String fileName, public static void createTemplate(HttpServletResponse response, String fileName, String sheetName,
String sheetName, List<? extends Object> data, List<? extends Object> data, Class<?> model, DataSources dataDictionaryMapper, boolean flag) {
Class<?> model, DataSources dataDictionaryMapper, boolean flag) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle(); HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try { try {
//下拉列表集合 // 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>(); Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) { if (flag) {
//循环获取对应列得下拉列表信息 // 循环获取对应列得下拉列表信息
Field[] declaredFields = model.getDeclaredFields(); Field[] declaredFields = model.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) { for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i]; Field field = declaredFields[i];
//解析注解信息 // 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class); ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper); resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
} }
...@@ -58,8 +64,7 @@ public class ExcelUtil { ...@@ -58,8 +64,7 @@ public class ExcelUtil {
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName) .excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap)) .registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler()) .registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy) .registerWriteHandler(horizontalCellStyleStrategy).doWrite(data);
.doWrite(data);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("系统异常!"); throw new RuntimeException("系统异常!");
...@@ -77,10 +82,9 @@ public class ExcelUtil { ...@@ -77,10 +82,9 @@ public class ExcelUtil {
* @param model 导出的头 * @param model 导出的头
* @param flag true模板填充下拉 false 不填充 * @param flag true模板填充下拉 false 不填充
*/ */
public static void createDutyTemplate(HttpServletResponse response, String fileName, String sheetName, List<? public static void createDutyTemplate(HttpServletResponse response, String fileName, String sheetName,
extends Object> data, Class<?> model, List<String> dayByMonth, String[] dutyNameList, List<? extends Object> data, Class<?> model, List<String> dayByMonth, String[] dutyNameList,
DataSources dataDictionaryMapper, DataSources dataDictionaryMapper, boolean flag, boolean typeFlag) {
boolean flag) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle(); HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try { try {
...@@ -104,13 +108,13 @@ public class ExcelUtil { ...@@ -104,13 +108,13 @@ public class ExcelUtil {
dutyCarTitleList.add(dutyDay); dutyCarTitleList.add(dutyDay);
} }
} }
//下拉列表集合 // 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>(); Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) { if (flag) {
// 组装下拉列表 // 组装下拉列表
for (int i = 0; i < declaredFields.length; i++) { for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i]; Field field = declaredFields[i];
//解析注解信息 // 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class); ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper); resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
} }
...@@ -122,12 +126,44 @@ public class ExcelUtil { ...@@ -122,12 +126,44 @@ public class ExcelUtil {
} }
// String s = new String(fileName.getBytes(), "UTF-8"); // String s = new String(fileName.getBytes(), "UTF-8");
// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(s, "UTF-8")); // response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(s, "UTF-8"));
ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.write(getOutputStream(fileName, response, ExcelWriterSheetBuilder excelWriterSheetBuilder = null;
ExcelTypeEnum.XLSX)).head(dutyCarTitleList).excelType(ExcelTypeEnum.XLSX) ;
.sheet(sheetName).registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap)) if (typeFlag) {
List<Map<Integer, String[]>> fireStationExplicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
List<List<Object>> resultList =new ArrayList<List<Object>>();
data.stream().forEach(i -> {
Map<Integer, String[]> map = new HashMap<>();
List<Object> detail = (List<Object>) i;
// 微型消防站中的对应单位微型消防站下拉列表数据的集合
List<String> fireStationDetailList = (List<String>) detail.get(detail.size()-1);
String[] strings = new String[fireStationDetailList.size()];
map.put(4, fireStationDetailList.toArray(strings));
map.putAll(explicitListConstraintMap);
fireStationExplicitListConstraintMap.add(map);
detail.remove(detail.size()-1);
resultList.add(detail);
});
excelWriterSheetBuilder= EasyExcel
.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX))
.head(dutyCarTitleList)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(
new TemplateDynamicCellWriteHandlerDate(fireStationExplicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(resultList);
} else {
excelWriterSheetBuilder= EasyExcel
.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX))
.head(dutyCarTitleList)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(
new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler()) .registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy); .registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(data); excelWriterSheetBuilder.doWrite(data);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("系统异常!"); throw new RuntimeException("系统异常!");
...@@ -153,7 +189,6 @@ public class ExcelUtil { ...@@ -153,7 +189,6 @@ public class ExcelUtil {
return readExcel(reader, rowType, 0); return readExcel(reader, rowType, 0);
} }
/** /**
* 读取 Excel(多个 sheet) * 读取 Excel(多个 sheet)
* *
...@@ -168,15 +203,12 @@ public class ExcelUtil { ...@@ -168,15 +203,12 @@ public class ExcelUtil {
return new ArrayList<>(); return new ArrayList<>();
} }
ExcelListener<T> excelListener = new ExcelListener<>(); ExcelListener<T> excelListener = new ExcelListener<>();
ReadSheet readSheet = EasyExcel.readSheet(sheetCount) ReadSheet readSheet = EasyExcel.readSheet(sheetCount).head(rowModel).registerReadListener(excelListener)
.head(rowModel)
.registerReadListener(excelListener)
.build(); .build();
reader.read(readSheet); reader.read(readSheet);
return excelListener.getList(); return excelListener.getList();
} }
/** /**
* @param excel 需要解析的 Excel 文件 * @param excel 需要解析的 Excel 文件
* @param header 指定不读取表头行数, * @param header 指定不读取表头行数,
...@@ -188,22 +220,20 @@ public class ExcelUtil { ...@@ -188,22 +220,20 @@ public class ExcelUtil {
if (fileName == null) { if (fileName == null) {
throw new Exception("文件不存在!"); throw new Exception("文件不存在!");
} }
if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue()) && !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) { if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue())
&& !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) {
throw new Exception("文件类型异常!"); throw new Exception("文件类型异常!");
} }
InputStream inputStream; InputStream inputStream;
try { try {
inputStream = excel.getInputStream(); inputStream = excel.getInputStream();
return EasyExcel.read(inputStream). return EasyExcel.read(inputStream).headRowNumber(header).build();
headRowNumber(header).
build();
} catch (IOException e) { } catch (IOException e) {
//do something // do something
} }
return null; return null;
} }
/** /**
* 解析注解内容 获取下列表信息 * 解析注解内容 获取下列表信息
* *
...@@ -211,17 +241,16 @@ public class ExcelUtil { ...@@ -211,17 +241,16 @@ public class ExcelUtil {
* @return * @return
*/ */
public static Map<Integer, String[]> resolveExplicitConstraint(Map<Integer, String[]> explicitListConstraintMap, public static Map<Integer, String[]> resolveExplicitConstraint(Map<Integer, String[]> explicitListConstraintMap,
ExplicitConstraint explicitConstraint, ExplicitConstraint explicitConstraint, DataSources dataDictionaryMapper) {
DataSources dataDictionaryMapper) {
if (explicitConstraint == null) { if (explicitConstraint == null) {
return null; return null;
} }
//固定下拉信息 // 固定下拉信息
String[] source = explicitConstraint.source(); String[] source = explicitConstraint.source();
if (source.length > 0) { if (source.length > 0) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source); explicitListConstraintMap.put(explicitConstraint.indexNum(), source);
} }
//动态下拉信息 // 动态下拉信息
Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass(); Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass();
if (classes.length > 0) { if (classes.length > 0) {
ExplicitInterface explicitInterface = null; ExplicitInterface explicitInterface = null;
...@@ -243,21 +272,20 @@ public class ExcelUtil { ...@@ -243,21 +272,20 @@ public class ExcelUtil {
return null; return null;
} }
/** /**
* 导出文件时为Writer生成OutputStream * 导出文件时为Writer生成OutputStream
*/ */
private static OutputStream getOutputStream(String fileName, HttpServletResponse response, private static OutputStream getOutputStream(String fileName, HttpServletResponse response,
ExcelTypeEnum excelTypeEnum) throws Exception { ExcelTypeEnum excelTypeEnum) throws Exception {
//创建本地文件 // 创建本地文件
String filePath = fileName + excelTypeEnum.getValue(); String filePath = fileName + excelTypeEnum.getValue();
try { try {
fileName = new String(filePath.getBytes(),"UTF-8"); fileName = new String(filePath.getBytes(), "UTF-8");
response.setCharacterEncoding(StandardCharsets.UTF_8.name()); response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType("application/vnd.ms-excel"); response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "filename=" + fileName); response.addHeader("Content-Disposition", "filename=" + fileName);
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, response.setHeader("Content-Disposition",
StandardCharsets.UTF_8.name())); "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()));
return response.getOutputStream(); return response.getOutputStream();
} catch (IOException e) { } catch (IOException e) {
throw new Exception("系统异常"); throw new Exception("系统异常");
...@@ -293,12 +321,11 @@ public class ExcelUtil { ...@@ -293,12 +321,11 @@ public class ExcelUtil {
// // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭 // // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// return horizontalCellStyleStrategy; // return horizontalCellStyleStrategy;
// 表头样式策略 // 表头样式策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle(); WriteCellStyle headWriteCellStyle = new WriteCellStyle();
//设置表头居中对齐 // 设置表头居中对齐
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
//表头前景色 // 表头前景色
headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
WriteFont headWriteFont = new WriteFont(); WriteFont headWriteFont = new WriteFont();
headWriteFont.setBold(true); headWriteFont.setBold(true);
...@@ -306,23 +333,23 @@ public class ExcelUtil { ...@@ -306,23 +333,23 @@ public class ExcelUtil {
headWriteFont.setFontHeightInPoints((short) 10); headWriteFont.setFontHeightInPoints((short) 10);
headWriteCellStyle.setWriteFont(headWriteFont); headWriteCellStyle.setWriteFont(headWriteFont);
//2 内容样式策略 // 2 内容样式策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
WriteFont contentWriteFont = new WriteFont(); WriteFont contentWriteFont = new WriteFont();
//内容字体大小 // 内容字体大小
contentWriteFont.setFontName("宋体"); contentWriteFont.setFontName("宋体");
contentWriteFont.setFontHeightInPoints((short) 10); contentWriteFont.setFontHeightInPoints((short) 10);
contentWriteCellStyle.setWriteFont(contentWriteFont); contentWriteCellStyle.setWriteFont(contentWriteFont);
//设置自动换行 // 设置自动换行
contentWriteCellStyle.setWrapped(true); contentWriteCellStyle.setWrapped(true);
//设置垂直居中 // 设置垂直居中
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 头默认了 FillPatternType所以可以不指定。 // 头默认了 FillPatternType所以可以不指定。
// contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND); // contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
//设置水平居中 // 设置水平居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
//设置边框样式 // 设置边框样式
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN); contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
contentWriteCellStyle.setBorderTop(BorderStyle.THIN); contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
contentWriteCellStyle.setBorderRight(BorderStyle.THIN); contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
......
package com.yeejoin.amos.boot.module.common.api.excel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
public class TemplateDynamicCellWriteHandlerDate implements SheetWriteHandler{
/**
* 构造器注入
*/
private List<Map<Integer, String[]>> explicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
public TemplateDynamicCellWriteHandlerDate(List<Map<Integer, String[]>> explicitListConstraintMap) {
this.explicitListConstraintMap = explicitListConstraintMap;
}
/**
* 避免生成的导入模板下拉值获取不到
*/
private static final Integer LIMIT_NUMBER = 0;
/**
* 返回excel列标A-Z-AA-ZZ
*
* @param num 列数
* @return java.lang.String
*/
private String getExcelLine(int num) {
String line = "";
int first = num / 26;
int second = num % 26;
if (first > 0) {
line = (char) ('A' + first - 1) + "";
}
line += (char) ('A' + second) + "";
return line;
}
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
// TODO Auto-generated method stub
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
if(explicitListConstraintMap!=null) {
// 这里可以对cell进行任何操作
Sheet sheet = writeSheetHolder.getSheet();
DataValidationHelper helper = sheet.getDataValidationHelper();
for(int index =0 ; index < explicitListConstraintMap.size() ;index++ ) {
int startIndex = index+1;
explicitListConstraintMap.get(index).forEach((k, v)->{
// 设置下拉单元格的首行 末行 首列 末列
CellRangeAddressList rangeList = new CellRangeAddressList(startIndex, startIndex, k, k);
// 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到
if (v.length > LIMIT_NUMBER) {
//定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k
String sheetName = "hidden" +startIndex + k;
Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet hiddenSheet = workbook.createSheet(sheetName);
for (int i = 0, length = v.length; i < length; i++) {
// 开始的行数i,列数k
hiddenSheet.createRow(i).createCell(k).setCellValue(v[i]);
}
Name category1Name = workbook.createName();
category1Name.setNameName(sheetName);
String excelLine = getExcelLine(k);
// =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String refers = "=" + sheetName + "!$" + excelLine + "$1:$" + excelLine + "$" + (v.length + 1);
// 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint constraint = helper.createFormulaListConstraint(refers);
DataValidation dataValidation = helper.createValidation(constraint, rangeList);
if(dataValidation instanceof XSSFDataValidation){
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
}else{
dataValidation.setSuppressDropDownArrow(false);
}
writeSheetHolder.getSheet().addValidationData(dataValidation);
// 设置存储下拉列值得sheet为隐藏
int hiddenIndex = workbook.getSheetIndex(sheetName);
if (!workbook.isSheetHidden(hiddenIndex)) {
workbook.setSheetHidden(hiddenIndex, true);
}
}
});
}
}
}
}
package com.yeejoin.amos.boot.module.common.api.service; package com.yeejoin.amos.boot.module.common.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto;
import java.text.ParseException; import java.text.ParseException;
import java.util.List; import java.util.List;
...@@ -86,4 +87,33 @@ public interface IDutyCommonService { ...@@ -86,4 +87,33 @@ public interface IDutyCommonService {
* @return * @return
*/ */
List<Long> getDutyShiftIdList(); List<Long> getDutyShiftIdList();
/**
* 添加动态表单数据保存的方法,返回保存数据的instanceid
* @param userId
* @param map
* @param groupCode
* @return
*/
public Long excuteDynamicFormInstance( String userId,Map<String, Object> map, String groupCode);
/**
* 修改动态表单数据
* @param groupCode
* @param instanceId
* @param map
*/
public void updateDynamicFormInstance(String groupCode,Long instanceId, Map<String, Object> map) ;
/**
* 保存值班人的信息---
* @param instanceId
* @param dutyShift
* @param startTime
*/
public void saveDutyPersonShiftDetail( Long instanceId ,List<DutyPersonShiftDto> dutyShift ,String startTime) ;
/**
* 添加值班人的信息 可以保存空信息
* @param instanceId
* @param dutyShiftList
*/
public void insertPersonShift(Long instanceId, List<DutyPersonShiftDto> dutyShiftList);
} }
package com.yeejoin.amos.boot.module.common.api.service;
import com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto;
public interface IDutyFireFightingService extends IDutyCommonService {
/**
* 值班信息保存
* @param DutyFireFightingDto 对象
* @return List<DutyCarDto>
*/
DutyFireFightingDto save(DutyFireFightingDto dto);
/**
* 更新
* @param instanceId 实例id
* @param DutyFireFightingDto 业务对象
* @return List<DutyCarDto>
*/
DutyFireFightingDto update(Long instanceId, DutyFireFightingDto dto);
}
...@@ -216,4 +216,10 @@ public interface IOrgUsrService { ...@@ -216,4 +216,10 @@ public interface IOrgUsrService {
* @return * @return
*/ */
List<OrgUsrExcelDto> exportPersonToExcelByParentId(Long parentId); List<OrgUsrExcelDto> exportPersonToExcelByParentId(Long parentId);
/**
* 查询目标公司下所有人员的简要信息,数据包含:所在公司id和name ,人员id和name,岗位id和name
* @param ids
* @return
*/
public List<Map<String, Object>> getPersonDetailByCompanyIds(List<String> ids);
} }
...@@ -25,8 +25,8 @@ public enum ExcelEnums { ...@@ -25,8 +25,8 @@ public enum ExcelEnums {
// BUG 2455 相关代码 bykongfm // BUG 2455 相关代码 bykongfm
TGRY ("特岗人员", "特岗人员", "com.yeejoin.amos.boot.module.common.api.dto.SpecialPositionStaffDto","TGRY"),//("TGRY","特岗人员") TGRY ("特岗人员", "特岗人员", "com.yeejoin.amos.boot.module.common.api.dto.SpecialPositionStaffDto","TGRY"),//("TGRY","特岗人员")
JYZB ("救援装备", "救援装备", "com.yeejoin.amos.boot.module.common.api.dto.RescueEquipmentDto","JYZB"),//("JYZB","救援装备") JYZB ("救援装备", "救援装备", "com.yeejoin.amos.boot.module.common.api.dto.RescueEquipmentDto","JYZB"),//("JYZB","救援装备")
XFZB ("消防装备", "消防装备", "com.yeejoin.amos.boot.module.common.api.dto.EquipmentDetailDownloadTemplateDto","XFZB");//("XFZB","消防装备") XFZB ("消防装备", "消防装备", "com.yeejoin.amos.boot.module.common.api.dto.EquipmentDetailDownloadTemplateDto","XFZB"),//("XFZB","消防装备")
WXXFZB("微型消防站值班", "微型消防站值班", "com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingExcleDto","WXXFZB");//("WXXFZB","微型消防站值班")
private String fileName; private String fileName;
private String sheetName; private String sheetName;
private String classUrl; private String classUrl;
......
package com.yeejoin.amos.boot.module.common.biz.controller;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto;
import com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@RestController
@Api(tags = "微型消防站值班接口Api")
@RequestMapping(value = "/common/duty-FireFighting")
public class DutyFireFightingController extends BaseController{
@Autowired
IDutyFireFightingService iDutyFireFightingService;
/**
* 值班列表视图--分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page-list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图-分页", notes = "值班列表视图-分页")
public ResponseModel<IPage<Map<String, Object>>> pageList(
@ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate,
@ApiParam(value = "当前页", required = true) @RequestParam(value = "current") int current,
@ApiParam(value = "页面大小", required = true) @RequestParam(value = "size") int size) throws ParseException {
return ResponseHelper.buildResponse(iDutyFireFightingService.pageList(current, size, beginDate, endDate));
}
/**
* 值班列表视图--不分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图-不分页", notes = "值班列表视图-不分页")
public ResponseModel list(
@ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate) throws ParseException {
return ResponseHelper.buildResponse(iDutyFireFightingService.list(null,beginDate, endDate));
}
/**
* 值班月视图
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping("/statistics-day")
@ApiOperation(httpMethod = "GET", value = "值班月视图", notes = "值班月视图")
public ResponseModel<List<Map<String, Object>>> dutyDetail(
@ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate
) throws ParseException {
return ResponseHelper.buildResponse(iDutyFireFightingService.statisticsDay(beginDate, endDate));
}
/**
* 调班
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping("/duty-adjust")
@ApiOperation(httpMethod = "POST", value = "调班保存", notes = "调班保存")
public ResponseModel dutyAdjustSave(@RequestBody DutyFireFightingDto dto) {
return ResponseHelper.buildResponse(iDutyFireFightingService.save(dto));
}
/**
* 调班
*
* @param instanceId 实例id
* @param dutyCarDto 业务对象
* @return DutyCarDto
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping("/duty-adjust")
@ApiOperation(httpMethod = "PUT", value = "调班更新", notes = "调班更新")
public ResponseModel dutyAdjustUpdate(
@RequestParam Long instanceId,
@RequestBody DutyFireFightingDto dto) {
return ResponseHelper.buildResponse(iDutyFireFightingService.update(instanceId, dto));
}
/**
* 微型消防站导出
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping("/exportExcel")
@ApiOperation(httpMethod = "GET", value = "微型消防站导出", notes = "微型消防站导出")
public ResponseModel exportExcel(HttpServletResponse response, @ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate) throws ParseException {
return ResponseHelper.buildResponse(iDutyFireFightingService.downloadList(beginDate, endDate));
}
/**
* 值班数据删除
*
* @param instanceId 实例id
* @param startTime 开始时间
* @param endTime 结束时间
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping("/{instanceId}/{startTime}/{endTime}")
@ApiOperation(httpMethod = "DELETE", value = "值班数据删除", notes = "值班数据删除")
public ResponseModel deleteDutyData(@PathVariable Long instanceId,@PathVariable String startTime,@PathVariable String endTime) {
if (ValidationUtil.isEmpty(instanceId)
|| ValidationUtil.isEmpty(startTime)
|| ValidationUtil.isEmpty(endTime)){
throw new BadRequest("参数校验失败.");
}
return ResponseHelper.buildResponse(iDutyFireFightingService.deleteDutyData(instanceId, startTime, endTime));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("查询指定日期值班人信息列表")
@GetMapping("/person/{dutyDay}/list")
public ResponseModel listDutyPerson(@ApiParam(value = "值班日期",required = true) @PathVariable String dutyDay,
@ApiParam(value = "班次id") @RequestParam(required = false) Long shiftId,
@ApiParam(value = "岗位") @RequestParam(required = false) String postType){
return ResponseHelper.buildResponse(iDutyFireFightingService.dayDutyPersonList(dutyDay,shiftId,postType));
}
}
package com.yeejoin.amos.boot.module.common.biz.controller; package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import java.text.ParseException;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import java.util.List;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto; import java.util.Map;
import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...@@ -17,11 +23,14 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest; ...@@ -17,11 +23,14 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage;
import javax.servlet.http.HttpServletResponse; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.text.ParseException; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import java.util.List; import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/** /**
......
package com.yeejoin.amos.boot.module.common.biz.service.impl; package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto;
import com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift; import com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
...@@ -12,23 +29,6 @@ import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient; ...@@ -12,23 +29,6 @@ import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.common.api.mapper.FirefightersMapper; import com.yeejoin.amos.boot.module.common.api.mapper.FirefightersMapper;
import com.yeejoin.amos.boot.module.common.api.service.IDutyCarService; import com.yeejoin.amos.boot.module.common.api.service.IDutyCarService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @author DELL * @author DELL
*/ */
...@@ -58,14 +58,6 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa ...@@ -58,14 +58,6 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa
public DutyCarDto save(DutyCarDto dutyCarDto) { public DutyCarDto save(DutyCarDto dutyCarDto) {
// BUG 2807 更新人员车辆排版值班的保存逻辑 如果没有填写数据则保存空数据 。 同步修改 查询 导出相关逻辑 by kongfm 2021-09-14 // BUG 2807 更新人员车辆排版值班的保存逻辑 如果没有填写数据则保存空数据 。 同步修改 查询 导出相关逻辑 by kongfm 2021-09-14
//1.保存行数据 //1.保存行数据
String groupCode = this.getGroupCode();
String userId = dutyCarDto.getUserId();
List<DynamicFormInstance> instances = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "userId")
.eq(DynamicFormInstance::getFieldValue, userId)
.eq(DynamicFormInstance::getGroupCode, this.getGroupCode()));
Long instanceId = null;
if(StringUtils.isNotEmpty(dutyCarDto.getDutyAreaId())) { if(StringUtils.isNotEmpty(dutyCarDto.getDutyAreaId())) {
// 根据建筑id 查找建筑 // 根据建筑id 查找建筑
ResponseModel<Map<String, Object>> response = null; ResponseModel<Map<String, Object>> response = null;
...@@ -78,102 +70,28 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa ...@@ -78,102 +70,28 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa
dutyCarDto.setDutyArea(result.get("name").toString()); dutyCarDto.setDutyArea(result.get("name").toString());
} }
Map<String, Object> map = Bean.BeantoMap(dutyCarDto); Map<String, Object> map = Bean.BeantoMap(dutyCarDto);
if (!instances.isEmpty()) {
// 0.定位instanceId,准备进行更新操作
instanceId = instances.get(0).getInstanceId(); // 已经有了走更新方法
//1.查询已有数据
List<DynamicFormInstance> hasInstances = dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
//2.list 转 map
Map<Object, DynamicFormInstance> instanceMap = Bean.listToMap(hasInstances, "fieldCode", DynamicFormInstance.class);
//3.查询列数据,已列为主
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
//4.已列为主 填充动态表单数据
List<DynamicFormInstance> entrys = new ArrayList<>();
for (DynamicFormColumn column : columns) {
DynamicFormInstance formInstance = instanceMap.get(column.getFieldCode());
if (!ObjectUtils.isEmpty(formInstance)) {
//有的更新
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
} else {
//没有的新增
formInstance = new DynamicFormInstance();
buildFormInstanceData(instanceId, map, column, formInstance);
}
entrys.add(formInstance);
}
if(!entrys.isEmpty()){
dynamicFormInstanceService.saveOrUpdateBatch(entrys);
}
} else { // 修改操作动态表单的方法,修改人陈浩 -------------start 2021-09-28
instanceId = dynamicFormInstanceService.commonSave(groupCode,map); Long instanceId =excuteDynamicFormInstance(dutyCarDto.getUserId(),map,this.getGroupCode());
} saveDutyPersonShiftDetail( instanceId ,dutyCarDto.getDutyShift() ,dutyCarDto.getStartTime()) ;
insertPersonShift(instanceId, dutyCarDto.getDutyShift());
if(dutyCarDto.getDutyShift() != null && dutyCarDto.getDutyShift().size() == 0) { // 修改操作动态表单的方法,修改人陈浩 -------------end 2021-09-28
Calendar startDate = Calendar.getInstance();
startDate.setTime(DateUtils.longStr2Date(dutyCarDto.getStartTime()));
int dates = startDate.getActualMaximum(Calendar.DAY_OF_MONTH);
startDate.set(Calendar.DAY_OF_MONTH, 1);
List<DutyPersonShift> dutyShift = new ArrayList<>(dates);
for (int i = 0 ; i < dates ; i ++) {
DutyPersonShift temp = new DutyPersonShift();
temp.setAppKey(RequestContext.getAppKey());
temp.setDutyDate(startDate.getTime());
temp.setIsDelete(false);
temp.setInstanceId(instanceId);
dutyShift.add(temp);
startDate.add(Calendar.DAY_OF_YEAR,1);
}
dutyPersonShiftService.saveOrUpdateBatch(dutyShift);
}
//2.保存值班信息
insertPersonShift(instanceId, dutyCarDto);
//3.返回保存后的数据 //3.返回保存后的数据
return dutyCarDto; return dutyCarDto;
} }
@Override @Override
public DutyCarDto update(Long instanceId, DutyCarDto dutyCarDto) { public DutyCarDto update(Long instanceId, DutyCarDto dutyCarDto) {
String groupCode = this.getGroupCode();
//1.查询已有数据 //修改操作动态表单修改的逻辑方法,陈浩 start ----2021-09-28
List<DynamicFormInstance> instances = dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId)); updateDynamicFormInstance(this.getGroupCode(),instanceId,Bean.BeantoMap(dutyCarDto));
//2.list 转 map //修改操作动态表单修改的逻辑方法,陈浩 end ----2021-09-28
Map<Object, DynamicFormInstance> instanceMap = Bean.listToMap(instances, "fieldCode", DynamicFormInstance.class);
//3.查询列数据,已列为主
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
//页面数据转Map
Map<String, Object> map = Bean.BeantoMap(dutyCarDto);
//4.已列为主 填充动态表单数据
List<DynamicFormInstance> entrys = new ArrayList<>();
updateFormValue(entrys, map, instanceId, columns, instanceMap);
if (!entrys.isEmpty()) {
dynamicFormInstanceService.saveOrUpdateBatch(entrys);
}
//5.更新值班信息人日期数据 //5.更新值班信息人日期数据
insertPersonShift(instanceId, dutyCarDto); insertPersonShift(instanceId, dutyCarDto.getDutyShift());
return dutyCarDto; return dutyCarDto;
} }
private void insertPersonShift(Long instanceId, DutyCarDto dutyCarDto) {
Set<DutyPersonShift> personShiftList = dutyCarDto.getDutyShift().stream().map(dto -> {
// BUG 2807 修改时发现BUG 车辆保存有问题 by kongfm 2021-09-14
// 根据instanceId 和 日期查找 如果有则更新
DutyPersonShift dutyPersonShift = dutyPersonShiftService.getOne(new LambdaQueryWrapper<DutyPersonShift>().eq(DutyPersonShift::getInstanceId,instanceId).eq(DutyPersonShift::getDutyDate,dto.getDutyDate()));
if(dutyPersonShift == null) {
dutyPersonShift = new DutyPersonShift();
}
dto.setInstanceId(instanceId);
Bean.copyExistPropertis(dto, dutyPersonShift);
dutyPersonShift.setAppKey(RequestContext.getAppKey());
return dutyPersonShift;
}).collect(Collectors.toSet());
if (!personShiftList.isEmpty()) {
dutyPersonShiftService.saveOrUpdateBatch(personShiftList);
}
}
private void buildFormInstanceData(Long instanceId, Map<String, Object> map, DynamicFormColumn column, DynamicFormInstance formInstance) { private void buildFormInstanceData(Long instanceId, Map<String, Object> map, DynamicFormColumn column, DynamicFormInstance formInstance) {
fillFormInstanceData(instanceId, map, column, formInstance, sequence.nextId()); fillFormInstanceData(instanceId, map, column, formInstance, sequence.nextId());
......
...@@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence; ...@@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto;
...@@ -294,8 +295,10 @@ public class DutyCommonServiceImpl implements IDutyCommonService { ...@@ -294,8 +295,10 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
String fileName; String fileName;
if ("dutyCar".equals(groupCode)) { if ("dutyCar".equals(groupCode)) {
list = jsonArray.toJavaList(DutyCarDto.class); list = jsonArray.toJavaList(DutyCarDto.class);
} else { } else if("dutyPerson".equals(groupCode)){
list = jsonArray.toJavaList(DutyPersonDto.class); list = jsonArray.toJavaList(DutyPersonDto.class);
}else if("dutyFireFighting".equals(groupCode)){
list = jsonArray.toJavaList(DutyFireFightingDto.class);
} }
return list; return list;
} }
...@@ -487,4 +490,105 @@ public class DutyCommonServiceImpl implements IDutyCommonService { ...@@ -487,4 +490,105 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
public List<Long> getDutyShiftIdList() { public List<Long> getDutyShiftIdList() {
return getOnDuty(new DateTime()); return getOnDuty(new DateTime());
} }
/***
* 将操作动态表单的方法单独提出来
* @author 陈浩
* @serialData 2021-09-28
* @param userId
* @param map
* @param groupCode
* @return
*/
public Long excuteDynamicFormInstance( String userId,Map<String, Object> map, String groupCode) {
List<DynamicFormInstance> instances = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "userId")
.eq(DynamicFormInstance::getFieldValue, userId)
.eq(DynamicFormInstance::getGroupCode, this.getGroupCode()));
Long instanceId = null;
if (!instances.isEmpty()) {
// 0.定位instanceId,准备进行更新操作
instanceId = instances.get(0).getInstanceId(); // 已经有了走更新方法
//1.查询已有数据
List<DynamicFormInstance> hasInstances = dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
//2.list 转 map
Map<Object, DynamicFormInstance> instanceMap = Bean.listToMap(hasInstances, "fieldCode", DynamicFormInstance.class);
//3.查询列数据,已列为主
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
//4.已列为主 填充动态表单数据
List<DynamicFormInstance> entrys = new ArrayList<>();
for (DynamicFormColumn column : columns) {
DynamicFormInstance formInstance = instanceMap.get(column.getFieldCode());
if (!ObjectUtils.isEmpty(formInstance)) {
//有的更新
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
} else {
//没有的新增
formInstance = new DynamicFormInstance();
buildFormInstanceData(instanceId, map, column, formInstance);
}
entrys.add(formInstance);
}
if(!entrys.isEmpty()){
dynamicFormInstanceService.saveOrUpdateBatch(entrys);
}
} else {
instanceId = dynamicFormInstanceService.commonSave(groupCode,map);
}
return instanceId;
}
public void updateDynamicFormInstance(String groupCode,Long instanceId, Map<String, Object> map) {
//1.查询已有数据
List<DynamicFormInstance> instances = dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
//2.list 转 map
Map<Object, DynamicFormInstance> instanceMap = Bean.listToMap(instances, "fieldCode", DynamicFormInstance.class);
//3.查询列数据,已列为主
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
//页面数据转Map
//4.已列为主 填充动态表单数据
List<DynamicFormInstance> entrys = new ArrayList<>();
updateFormValue(entrys, map, instanceId, columns, instanceMap);
if (!entrys.isEmpty()) {
dynamicFormInstanceService.saveOrUpdateBatch(entrys);
}
}
public void saveDutyPersonShiftDetail( Long instanceId ,List<DutyPersonShiftDto> dutyShift ,String startTime) {
if(dutyShift != null && dutyShift.size() == 0) {
Calendar startDate = Calendar.getInstance();
startDate.setTime(DateUtils.longStr2Date(startTime));
int dates = startDate.getActualMaximum(Calendar.DAY_OF_MONTH);
startDate.set(Calendar.DAY_OF_MONTH, 1);
List<DutyPersonShift> dutyShiftList = new ArrayList<>(dates);
for (int i = 0 ; i < dates ; i ++) {
DutyPersonShift temp = new DutyPersonShift();
temp.setAppKey(RequestContext.getAppKey());
temp.setDutyDate(startDate.getTime());
temp.setIsDelete(false);
temp.setInstanceId(instanceId);
dutyShiftList.add(temp);
startDate.add(Calendar.DAY_OF_YEAR,1);
}
dutyPersonShiftService.saveOrUpdateBatch(dutyShiftList);
}
}
public void insertPersonShift(Long instanceId, List<DutyPersonShiftDto> dutyShiftList) {
Set<DutyPersonShift> personShiftList = dutyShiftList.stream().map(dto -> {
// BUG 2807 修改时发现BUG 车辆保存有问题 by kongfm 2021-09-14
// 根据instanceId 和 日期查找 如果有则更新
DutyPersonShift dutyPersonShift = dutyPersonShiftService.getOne(new LambdaQueryWrapper<DutyPersonShift>().eq(DutyPersonShift::getInstanceId,instanceId).eq(DutyPersonShift::getDutyDate,dto.getDutyDate()));
if(dutyPersonShift == null) {
dutyPersonShift = new DutyPersonShift();
}
dto.setInstanceId(instanceId);
Bean.copyExistPropertis(dto, dutyPersonShift);
dutyPersonShift.setAppKey(RequestContext.getAppKey());
return dutyPersonShift;
}).collect(Collectors.toSet());
if (!personShiftList.isEmpty()) {
dutyPersonShiftService.saveOrUpdateBatch(personShiftList);
}
}
} }
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.Bean;
import com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireStationDto;
import com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService;
@Service
public class DutyFireFightingServiceImpl extends DutyCommonServiceImpl implements IDutyFireFightingService {
@Autowired
FireStationServiceImpl fireStationServiceImpl;
@Override
@Transactional(rollbackFor = Exception.class)
public DutyFireFightingDto save(DutyFireFightingDto dto) {
// 根据微型消防站ID,获取微型消防站名称
FireStationDto fireStationDtoResult = fireStationServiceImpl
.queryBySeq(Long.parseLong(dto.getFireFightingId()));
dto.setFireFighting(fireStationDtoResult.getName());
Map<String, Object> map = Bean.BeantoMap(dto);
Long instanceId = excuteDynamicFormInstance(dto.getUserId(), map, this.getGroupCode());
saveDutyPersonShiftDetail(instanceId, dto.getDutyShift(), dto.getStartTime());
insertPersonShift(instanceId, dto.getDutyShift());
return dto;
}
@Override
public DutyFireFightingDto update(Long instanceId, DutyFireFightingDto dto) {
updateDynamicFormInstance(this.getGroupCode(),instanceId,Bean.BeantoMap(dto));
insertPersonShift(instanceId, dto.getDutyShift());
return dto;
}
public String getGroupCode() {
return "dutyFireFighting";
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl; package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.FireStationDto; import com.yeejoin.amos.boot.module.common.api.dto.FireStationDto;
...@@ -116,4 +117,25 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat ...@@ -116,4 +117,25 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat
this.updateById(entity); this.updateById(entity);
return Bean.toModel(entity, model); return Bean.toModel(entity, model);
} }
/**
* 列表查询 示例
*/
public List<FireStation> queryForFireStationList(List<String> companyIdList) {
LambdaQueryWrapper<FireStation> wrapper =new LambdaQueryWrapper<FireStation>();
wrapper.eq(FireStation::getIsDelete, false);
wrapper.in(FireStation::getBizCompanyId, companyIdList);
return this.baseMapper.selectList(wrapper);
}
/**
* 查询当前公司下的所有微型消防站信息
* @param companyId
* @return
*/
public List<Map<String , Object>> queryForFireStationListByCompanyId(Long companyId) {
LambdaQueryWrapper<FireStation> wrapper =new LambdaQueryWrapper<FireStation>();
wrapper.eq(FireStation::getIsDelete, false);
wrapper.eq(FireStation::getBizCompanyId, companyId);
wrapper.select(FireStation::getSequenceNbr,FireStation::getName);
return this.baseMapper.selectMaps(wrapper);
}
} }
package com.yeejoin.amos.boot.module.common.biz.service.impl; package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -8,9 +34,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,9 +34,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant; import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser; import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.*; import com.yeejoin.amos.boot.module.common.api.dto.CheckObjectDto;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyDto;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.dto.ESOrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgMenuDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrzhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.dto.UserDto;
import com.yeejoin.amos.boot.module.common.api.dto.UserUnitDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.FireStation;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany; import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr; import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum; import com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum;
...@@ -23,23 +68,8 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult; ...@@ -23,23 +68,8 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel; import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource; import ch.qos.logback.core.joran.conditional.IfAction;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 机构/部门/人员表 服务实现类 * 机构/部门/人员表 服务实现类
...@@ -76,6 +106,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -76,6 +106,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Autowired @Autowired
IMaintenanceCompanyService maintenanceCompanyService; IMaintenanceCompanyService maintenanceCompanyService;
@Autowired
FireStationServiceImpl fireStationServiceImpl;
@Override @Override
public String selectUpUnitByParam(String id) { public String selectUpUnitByParam(String id) {
return this.baseMapper.selectUpUnitByParam(id); return this.baseMapper.selectUpUnitByParam(id);
...@@ -94,8 +127,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -94,8 +127,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Map<Long, OrgMenuDto> map = new HashMap<>(menuList.size()); Map<Long, OrgMenuDto> map = new HashMap<>(menuList.size());
menuList.forEach(e -> map.put(e.getKey(), e)); menuList.forEach(e -> map.put(e.getKey(), e));
Set<? extends Map.Entry<Long, ? extends OrgMenuDto>> entries = map.entrySet(); Set<? extends Map.Entry<Long, ? extends OrgMenuDto>> entries = map.entrySet();
//此处多线程,会value 出现null 的情况 // 此处多线程,会value 出现null 的情况
//entries.parallelStream().forEach(entry -> { // entries.parallelStream().forEach(entry -> {
entries.stream().forEach(entry -> { entries.stream().forEach(entry -> {
OrgMenuDto value = entry.getValue(); OrgMenuDto value = entry.getValue();
if (value != null) { if (value != null) {
...@@ -156,8 +189,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -156,8 +189,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// String.valueOf(OrgTypeMethodNameme.invoke(entity)), false); // String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
// resultList.add(menu); // resultList.add(menu);
// } // }
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---start******************************/ /*
if (parentId == null) {//topId与parentId的等值判断,修改人陈浩 on 2021/07/21 * *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---start
******************************/
if (parentId == null) {// topId与parentId的等值判断,修改人陈浩 on 2021/07/21
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))), OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId, String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false); String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
...@@ -168,7 +203,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -168,7 +203,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false); String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
resultList.add(menu); resultList.add(menu);
} }
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---end******************************/ /*
* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---end
******************************/
} }
// 获取每个顶层元素的子数据集合 // 获取每个顶层元素的子数据集合
for (OrgMenuDto entity : resultList) { for (OrgMenuDto entity : resultList) {
...@@ -335,7 +372,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -335,7 +372,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)); pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
} }
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
/*Bug2652 根据名字和工号模糊查询失效 已添加模糊匹配 2021-09-01 陈召 开始*/ /* Bug2652 根据名字和工号模糊查询失效 已添加模糊匹配 2021-09-01 陈召 开始 */
map.put("bizOrgType", OrgPersonEnum.人员.getKey()); map.put("bizOrgType", OrgPersonEnum.人员.getKey());
if (!ObjectUtils.isEmpty(req.get("bizOrgName"))) { if (!ObjectUtils.isEmpty(req.get("bizOrgName"))) {
map.put("bizOrgName", req.get("bizOrgName")); map.put("bizOrgName", req.get("bizOrgName"));
...@@ -344,12 +381,12 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -344,12 +381,12 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
if (!ObjectUtils.isEmpty(req.get("personNumber"))) { if (!ObjectUtils.isEmpty(req.get("personNumber"))) {
map.put("personNumber", req.get("personNumber")); map.put("personNumber", req.get("personNumber"));
} }
/*BUG2680 查询部门人员错误 传递参数类型不正确 修改为string 2021-09-14 陈召 开始*/ /* BUG2680 查询部门人员错误 传递参数类型不正确 修改为string 2021-09-14 陈召 开始 */
if (req.get("parentId") != null && req.get("parentId") != "") { if (req.get("parentId") != null && req.get("parentId") != "") {
OrgUsr parent = this.getById(req.get("parentId").toString()); OrgUsr parent = this.getById(req.get("parentId").toString());
map.put("bizOrgCode", ObjectUtils.isEmpty(parent) ? null : parent.getBizOrgCode()); map.put("bizOrgCode", ObjectUtils.isEmpty(parent) ? null : parent.getBizOrgCode());
} }
/*BUG2680 查询部门人员错误 传递参数类型不正确 修改为string 2021-09-14 陈召 开始*/ /* BUG2680 查询部门人员错误 传递参数类型不正确 修改为string 2021-09-14 陈召 开始 */
req.remove("bizOrgName"); req.remove("bizOrgName");
req.remove("pageSize"); req.remove("pageSize");
...@@ -363,16 +400,18 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -363,16 +400,18 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
map.put("pageSize", pageBean.getSize()); map.put("pageSize", pageBean.getSize());
List<Map<String, Object>> list = this.baseMapper.selectPersonList(map); List<Map<String, Object>> list = this.baseMapper.selectPersonList(map);
list.stream().forEach(t -> { list.stream().forEach(t -> {
// BUG2886 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm 2021-09-16 // BUG2886 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm
// 2021-09-16
if (null != t.get("amosOrgId") && StringUtils.isNotEmpty(t.get("amosOrgId").toString())) { if (null != t.get("amosOrgId") && StringUtils.isNotEmpty(t.get("amosOrgId").toString())) {
FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.queryByUserId(t.get("amosOrgId").toString()); FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient
.queryByUserId(t.get("amosOrgId").toString());
if (null != result1.getResult()) { if (null != result1.getResult()) {
t.put("amosOrgCode", result1.getResult().getRealName()); t.put("amosOrgCode", result1.getResult().getRealName());
} }
} }
}); });
/*Bug2652 根据名字和工号模糊查询失效 已添加模糊匹配 2021-09-01 陈召 结束*/ /* Bug2652 根据名字和工号模糊查询失效 已添加模糊匹配 2021-09-01 陈召 结束 */
pageBean.setRecords(list); pageBean.setRecords(list);
return pageBean; return pageBean;
} }
...@@ -384,18 +423,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -384,18 +423,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id); List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>(); List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) { for (DynamicFormInstanceDto alertFormValue : list) {
/*修改为动态表单返回的数据参数量 2021-09-08 陈浩 开始 */ /* 修改为动态表单返回的数据参数量 2021-09-08 陈浩 开始 */
// if (alertFormValue.getFieldValueLabel() != null) { // if (alertFormValue.getFieldValueLabel() != null) {
// FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), // FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
// alertFormValue.getFieldType(), alertFormValue.getFieldValueLabel(), alertFormValue.getBlock()); // alertFormValue.getFieldType(), alertFormValue.getFieldValueLabel(), alertFormValue.getBlock());
// formValue.add(value); // formValue.add(value);
// } else { // } else {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock(), alertFormValue.getFieldValueLabel()); alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock(),
alertFormValue.getFieldValueLabel());
formValue.add(value); formValue.add(value);
/*修改为动态表单返回的数据参数量 2021-09-08 陈浩 结束 */ /* 修改为动态表单返回的数据参数量 2021-09-08 陈浩 结束 */
// } // }
/*BUG2580 返回值为code值 修改为类型名称 2021-08-31 陈召 开始 */ /* BUG2580 返回值为code值 修改为类型名称 2021-08-31 陈召 开始 */
} }
return formValue; return formValue;
...@@ -407,15 +447,13 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -407,15 +447,13 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
List<FormValue> formValue = new ArrayList<>(); List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) { for (DynamicFormInstanceDto alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock(), alertFormValue.getFieldValueLabel());//陈浩 添加getFieldValueLabel的属性值 2021-09-08 alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock(),
alertFormValue.getFieldValueLabel());// 陈浩 添加getFieldValueLabel的属性值 2021-09-08
formValue.add(value); formValue.add(value);
} }
return formValue; return formValue;
} }
@Override @Override
public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception { public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception {
...@@ -449,7 +487,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -449,7 +487,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
@Override @Override
public void saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist) throws Exception { public void saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist)
throws Exception {
orgUsr.setRecDate(new Date()); orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult(); AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName()); orgUsr.setRecUserName(user.getRealName());
...@@ -506,7 +545,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -506,7 +545,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
newResourceMap.put(submitFormItem.getFormColumnId(), submitFormItem); newResourceMap.put(submitFormItem.getFormColumnId(), submitFormItem);
}); });
newResourceMap.keySet().parallelStream().forEach(form -> { newResourceMap.keySet().parallelStream().forEach(form -> {
resourceMap.remove(form); resourceMap.remove(form);
}); });
...@@ -539,18 +577,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -539,18 +577,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// 机场人员AMOS角色丢失修正, by litw start 2021年9月10日 // 机场人员AMOS角色丢失修正, by litw start 2021年9月10日
if (StringUtils.isNotEmpty(orgUsr.getAmosOrgId())) { if (StringUtils.isNotEmpty(orgUsr.getAmosOrgId())) {
FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.queryByUserId(orgUsr.getAmosOrgId()); FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient
.queryByUserId(orgUsr.getAmosOrgId());
if (null != result1.getResult()) { if (null != result1.getResult()) {
orgUsr.setAmosOrgCode(result1.getResult().getRealName()); orgUsr.setAmosOrgCode(result1.getResult().getRealName());
} }
} }
// 机场人员AMOS角色丢失修正, by litw end 2021年9月10日 // 机场人员AMOS角色丢失修正, by litw end 2021年9月10日
result = Bean.BeantoMap(orgUsr); result = Bean.BeantoMap(orgUsr);
/*bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 开始*/ /* bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 开始 */
if (orgUsr.getParentId() != null) { if (orgUsr.getParentId() != null) {
result.put("parenName", getById(orgUsr.getParentId()).getBizOrgName()); result.put("parenName", getById(orgUsr.getParentId()).getBizOrgName());
} }
/*bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 结束*/ /* bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 结束 */
// 放入所有动态表单数据 // 放入所有动态表单数据
for (DynamicFormColumn alertForm : alertForms) { for (DynamicFormColumn alertForm : alertForms) {
result.put(alertForm.getFieldCode(), null); result.put(alertForm.getFieldCode(), null);
...@@ -574,9 +613,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -574,9 +613,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
public List<OrgUsr> selectCompanyList() { public List<OrgUsr> selectCompanyList() {
List<OrgUsr> list = List<OrgUsr> list = list(
list(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getBizOrgType, new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getBizOrgType, "COMPANY"));
"COMPANY"));
if (list == null) { if (list == null) {
return new ArrayList<>(); return new ArrayList<>();
} }
...@@ -622,7 +660,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -622,7 +660,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue()); saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
} }
public void saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception { public void saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr(); OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr); BeanUtils.copyProperties(OrgPersonVo, orgUsr);
...@@ -636,7 +673,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -636,7 +673,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
orgUsr.setBizOrgCode(getOrgCodeStr()); orgUsr.setBizOrgCode(getOrgCodeStr());
} }
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) { if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult(); AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(user.getRealName()); OrgPersonVo.setAmosOrgCode(user.getRealName());
...@@ -651,10 +687,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -651,10 +687,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgUsr orgUsr = new OrgUsr(); OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id); OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgUsrVo, orgUsr); BeanUtils.copyProperties(OrgUsrVo, orgUsr);
//判断是否修改所属单位 // 判断是否修改所属单位
if(!(oriOrgUsr.getParentId()!=null?oriOrgUsr.getParentId():"").equals(OrgUsrVo.getParentId())){ if (!(oriOrgUsr.getParentId() != null ? oriOrgUsr.getParentId() : "").equals(OrgUsrVo.getParentId())) {
/*单位编辑后 code值也应做出修改 2021-09-09 陈召 开始 */ /* 单位编辑后 code值也应做出修改 2021-09-09 陈召 开始 */
OrgUsr parent = getById(OrgUsrVo.getParentId()); OrgUsr parent = getById(OrgUsrVo.getParentId());
if (parent != null) { if (parent != null) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr()); orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
...@@ -670,7 +706,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -670,7 +706,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// }); // });
// this.updateBatchById(list); // this.updateBatchById(list);
// /*单位编辑后 code值也应做出修改 2021-09-09 陈召 结束 */ // /*单位编辑后 code值也应做出修改 2021-09-09 陈召 结束 */
orgUsrMapper.updatelistByParentId(orgUsr.getBizOrgCode(),oriOrgUsr.getBizOrgCode()); orgUsrMapper.updatelistByParentId(orgUsr.getBizOrgCode(), oriOrgUsr.getBizOrgCode());
} }
updateById(orgUsr); updateById(orgUsr);
...@@ -690,18 +726,25 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -690,18 +726,25 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgUsr orgUsr = new OrgUsr(); OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id); OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgPersonVo, orgUsr); BeanUtils.copyProperties(OrgPersonVo, orgUsr);
/* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召 开始*/ /*
* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召
* 开始
*/
OrgUsr parent = getById(OrgPersonVo.getParentId()); OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null) { if (parent != null) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr()); orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
} }
/* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召 结束*/ /*
* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召
* 结束
*/
orgUsr.setSequenceNbr(id); orgUsr.setSequenceNbr(id);
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) { if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult(); AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
// oriOrgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw 2021年9月10日 // oriOrgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw
// 2021年9月10日
oriOrgUsr.setAmosOrgId(user.getUserId()); oriOrgUsr.setAmosOrgId(user.getUserId());
//orgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw 2021年9月10日 // orgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw 2021年9月10日
orgUsr.setAmosOrgId(user.getUserId()); orgUsr.setAmosOrgId(user.getUserId());
} }
...@@ -715,14 +758,14 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -715,14 +758,14 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgUsr orgUsr = getById(id); OrgUsr orgUsr = getById(id);
// 动态表单数据 // 动态表单数据
List<FormValue> formValue = getFormValue(id); List<FormValue> formValue = getFormValue(id);
//bug 2580 返回值改为具体名称 chenzhao 2021-09-27 start // bug 2580 返回值改为具体名称 chenzhao 2021-09-27 start
//bug 2797 前端要求先改回code值。 // bug 2797 前端要求先改回code值。
/* for (FormValue value : formValue) { /*
if (value.getValueName() != null && !value.getValueName() .equals(" ")){ * for (FormValue value : formValue) { if (value.getValueName() != null &&
value.setValue(value.getValueName()); * !value.getValueName() .equals(" ")){ value.setValue(value.getValueName()); }
} * }
}*/ */
//bug 2580 返回值改为具体名称 chenzhao 2021-09-27 end // bug 2580 返回值改为具体名称 chenzhao 2021-09-27 end
OrgUsrFormDto orgUsrFormVo = new OrgUsrFormDto(); OrgUsrFormDto orgUsrFormVo = new OrgUsrFormDto();
orgUsrFormVo.setDynamicFormAlert(formValue); orgUsrFormVo.setDynamicFormAlert(formValue);
BeanUtils.copyProperties(orgUsr, orgUsrFormVo); BeanUtils.copyProperties(orgUsr, orgUsrFormVo);
...@@ -794,11 +837,11 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -794,11 +837,11 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue); OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgPersonFormVo); BeanUtils.copyProperties(orgUsr, orgPersonFormVo);
/*bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 开始*/ /* bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 开始 */
if (orgUsr.getParentId() != null) { if (orgUsr.getParentId() != null) {
orgPersonFormVo.setParentName(getById(orgUsr.getParentId()).getBizOrgName()); orgPersonFormVo.setParentName(getById(orgUsr.getParentId()).getBizOrgName());
} }
/*bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 结束*/ /* bug 2869 部门为空人员详情报空指针 2021-09-15 陈召 结束 */
return orgPersonFormVo; return orgPersonFormVo;
} }
...@@ -854,13 +897,13 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -854,13 +897,13 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgUsr orgUsr = new OrgUsr(); OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id); OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgDepartmentVo, orgUsr); BeanUtils.copyProperties(OrgDepartmentVo, orgUsr);
/*部门编辑后 code值也应做出修改 2021-09-09 陈召 开始 */ /* 部门编辑后 code值也应做出修改 2021-09-09 陈召 开始 */
OrgUsr parent = getById(OrgDepartmentVo.getParentId()); OrgUsr parent = getById(OrgDepartmentVo.getParentId());
if (parent != null) { if (parent != null) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr()); orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
} }
orgUsr.setSequenceNbr(id); orgUsr.setSequenceNbr(id);
/*部门编辑后 code值也应做出修改 2021-09-09 陈召 结束 */ /* 部门编辑后 code值也应做出修改 2021-09-09 陈召 结束 */
saveOrgUsr(orgUsr, oriOrgUsr); saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据 // 保存动态表单数据
...@@ -888,7 +931,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -888,7 +931,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return personResult; return personResult;
} }
@Override @Override
public List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData) { public List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData) {
if (null == pageNum || null == pageSize) { if (null == pageNum || null == pageSize) {
...@@ -905,7 +947,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -905,7 +947,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return orgUsrMapper.listContractDtoCount(par); return orgUsrMapper.listContractDtoCount(par);
} }
public static String getOrgCodeStr() { public static String getOrgCodeStr() {
return TreeParser.genTreeCode(); return TreeParser.genTreeCode();
} }
...@@ -1062,14 +1103,18 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1062,14 +1103,18 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
// BUG 2736 人员导出过滤已经删除的数据by kongfm // BUG 2736 人员导出过滤已经删除的数据by kongfm
// 该方法使用时参数有问题 会有下标越界问题,现在更改为public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType) 2021-09-13 by kongfm // 该方法使用时参数有问题 会有下标越界问题,现在更改为public List<OrgUsrDto>
// queryForListByParentIdAndOrgType(Long parentId, String bizOrgType) 2021-09-13
// by kongfm
public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType, Boolean isDelete) { public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType, Boolean isDelete) {
return this.queryForList(null, false, parentId, bizOrgType, isDelete); return this.queryForList(null, false, parentId, bizOrgType, isDelete);
} }
public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType) { public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType) {
// BUG 2843 过滤没有绑定关联账户的user by kongfm 2021-09-16 // BUG 2843 过滤没有绑定关联账户的user by kongfm 2021-09-16
List<OrgUsr> tempUserList = this.list(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getParentId, parentId).eq(OrgUsr::getBizOrgType, bizOrgType).isNotNull(OrgUsr::getAmosOrgId)); List<OrgUsr> tempUserList = this
.list(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getParentId, parentId)
.eq(OrgUsr::getBizOrgType, bizOrgType).isNotNull(OrgUsr::getAmosOrgId));
tempUserList.stream().forEach(m -> { tempUserList.stream().forEach(m -> {
if (StringUtils.isNotEmpty(m.getAmosOrgId())) { if (StringUtils.isNotEmpty(m.getAmosOrgId())) {
FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.queryByUserId(m.getAmosOrgId()); FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.queryByUserId(m.getAmosOrgId());
...@@ -1100,7 +1145,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1100,7 +1145,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return parentId; return parentId;
} }
public OrgUsrDto queryForListByParentIdAndOrgType(String amosOrgId) { public OrgUsrDto queryForListByParentIdAndOrgType(String amosOrgId) {
return this.queryModelByParams(amosOrgId); return this.queryModelByParams(amosOrgId);
} }
...@@ -1114,7 +1158,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1114,7 +1158,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Override @Override
public List<ESOrgUsrDto> selectByIddata(String name) { public List<ESOrgUsrDto> selectByIddata(String name) {
//获取所有单位 // 获取所有单位
QueryWrapper<OrgUsr> wrapper = new QueryWrapper<>(); QueryWrapper<OrgUsr> wrapper = new QueryWrapper<>();
wrapper.in("biz_org_type", "DEPARTMENT", "COMPANY"); wrapper.in("biz_org_type", "DEPARTMENT", "COMPANY");
...@@ -1175,7 +1219,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1175,7 +1219,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
if (!CollectionUtils.isEmpty(instanceList)) { if (!CollectionUtils.isEmpty(instanceList)) {
if (instanceList.size() == 1) { if (instanceList.size() == 1) {
Long instanceId = instanceList.get(0).getInstanceId(); Long instanceId = instanceList.get(0).getInstanceId();
List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyService.findByInstanceIdAndType(instanceId, typeArr[0]); List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyService
.findByInstanceIdAndType(instanceId, typeArr[0]);
if (!CollectionUtils.isEmpty(maintenanceCompanyList)) { if (!CollectionUtils.isEmpty(maintenanceCompanyList)) {
if (maintenanceCompanyList.size() == 1) { if (maintenanceCompanyList.size() == 1) {
MaintenanceCompany person = maintenanceCompanyList.get(0); MaintenanceCompany person = maintenanceCompanyList.get(0);
...@@ -1185,7 +1230,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1185,7 +1230,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
unitDto.setPersonName(person.getName()); unitDto.setPersonName(person.getName());
String codeVal = person.getCode().substring(0, 5); String codeVal = person.getCode().substring(0, 5);
if (StringUtils.isNotBlank(codeVal)) { if (StringUtils.isNotBlank(codeVal)) {
List<MaintenanceCompany> companyList = maintenanceCompanyService.findByCodeAndType(codeVal, typeArr[1]); List<MaintenanceCompany> companyList = maintenanceCompanyService
.findByCodeAndType(codeVal, typeArr[1]);
if (!CollectionUtils.isEmpty(companyList)) { if (!CollectionUtils.isEmpty(companyList)) {
MaintenanceCompany company = companyList.get(0); MaintenanceCompany company = companyList.get(0);
unitDto.setCompanyId(String.valueOf(company.getSequenceNbr())); unitDto.setCompanyId(String.valueOf(company.getSequenceNbr()));
...@@ -1220,7 +1266,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1220,7 +1266,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
UserDto userDto = list.get(0); UserDto userDto = list.get(0);
String codeVal = userDto.getBizOrgCode().substring(0, 5); String codeVal = userDto.getBizOrgCode().substring(0, 5);
if (StringUtils.isNotBlank(codeVal)) { if (StringUtils.isNotBlank(codeVal)) {
List<UserDto> dtoList = orgUsrMapper.getUserInfo(null, typeArr[1], codeVal, COMPANY_FIELD_CODE.split(",")); List<UserDto> dtoList = orgUsrMapper.getUserInfo(null, typeArr[1], codeVal,
COMPANY_FIELD_CODE.split(","));
if (!CollectionUtils.isEmpty(dtoList)) { if (!CollectionUtils.isEmpty(dtoList)) {
userDtoList.addAll(dtoList); userDtoList.addAll(dtoList);
} }
...@@ -1234,7 +1281,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1234,7 +1281,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
throw new RuntimeException("参数必传且不为空!"); throw new RuntimeException("参数必传且不为空!");
} }
public List<OrgUsr> getCompanyDetailTree() { public List<OrgUsr> getCompanyDetailTree() {
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>(); LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getBizOrgType, "COMPANY"); wrapper.eq(OrgUsr::getBizOrgType, "COMPANY");
...@@ -1284,7 +1330,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1284,7 +1330,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Long parent = Long.parseLong(orgUsr.getParentId()); Long parent = Long.parseLong(orgUsr.getParentId());
if (set.add(parent)) { if (set.add(parent)) {
Long companyIdByDto = getCompanyIdByDto(parent, companyList); Long companyIdByDto = getCompanyIdByDto(parent, companyList);
List<CheckObjectDto> orgUsrTreeDtoList = this.baseMapper.getCompanyAndKeySite(companyIdByDto); List<CheckObjectDto> orgUsrTreeDtoList = this.baseMapper
.getCompanyAndKeySite(companyIdByDto);
list.addAll(companyAndKeySiteList(orgUsrTreeDtoList)); list.addAll(companyAndKeySiteList(orgUsrTreeDtoList));
} }
} }
...@@ -1303,7 +1350,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1303,7 +1350,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Long pid = null; Long pid = null;
for (CheckObjectDto orgUsr : companyDepartmentMsgList) { for (CheckObjectDto orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) { if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) { if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey())
&& ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr(); return orgUsr.getSequenceNbr();
} else { } else {
if (!StringUtils.isEmpty(orgUsr.getParentId())) { if (!StringUtils.isEmpty(orgUsr.getParentId())) {
...@@ -1435,7 +1483,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1435,7 +1483,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
/** /**
* 组装树 * 组装树
*/ */
private void getTreeChildre(List<OrgMenuDto> list, List<OrgMenuDto> treeList, Long parentId, Set<Long> set, List<OrgUsr> companyDepartmentMsgList) { private void getTreeChildre(List<OrgMenuDto> list, List<OrgMenuDto> treeList, Long parentId, Set<Long> set,
List<OrgUsr> companyDepartmentMsgList) {
if (ObjectUtils.isEmpty(treeList) && ObjectUtils.isEmpty(companyDepartmentMsgList)) { if (ObjectUtils.isEmpty(treeList) && ObjectUtils.isEmpty(companyDepartmentMsgList)) {
return; return;
} }
...@@ -1443,7 +1492,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1443,7 +1492,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// 获取登陆人所在公司 // 获取登陆人所在公司
Long pid = getCompanyId(parentId, companyDepartmentMsgList); Long pid = getCompanyId(parentId, companyDepartmentMsgList);
if (set.add(pid)) { if (set.add(pid)) {
List<OrgMenuDto> list1 = treeList.stream().filter(orgMenuDto -> !ObjectUtils.isEmpty(orgMenuDto) && pid.equals(orgMenuDto.getKey())).collect(Collectors.toList()); List<OrgMenuDto> list1 = treeList.stream()
.filter(orgMenuDto -> !ObjectUtils.isEmpty(orgMenuDto) && pid.equals(orgMenuDto.getKey()))
.collect(Collectors.toList());
list.addAll(list1); list.addAll(list1);
} }
} }
...@@ -1455,7 +1506,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1455,7 +1506,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Long pid = null; Long pid = null;
for (OrgUsr orgUsr : companyDepartmentMsgList) { for (OrgUsr orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) { if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) { if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey())
&& ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr(); return orgUsr.getSequenceNbr();
} else { } else {
if (!StringUtils.isEmpty(orgUsr.getParentId())) { if (!StringUtils.isEmpty(orgUsr.getParentId())) {
...@@ -1486,7 +1538,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1486,7 +1538,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return orgUsrMapper.exportPersonToExcelByParentId(parentId); return orgUsrMapper.exportPersonToExcelByParentId(parentId);
} }
@Override @Override
public List<Map<String, Object>> getLoginUserDetails(String userId, AgencyUserModel user) { public List<Map<String, Object>> getLoginUserDetails(String userId, AgencyUserModel user) {
...@@ -1525,7 +1576,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1525,7 +1576,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
/** /**
* 重写getByid 方法 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm 2021-09-16 * 重写getByid 方法 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm
* 2021-09-16
* *
* @param id * @param id
* @return * @return
...@@ -1533,24 +1585,82 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1533,24 +1585,82 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Override @Override
public OrgUsr getById(Serializable id) { public OrgUsr getById(Serializable id) {
OrgUsr orgUser = this.baseMapper.selectById(id); OrgUsr orgUser = this.baseMapper.selectById(id);
// BUG2886 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm 2021-09-16 // BUG2886 因为前期沟通 人员code 可能会发生改变 所以 现在接口code 不再保存,查询数据时通过接口重新赋值 by kongfm
// 2021-09-16
if (orgUser != null && StringUtils.isNotEmpty(orgUser.getAmosOrgId())) { if (orgUser != null && StringUtils.isNotEmpty(orgUser.getAmosOrgId())) {
FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.queryByUserId(orgUser.getAmosOrgId()); FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient
.queryByUserId(orgUser.getAmosOrgId());
if (null != result1.getResult()) { if (null != result1.getResult()) {
orgUser.setAmosOrgCode(result1.getResult().getRealName()); orgUser.setAmosOrgCode(result1.getResult().getRealName());
} }
} }
return orgUser; return orgUser;
} }
public Object amosIdExist(String amosId){
public Object amosIdExist(String amosId) {
List<OrgUsr> orgUsrs = orgUsrMapper.amosIdExist(amosId); List<OrgUsr> orgUsrs = orgUsrMapper.amosIdExist(amosId);
if (orgUsrs.size() > 0){ if (orgUsrs.size() > 0) {
return false; return false;
} }
return true; return true;
} }
} /**
* 获取对应公司组下面的人员信息
*
* @param ids
* @return
*/
public List<Map<String, Object>> getPersonDetailByCompanyIds(List<String> ids) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getIsDelete, false);
wrapper.eq(OrgUsr::getBizOrgType, OrgPersonEnum.人员.getKey());
wrapper.in(OrgUsr::getParentId, ids);
List<OrgUsr> orgPersonList = this.baseMapper.selectList(wrapper);
for (OrgUsr orgUsr : orgPersonList) {
Map<String, Object> map = new HashMap<String, Object>();
List<DynamicFormInstanceDto> dyList = alertFormValueServiceImpl.queryByCalledId(orgUsr.getSequenceNbr());
if (ObjectUtils.isEmpty(dyList)) {
continue;
}
for (DynamicFormInstanceDto dto : dyList) {
if ("positionType".equals(dto.getFieldCode())) {
map.put("postType", dto.getFieldValue());
map.put("postTypeName", dto.getFieldValueLabel());
break;
}
}
if(!map.containsKey("postType") || map.get("postType")==null ||StringUtils.isBlank(map.get("postType").toString())) {
continue;
}
map.put("userName", orgUsr.getBizOrgName());
map.put("userId", orgUsr.getSequenceNbr().toString());
LambdaQueryWrapper<OrgUsr> wrapper1 = new LambdaQueryWrapper<OrgUsr>();
wrapper1.eq(OrgUsr::getIsDelete, false);
wrapper1.eq(OrgUsr::getBizOrgType, OrgPersonEnum.公司.getKey());
wrapper1.eq(OrgUsr::getSequenceNbr, Long.parseLong(orgUsr.getParentId()));
OrgUsr orgCompany = this.baseMapper.selectOne(wrapper1);
if (ObjectUtils.isEmpty(orgCompany)) {
continue;
}
map.put("teamName", orgCompany.getBizOrgName());
map.put("teamId", orgCompany.getSequenceNbr().toString());
List<Map<String, Object>> fireStationList = fireStationServiceImpl
.queryForFireStationListByCompanyId(Long.parseLong(orgUsr.getParentId()));
if (ObjectUtils.isEmpty(fireStationList)) {
continue;
}
List<String> fireStationSimpleList = new ArrayList<String>();
fireStationList.stream().forEach(i -> {
String tagertString = i.get("name").toString() + "@" + i.get("sequence_nbr").toString();
fireStationSimpleList.add(tagertString);
});
map.put("fireStation", fireStationSimpleList);
list.add(map);
}
return list;
}
}
...@@ -39,6 +39,7 @@ import com.yeejoin.amos.boot.biz.common.utils.DateUtils; ...@@ -39,6 +39,7 @@ import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil; import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson; import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto;
...@@ -76,6 +77,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany; ...@@ -76,6 +77,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.api.entity.RescueEquipment; import com.yeejoin.amos.boot.module.common.api.entity.RescueEquipment;
import com.yeejoin.amos.boot.module.common.api.entity.SpecialPositionStaff; import com.yeejoin.amos.boot.module.common.api.entity.SpecialPositionStaff;
import com.yeejoin.amos.boot.module.common.api.excel.ExcelUtil; import com.yeejoin.amos.boot.module.common.api.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService;
import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService; import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService;
import com.yeejoin.amos.boot.module.common.api.service.IKeySiteService; import com.yeejoin.amos.boot.module.common.api.service.IKeySiteService;
import com.yeejoin.amos.boot.module.common.api.service.IMaintenanceCompanyService; import com.yeejoin.amos.boot.module.common.api.service.IMaintenanceCompanyService;
...@@ -304,6 +306,9 @@ public class ExcelServiceImpl { ...@@ -304,6 +306,9 @@ public class ExcelServiceImpl {
case "JYZB": case "JYZB":
excelImportLinkageUnitJYZBDto(multipartFile); excelImportLinkageUnitJYZBDto(multipartFile);
break; break;
case "WXXFZB":
excelImportDutyPerson(multipartFile, "WXXFZB");
break;
} }
return; return;
} }
...@@ -904,6 +909,9 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -904,6 +909,9 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
} else if (ExcelEnums.RYZB.getType().equals(dutyType)) { } else if (ExcelEnums.RYZB.getType().equals(dutyType)) {
initDutyPersonData(sheet, dataList, dayByMonth); initDutyPersonData(sheet, dataList, dayByMonth);
dutyPersonService.saveImportData(dataList); dutyPersonService.saveImportData(dataList);
}else if (ExcelEnums.WXXFZB.getType().equals(dutyType)) {
initDutyFireFightingData(sheet, dataList, dayByMonth);
dutyPersonService.saveImportData(dataList);
} }
} }
} }
...@@ -1016,7 +1024,56 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -1016,7 +1024,56 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
} }
} }
} }
private void initDutyFireFightingData(XSSFSheet sheet, List<Map<String, Object>> dataList, List<Date> dayByMonth) {
// 遍历行,i = 1,从第二行开始,第一行是表头跳过。
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
DutyFireFightingDto dutyFireFightingDto = new DutyFireFightingDto();
// row是一行数据,row.getCell(i),代表拿到这一行,第i列数据
Row row = sheet.getRow(i);
if (row == null) {
continue;
}
Cell cell = row.getCell(1);
if(cell ==null ){
continue;
}
String[] split = cell.toString().split("@");
dutyFireFightingDto.setTeamId(split[1]);
dutyFireFightingDto.setTeamName(split[0]);
cell = row.getCell(2);
if (cell != null) {
String[] splitStr = cell.toString().split("@");
dutyFireFightingDto.setUserName(MAINTENANCE_PERSON);
dutyFireFightingDto.setUserId(MAINTENANCE_PERSON);
}
cell = row.getCell(3);
if (cell != null) {
String[] splitStr = cell.toString().split("@");
dutyFireFightingDto.setPostTypeName(splitStr[0]);
dutyFireFightingDto.setPostType(splitStr[1]);
}
cell = row.getCell(4);
if (cell != null) {
String[] splitStr = cell.toString().split("@");
dutyFireFightingDto.setFireFighting(splitStr[0]);
dutyFireFightingDto.setFireFightingId(splitStr[1]);
}
List<DutyPersonShiftDto> dutyShift = new ArrayList<>();
for (int j = 0; j < dayByMonth.size(); j++) {
cell = row.getCell(5 + j);
String dutyType = cell == null ? "" : cell.toString();
if (!StringUtils.isEmpty(dutyType)) {
DutyPersonShiftDto dutyPersonShiftDto = new DutyPersonShiftDto();
dutyPersonShiftDto.setDutyDate(dayByMonth.get(j));
dutyPersonShiftDto.setShiftId(Long.valueOf(dutyType.split("@")[1]));
dutyShift.add(dutyPersonShiftDto);
}
}
dutyFireFightingDto.setDutyShift(dutyShift);
Map<String, Object> dutyPersonDtoMap = Bean.BeantoMap(dutyFireFightingDto);
dataList.add(dutyPersonDtoMap);
}
}
private void excelImportMaintenancePerson(MultipartFile multipartFile) throws Exception { private void excelImportMaintenancePerson(MultipartFile multipartFile) throws Exception {
List<MaintenancePersonExcleDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, List<MaintenancePersonExcleDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile,
MaintenancePersonExcleDto.class, 1); MaintenancePersonExcleDto.class, 1);
...@@ -1062,18 +1119,22 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -1062,18 +1119,22 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
data = initDutyCarTemplate(ids); data = initDutyCarTemplate(ids);
} else if (ExcelEnums.RYZB.getType().equals(excelDto.getType())) { } else if (ExcelEnums.RYZB.getType().equals(excelDto.getType())) {
data = initDutyPersonTemplate(ids); data = initDutyPersonTemplate(ids);
}else if(ExcelEnums.WXXFZB.getType().equals(excelDto.getType())){
data = initDutyDutyFireFightingTemplate(ids);
} }
//代码报错暂时注释掉
// else if(ExcelEnums.WXXFZB.getType().equals(excelDto.getType())){
// data = initDutyDutyFireFightingTemplate(ids);
// }
// 获取日期 // 获取日期
List<Map<String, Object>> rangeDate = dutyPersonShiftService.getBaseMapper().genRangeDate(beginDate, endDate); List<Map<String, Object>> rangeDate = dutyPersonShiftService.getBaseMapper().genRangeDate(beginDate, endDate);
List<String> dayByMonth = new ArrayList<>(); List<String> dayByMonth = new ArrayList<>();
rangeDate.forEach(item -> dayByMonth.add((String) item.get("date"))); rangeDate.forEach(item -> dayByMonth.add((String) item.get("date")));
exportDutyTemplate(response, excelDto.getClassUrl(), dayByMonth, excelDto, data, true); if(ExcelEnums.WXXFZB.getType().equals(excelDto.getType())) {
exportDutyTemplate(response, excelDto.getClassUrl(), dayByMonth, excelDto, data, true,true);
}else {
exportDutyTemplate(response, excelDto.getClassUrl(), dayByMonth, excelDto, data, true,false);
}
} }
private List<List<Object>> initDutyDutyFireFightingTemplate(String ids) { private List<List<Object>> initDutyDutyFireFightingTemplate(String ids) {
List<List<Object>> data = new ArrayList<>(); List<List<Object>> data = new ArrayList<>();
// 根据id列表获取单位下的微型消防站集合 // 根据id列表获取单位下的微型消防站集合
...@@ -1081,16 +1142,18 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -1081,16 +1142,18 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
if (!ValidationUtil.isEmpty(ids)) { if (!ValidationUtil.isEmpty(ids)) {
companyIdList = Lists.newArrayList(ids.split(",")); companyIdList = Lists.newArrayList(ids.split(","));
} }
List<FirefightersDto> firefightersDtoList = fireTeamService.getFighterByTeamId(companyIdList); List<Map<String, Object>> personDetailList = orgUsrServer.getPersonDetailByCompanyIds(companyIdList);
if (!firefightersDtoList.isEmpty()) { if (!personDetailList.isEmpty()) {
AtomicInteger row = new AtomicInteger(1); AtomicInteger row = new AtomicInteger(1);
firefightersDtoList.forEach(o -> { personDetailList.forEach(o -> {
DutyFireFightingDto dto= (DutyFireFightingDto) Bean.mapToBean(o, DutyFireFightingDto.class);
ArrayList<Object> list = new ArrayList<>(); ArrayList<Object> list = new ArrayList<>();
list.add(row.getAndIncrement()); list.add(row.getAndIncrement());
list.add(o.getFireTeamName() + "@" + o.getFireTeamId()); list.add(dto.getTeamName() +"@" + dto.getTeamId());
list.add(o.getName() + "@" + o.getSequenceNbr()); list.add(dto.getUserName()+ "@" + dto.getUserId());
list.add(o.getJobTitle() + "@" + o.getJobTitleCode()); list.add(dto.getPostTypeName()+ "@" + dto.getPostType());
list.add(o.get("fireStation"));
data.add(list); data.add(list);
}); });
} }
...@@ -1108,9 +1171,35 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -1108,9 +1171,35 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
data = initDutyCarInfo(beginDate, endDate, dayByMonth); data = initDutyCarInfo(beginDate, endDate, dayByMonth);
} else if (ExcelEnums.RYZB.getType().equals(excelDto.getType())) { } else if (ExcelEnums.RYZB.getType().equals(excelDto.getType())) {
data = initDutyPersonInfo(beginDate, endDate, dayByMonth); data = initDutyPersonInfo(beginDate, endDate, dayByMonth);
}else if(ExcelEnums.WXXFZB.getType().equals(excelDto.getType())){
data = initDutyDutyFireFightingTemplate(beginDate, endDate, dayByMonth);
} }
exportDutyTemplate(response, excelDto.getClassUrl(), dayByMonth, excelDto, data, false); exportDutyTemplate(response, excelDto.getClassUrl(), dayByMonth, excelDto, data, false,false);
}
@Autowired
IDutyFireFightingService dutyFireFightingService;
private List<List<Object>> initDutyDutyFireFightingTemplate(String beginDate, String endDate,
List<String> dayByMonth) throws ParseException {
List<DutyFireFightingDto> list=dutyFireFightingService.downloadList(beginDate, endDate);
List<List<Object>> data = new ArrayList<>();
// 组装导出数据
if (!list.isEmpty()) {
AtomicInteger row = new AtomicInteger(1);
list.forEach(o -> {
ArrayList<Object> detailList = new ArrayList<>();
detailList.add(row.getAndIncrement());
detailList.add(o.getTeamName());
detailList.add(o.getUserName());
detailList.add(o.getPostTypeName());
detailList.add(o.getFireFighting());
List<DutyPersonShiftDto> dutyShift = o.getDutyShift();
initDutyShift(dayByMonth, dutyShift, detailList);
data.add(detailList);
});
}
return data;
} }
private List<List<Object>> initDutyCarTemplate(String teamIds) { private List<List<Object>> initDutyCarTemplate(String teamIds) {
...@@ -1173,13 +1262,14 @@ if (excelDtoList != null && excelDtoList.size() > 0) { ...@@ -1173,13 +1262,14 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
private void exportDutyTemplate(HttpServletResponse response, String classUrl, List<String> dayByMonth, private void exportDutyTemplate(HttpServletResponse response, String classUrl, List<String> dayByMonth,
ExcelDto excelDto, List<? extends Object> data, Boolean flag) { ExcelDto excelDto, List<? extends Object> data, Boolean flag,Boolean typeFlag) {
try { try {
// 获取排班类型 // 获取排班类型
String[] dutyNameList = getDutyNameList(); String[] dutyNameList = getDutyNameList();
Class<?> clz = Class.forName(classUrl); Class<?> clz = Class.forName(classUrl);
ExcelUtil.createDutyTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data, clz, ExcelUtil.createDutyTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data, clz,
dayByMonth, dutyNameList, dataSourcesImpl, flag); dayByMonth, dutyNameList, dataSourcesImpl, flag,typeFlag);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment