修改bug
This commit is contained in:
parent
3663e7d5d2
commit
933b8012be
@ -60,6 +60,7 @@ public class ProjectEnterpriseController {
|
|||||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "cbsProjectType", value = "项目类型(字典)", paramType = "body", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "cbsProjectType", value = "项目类型(字典)", paramType = "body", required = true, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "isCountMainEnterprise", value = "1是总包", paramType = "body", required = false, dataType = "String"),
|
@ApiImplicitParam(name = "isCountMainEnterprise", value = "1是总包", paramType = "body", required = false, dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "enterpriseIds", value = "单位idList", paramType = "body", required = false, dataType = "String"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/list")
|
@PostMapping(value = "/list")
|
||||||
public Result<IPage<EnterpriseInfo>> queryPageList(@RequestBody Map<String, Object> map) {
|
public Result<IPage<EnterpriseInfo>> queryPageList(@RequestBody Map<String, Object> map) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.zhgd.xmgl.modules.worker.mapper.UserEnterpriseMapper;
|
|||||||
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
|
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
|
||||||
import com.zhgd.xmgl.security.entity.UserInfo;
|
import com.zhgd.xmgl.security.entity.UserInfo;
|
||||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||||
|
import com.zhgd.xmgl.util.MapUtil;
|
||||||
import com.zhgd.xmgl.util.MessageUtil;
|
import com.zhgd.xmgl.util.MessageUtil;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -67,6 +68,11 @@ public class ProjectEnterpriseServiceImpl extends ServiceImpl<ProjectEnterpriseM
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<String> enterpriseIds = Stream.of(StringUtils.split(userEnterprise.getEnterpriseId(), ",")).collect(Collectors.toList());
|
List<String> enterpriseIds = Stream.of(StringUtils.split(userEnterprise.getEnterpriseId(), ",")).collect(Collectors.toList());
|
||||||
|
List<String> queryEnterpriseIds = MapUtil.getList(map, "enterpriseIds", String.class);
|
||||||
|
if (CollUtil.isNotEmpty(queryEnterpriseIds)) {
|
||||||
|
enterpriseIds = enterpriseIds.stream().filter(queryEnterpriseIds::contains).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
enterpriseIds.add("0");
|
||||||
map.put("enterpriseIds", enterpriseIds);
|
map.put("enterpriseIds", enterpriseIds);
|
||||||
}
|
}
|
||||||
List<EnterpriseInfo> list = projectEnterpriseMapper.selectProjectEnterprisePage(page, map);
|
List<EnterpriseInfo> list = projectEnterpriseMapper.selectProjectEnterprisePage(page, map);
|
||||||
|
|||||||
@ -122,11 +122,15 @@ public class QualityRegion implements Serializable {
|
|||||||
private List<QualityRegion> children;
|
private List<QualityRegion> children;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "最外面的设置的责任单位")
|
||||||
private List<EnterpriseInfo> enterpriseInfos;
|
private List<EnterpriseInfo> enterpriseInfos;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "最外面的设置的责任人")
|
||||||
private List<SystemUser> systemUsers;
|
private List<SystemUser> systemUsers;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "最外面的设置的AI设备")
|
||||||
private List<AiAnalyseHardWareRecord> aiAnalyseHardWareRecords;
|
private List<AiAnalyseHardWareRecord> aiAnalyseHardWareRecords;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
|||||||
@ -454,11 +454,10 @@ public class QualityRegionServiceImpl extends ServiceImpl<QualityRegionMapper, Q
|
|||||||
pageSize = Integer.MAX_VALUE;
|
pageSize = Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
List<QualityRegionVo> list = this.treeList(paramMap);
|
List<QualityRegionVo> list = this.treeList(paramMap);
|
||||||
List<QualityRegionVo> vos = BeanUtil.copyToList(ListUtils.listToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentRegion", "children"), QualityRegionVo.class);
|
|
||||||
IPage<QualityRegionVo> p = new Page<>();
|
IPage<QualityRegionVo> p = new Page<>();
|
||||||
int i = cn.hutool.core.util.PageUtil.getStart(pageNo - 1, pageSize);
|
int i = cn.hutool.core.util.PageUtil.getStart(pageNo - 1, pageSize);
|
||||||
p.setTotal(vos.size());
|
p.setTotal(list.size());
|
||||||
p.setRecords(CollUtil.sub(vos, i, i + pageSize));
|
p.setRecords(CollUtil.sub(list, i, i + pageSize));
|
||||||
p.setCurrent(pageNo);
|
p.setCurrent(pageNo);
|
||||||
p.setSize(pageSize);
|
p.setSize(pageSize);
|
||||||
return p;
|
return p;
|
||||||
|
|||||||
@ -43,6 +43,7 @@ import org.apache.poi.util.IOUtils;
|
|||||||
import org.simpleframework.xml.core.Validate;
|
import org.simpleframework.xml.core.Validate;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -92,6 +93,8 @@ public class RiskListSourceController {
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IRiskListSourceResponsibilityRegionService riskListSourceResponsibilityRegionService;
|
private IRiskListSourceResponsibilityRegionService riskListSourceResponsibilityRegionService;
|
||||||
|
@Value("${riskListSourceRegionQrCode:}")
|
||||||
|
private String riskListSourceRegionQrCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页列表查询
|
* 分页列表查询
|
||||||
@ -270,7 +273,6 @@ public class RiskListSourceController {
|
|||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = false, dataType = "Integer"),
|
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = false, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "regionIds", value = "区域ids(多个,分割)", paramType = "body", required = false, dataType = "Integer"),
|
@ApiImplicitParam(name = "regionIds", value = "区域ids(多个,分割)", paramType = "body", required = false, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "httpPrefix", value = "http的前缀", paramType = "body", required = false, dataType = "String"),
|
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/downloadRegionQrCode")
|
@PostMapping(value = "/downloadRegionQrCode")
|
||||||
public void downloadRegionQrCode(HttpServletResponse response, @RequestBody HashMap<String, Object> param) {
|
public void downloadRegionQrCode(HttpServletResponse response, @RequestBody HashMap<String, Object> param) {
|
||||||
@ -307,7 +309,6 @@ public class RiskListSourceController {
|
|||||||
* @param dir
|
* @param dir
|
||||||
*/
|
*/
|
||||||
private void generateRegionQrCode(HashMap<String, Object> param, String dir) {
|
private void generateRegionQrCode(HashMap<String, Object> param, String dir) {
|
||||||
String httpPrefix = MapUtils.getString(param, "httpPrefix");
|
|
||||||
String projectSn = MapUtils.getString(param, "projectSn");
|
String projectSn = MapUtils.getString(param, "projectSn");
|
||||||
List<String> regionIds = StrUtil.split(MapUtils.getString(param, "regionIds"), ",");
|
List<String> regionIds = StrUtil.split(MapUtils.getString(param, "regionIds"), ",");
|
||||||
List<QualityRegionVo> regionV2Vos = qualityRegionService.queryList(new MapBuilder<String, Object>()
|
List<QualityRegionVo> regionV2Vos = qualityRegionService.queryList(new MapBuilder<String, Object>()
|
||||||
@ -384,7 +385,7 @@ public class RiskListSourceController {
|
|||||||
QrConfig config = new QrConfig(qrSize, qrSize);
|
QrConfig config = new QrConfig(qrSize, qrSize);
|
||||||
config.setMargin(1); // 设置边距
|
config.setMargin(1); // 设置边距
|
||||||
BufferedImage qrImage = QrCodeUtil.generate(
|
BufferedImage qrImage = QrCodeUtil.generate(
|
||||||
httpPrefix + regionV2Vo.getId(),
|
riskListSourceRegionQrCode + regionV2Vo.getId(),
|
||||||
config
|
config
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import cn.hutool.core.date.DateField;
|
|||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.stream.StreamUtil;
|
import cn.hutool.core.stream.StreamUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@ -30,8 +31,10 @@ import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
|||||||
import com.zhgd.xmgl.modules.worker.service.IWorkerDailyAttendanceStatisticsV2Service;
|
import com.zhgd.xmgl.modules.worker.service.IWorkerDailyAttendanceStatisticsV2Service;
|
||||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||||
|
import com.zhgd.xmgl.util.EasyPoiUtil;
|
||||||
import com.zhgd.xmgl.util.ExcelUtils;
|
import com.zhgd.xmgl.util.ExcelUtils;
|
||||||
import com.zhgd.xmgl.util.Fileutils;
|
import com.zhgd.xmgl.util.Fileutils;
|
||||||
|
import com.zhgd.xmgl.util.PathUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
@ -50,6 +53,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -274,6 +278,11 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
vo.setEnterpriseName(statisticsV2Vo.getEnterpriseName());
|
vo.setEnterpriseName(statisticsV2Vo.getEnterpriseName());
|
||||||
vo.setWorkerName(statisticsV2Vo.getWorkerName());
|
vo.setWorkerName(statisticsV2Vo.getWorkerName());
|
||||||
vo.setDeptName(statisticsV2Vo.getDeptName());
|
vo.setDeptName(statisticsV2Vo.getDeptName());
|
||||||
|
vo.setWorkerTypeName(statisticsV2Vo.getWorkerTypeName());
|
||||||
|
vo.setPhoneNumber(statisticsV2Vo.getPhoneNumber());
|
||||||
|
vo.setIdCard(statisticsV2Vo.getIdCard());
|
||||||
|
vo.setSex(statisticsV2Vo.getSex());
|
||||||
|
vo.setEnterDate(statisticsV2Vo.getEnterDate());
|
||||||
vo.setTotalHour(statisticsV2Vo.getHourVal());
|
vo.setTotalHour(statisticsV2Vo.getHourVal());
|
||||||
vo.setDate(statisticsV2Vo.getAttendanceDate());
|
vo.setDate(statisticsV2Vo.getAttendanceDate());
|
||||||
vo.setInTimeList(Optional.ofNullable(inOutMap.get(statisticsV2Vo.getPersonSn())).map(m -> m.get(1))
|
vo.setInTimeList(Optional.ofNullable(inOutMap.get(statisticsV2Vo.getPersonSn())).map(m -> m.get(1))
|
||||||
@ -483,13 +492,24 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
return Result.success(workerDailyAttendanceStatisticsV2Service.countWorkerDailyAttendanceStatisticsV2ByDate(param));
|
return Result.success(workerDailyAttendanceStatisticsV2Service.countWorkerDailyAttendanceStatisticsV2ByDate(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查询考勤日报列表", notes = "查询考勤日报列表", httpMethod = "POST")
|
@ApiOperation(value = "分页查询考勤日报列表", notes = "分页查询考勤日报列表", httpMethod = "POST")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||||
@ApiImplicitParam(name = "attendanceDate", value = "考勤日期yyyy-MM-dd", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "attendanceDate", value = "考勤日期yyyy-MM-dd", paramType = "body", required = true, dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"),
|
||||||
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/getWorkerDailyAttendancesByDate")
|
@PostMapping(value = "/getWorkerDailyAttendancePageByDate")
|
||||||
public Result<IPage<WorkerDailyAttendancesByDateVo>> getWorkerDailyAttendancesByDate(@RequestBody HashMap<String, Object> param) {
|
public Result<IPage<WorkerDailyAttendancesByDateVo>> getWorkerDailyAttendancePageByDate(@RequestBody HashMap<String, Object> param) {
|
||||||
|
IPage<WorkerDailyAttendancesByDateVo> p = doGetWorkerDailyAttendancePageByDateVoIPage(param);
|
||||||
|
return Result.success(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private IPage<WorkerDailyAttendancesByDateVo> doGetWorkerDailyAttendancePageByDateVoIPage(HashMap<String, Object> param) {
|
||||||
String projectSn = MapUtils.getString(param, "projectSn");
|
String projectSn = MapUtils.getString(param, "projectSn");
|
||||||
String attendanceDate = MapUtils.getString(param, "attendanceDate");
|
String attendanceDate = MapUtils.getString(param, "attendanceDate");
|
||||||
param.put("addTime_end", attendanceDate);
|
param.put("addTime_end", attendanceDate);
|
||||||
@ -506,7 +526,7 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
WorkerDailyAttendanceStatisticsV2Vo voDb = personSnMap.get(workerInfo.getPersonSn());
|
WorkerDailyAttendanceStatisticsV2Vo voDb = personSnMap.get(workerInfo.getPersonSn());
|
||||||
WorkerDailyAttendancesByDateVo vo = new WorkerDailyAttendancesByDateVo();
|
WorkerDailyAttendancesByDateVo vo = new WorkerDailyAttendancesByDateVo();
|
||||||
if (voDb != null) {
|
if (voDb != null) {
|
||||||
BeanUtil.copyProperties(vo, voDb);
|
BeanUtil.copyProperties(voDb, vo);
|
||||||
} else {
|
} else {
|
||||||
vo.setPersonType(workerInfo.getPersonType());
|
vo.setPersonType(workerInfo.getPersonType());
|
||||||
vo.setEnterpriseName(workerInfo.getEnterpriseName());
|
vo.setEnterpriseName(workerInfo.getEnterpriseName());
|
||||||
@ -521,6 +541,11 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
vo.setOvertimeHourVal(new BigDecimal("0"));
|
vo.setOvertimeHourVal(new BigDecimal("0"));
|
||||||
vo.setOvertimeDayVal(new BigDecimal("0"));
|
vo.setOvertimeDayVal(new BigDecimal("0"));
|
||||||
vo.setInserviceType(workerInfo.getInserviceType());
|
vo.setInserviceType(workerInfo.getInserviceType());
|
||||||
|
vo.setWorkerTypeName(workerInfo.getTypeName());
|
||||||
|
vo.setPhoneNumber(workerInfo.getPhoneNumber());
|
||||||
|
vo.setIdCard(workerInfo.getIdCard());
|
||||||
|
vo.setSex(workerInfo.getSex());
|
||||||
|
vo.setEnterDate(workerInfo.getEnterDate());
|
||||||
}
|
}
|
||||||
List<WorkerAttendance> attendances = personSn2AttendancesMap.get(workerInfo.getPersonSn());
|
List<WorkerAttendance> attendances = personSn2AttendancesMap.get(workerInfo.getPersonSn());
|
||||||
if (Objects.equals(vo.getIsAttendance(), 1) && CollUtil.isNotEmpty(attendances)) {
|
if (Objects.equals(vo.getIsAttendance(), 1) && CollUtil.isNotEmpty(attendances)) {
|
||||||
@ -532,6 +557,7 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
vo.setFirstTimeAm(firstTimeAm);
|
vo.setFirstTimeAm(firstTimeAm);
|
||||||
String endTimePm = attendances.stream().filter(w -> DateUtil.compare(DateUtil.parseDateTime(w.getCreateTime()), DateUtil.parseDateTime(attendanceDate + " 12:00:00")) >= 0).max(Comparator.comparing(WorkerAttendance::getCreateTime)).map(WorkerAttendance::getCreateTime).orElse(null);
|
String endTimePm = attendances.stream().filter(w -> DateUtil.compare(DateUtil.parseDateTime(w.getCreateTime()), DateUtil.parseDateTime(attendanceDate + " 12:00:00")) >= 0).max(Comparator.comparing(WorkerAttendance::getCreateTime)).map(WorkerAttendance::getCreateTime).orElse(null);
|
||||||
vo.setEndTimePm(endTimePm);
|
vo.setEndTimePm(endTimePm);
|
||||||
|
vo.setAttendanceList(attendances);
|
||||||
}
|
}
|
||||||
vos.add(vo);
|
vos.add(vo);
|
||||||
}
|
}
|
||||||
@ -540,7 +566,7 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
p.setRecords(vos);
|
p.setRecords(vos);
|
||||||
p.setCurrent(workerInfoList.getCurrent());
|
p.setCurrent(workerInfoList.getCurrent());
|
||||||
p.setSize(workerInfoList.getSize());
|
p.setSize(workerInfoList.getSize());
|
||||||
return Result.success(p);
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "统计考勤日报", notes = "统计考勤日报", httpMethod = "POST")
|
@ApiOperation(value = "统计考勤日报", notes = "统计考勤日报", httpMethod = "POST")
|
||||||
@ -571,59 +597,88 @@ public class WorkerDailyAttendanceStatisticsV2Controller {
|
|||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||||
@ApiImplicitParam(name = "downloadType", value = "1上下午打卡2进出场打卡", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "downloadType", value = "1上下午打卡2进出场打卡", paramType = "body", required = true, dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "startDate", value = "开始日期(yyyy-MM-dd)", paramType = "body", required = true, dataType = "String"),
|
||||||
|
@ApiImplicitParam(name = "endDate", value = "结束日期(yyyy-MM-dd)", paramType = "body", required = true, dataType = "String"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/exportWorkerDailyAttendancesStaticsByDateXls")
|
@PostMapping(value = "/exportWorkerDailyAttendancesStaticsByDateXls")
|
||||||
public void exportXls(HttpServletResponse response, @RequestBody HashMap<String, Object> param) {
|
public void exportWorkerDailyAttendancesStaticsByDateXls(HttpServletResponse response, @RequestBody HashMap<String, Object> param) {
|
||||||
// String templateUrl = null;
|
String templateUrl = null;
|
||||||
// try {
|
try {
|
||||||
// String sn = MapUtils.getString(param, "sn");
|
String projectSn = MapUtils.getString(param, "projectSn");
|
||||||
//// String libraryId = MapUtils.getString(param, "libraryId");
|
String startDate = MapUtils.getString(param, "startDate");
|
||||||
// List<String> detailIdList = JSON.parseArray(JSON.toJSONString(param.get("detailIdList")), String.class);
|
String endDate = MapUtils.getString(param, "endDate");
|
||||||
// // Step.1 组装查询条件
|
Integer downloadType = MapUtils.getInteger(param, "downloadType");
|
||||||
// param.put("pageNo", 1);
|
// Step.1 组装查询条件
|
||||||
// param.put("pageSize", -1);
|
param.put("pageNo", 1);
|
||||||
// List<Map<String, Object>> listMap = new ArrayList<>();
|
param.put("pageSize", -1);
|
||||||
// Map<String, Object> firstSheetMap = new HashMap<>();
|
List<DateTime> dateTimes = DateUtil.rangeToList(DateUtil.parseDate(startDate), DateUtil.parseDate(endDate), DateField.DAY_OF_YEAR);
|
||||||
// List<RiskListDetail> details = riskListDetailService.list(new LambdaQueryWrapper<RiskListDetail>()
|
Map<Integer, Map<String, Object>> root = new HashMap<>();
|
||||||
//// .eq(RiskListDetail::getLibraryId, libraryId)
|
int j = 0;
|
||||||
// .in(RiskListDetail::getId, detailIdList)
|
String tempSheetName;
|
||||||
// );
|
if (Objects.equals(downloadType, 1)) {
|
||||||
// Map<String, DictionaryItem> factorTypeMap = dictionaryItemService.getDictList("risk_factor_type", null).stream().collect(Collectors.toMap(DictionaryItem::getData, Function.identity(), (o1, o2) -> o1));
|
tempSheetName = "考勤日报-出勤导出模版(上午下午).xlsx";
|
||||||
// Map<Long, RiskListPotentialAccidentType> accidentTypeMap = riskListPotentialAccidentTypeService.list(new LambdaQueryWrapper<RiskListPotentialAccidentType>()
|
} else {
|
||||||
// .eq(RiskListPotentialAccidentType::getSn, sn)).stream().collect(Collectors.toMap(RiskListPotentialAccidentType::getId, Function.identity(), (o1, o2) -> o1));
|
tempSheetName = "考勤日报-出勤导出模版(进场出场).xlsx";
|
||||||
// for (RiskListDetail detail : details) {
|
}
|
||||||
// Map<String, Object> map = new HashMap<>();
|
for (DateTime dateTime : dateTimes) {
|
||||||
// map.put("riskDescription", detail.getRiskDescription());
|
param.put("attendanceDate", DateUtil.formatDate(dateTime));
|
||||||
// map.put("accidentType", Optional.ofNullable(accidentTypeMap.get(detail.getAccidentTypeId())).map(RiskListPotentialAccidentType::getType).orElse(""));
|
List<WorkerDailyAttendancesByDateVo> records = doGetWorkerDailyAttendancePageByDateVoIPage(param).getRecords();
|
||||||
// map.put("riskFactorType", Optional.ofNullable(factorTypeMap.get(detail.getRiskFactorType())).map(DictionaryItem::getName).orElse(""));
|
Map<String, Object> sheetMap = new HashMap<>();
|
||||||
// List<String> levels = Arrays.asList("重大风险", "较大风险", "一般风险", "低风险");
|
List<Map<String, Object>> listMap = new ArrayList<>();
|
||||||
// map.put("riskLevel", Optional.ofNullable(detail.getRiskLevel()).map(m -> levels.get(m - 1)).orElse(""));
|
for (WorkerDailyAttendancesByDateVo vo : records) {
|
||||||
// map.put("engineeringMeasure", detail.getEngineeringMeasure());
|
Map<String, Object> map = new HashMap<>();
|
||||||
// map.put("managementMeasure", detail.getManagementMeasure());
|
map.put("firstInTimeYes", StrUtil.isNotBlank(vo.getFirstInTime()) ? "√" : "×");
|
||||||
// map.put("personalProtection", detail.getPersonalProtection());
|
map.put("firstInTime", vo.getFirstInTime());
|
||||||
// map.put("emergencyMeasure", detail.getEmergencyMeasure());
|
map.put("endOutTimeYes", StrUtil.isNotBlank(vo.getEndOutTime()) ? "√" : "×");
|
||||||
// map.put("educationalMeasure", detail.getEducationalMeasure());
|
map.put("endOutTime", vo.getEndOutTime());
|
||||||
// listMap.add(map);
|
map.put("firstTimeAmYes", StrUtil.isNotBlank(vo.getFirstTimeAm()) ? "√" : "×");
|
||||||
// }
|
map.put("firstTimeAm", vo.getFirstTimeAm());
|
||||||
// //将项目清单集合添加到map中
|
map.put("endTimePmYes", StrUtil.isNotBlank(vo.getEndTimePm()) ? "√" : "×");
|
||||||
// firstSheetMap.put("listMap", listMap);
|
map.put("endTimePm", vo.getEndTimePm());
|
||||||
// Map<Integer, Map<String, Object>> root = new HashMap<>(4);
|
map.put("personType", vo.getPersonType());
|
||||||
// root.put(0, firstSheetMap);
|
map.put("enterpriseName", vo.getEnterpriseName());
|
||||||
// putOtherSheets(sn, root);
|
map.put("workerName", vo.getWorkerName());
|
||||||
// templateUrl = Fileutils.getExportTemplateFile("excel/风险清单详情导出模板.xlsx").getAbsolutePath();
|
map.put("deptName", vo.getDeptName());
|
||||||
//// templateUrl = new File("C:\\Users\\Administrator\\IdeaProjects\\wisdomisite-with-flowjar\\tmp\\风险清单详情导出模板.xlsx").getAbsolutePath();
|
map.put("projectSn", vo.getProjectSn());
|
||||||
// TemplateExportParams params = new TemplateExportParams(templateUrl, root.keySet().toArray(new Integer[]{}));
|
map.put("personSn", vo.getPersonSn());
|
||||||
// Workbook workbook = ExcelExportUtil.exportExcel(root, params);
|
map.put("attendanceDate", vo.getAttendanceDate());
|
||||||
// //设置下拉
|
map.put("hourVal", vo.getHourVal());
|
||||||
// ExcelUtils.downLoadExcel("风险清单详情导出模板.xlsx", response, workbook);
|
map.put("dayVal", vo.getDayVal());
|
||||||
// } catch (IOException e) {
|
map.put("isAttendance", vo.getIsAttendance());
|
||||||
// log.error("", e);
|
map.put("overtimeHourVal", vo.getOvertimeHourVal());
|
||||||
// throw new OpenAlertException("系统错误");
|
map.put("overtimeDayVal", vo.getOvertimeDayVal());
|
||||||
// } finally {
|
map.put("inserviceType", vo.getInserviceType());
|
||||||
// if (templateUrl != null) {
|
AtomicInteger i = new AtomicInteger(1);
|
||||||
// FileUtil.deleteFile(templateUrl);
|
map.put("attendanceList", Objects.nonNull(vo.getAttendanceList()) ? vo.getAttendanceList().stream().map(a -> {
|
||||||
// }
|
return i.getAndIncrement() + ".(" + (Objects.equals(a.getPassType(), 1) ? "进场" : "出场") + a.getCreateTime() + ")";
|
||||||
// }
|
}).collect(Collectors.joining("\n")) : "");
|
||||||
|
map.put("workerTypeName", vo.getWorkerTypeName());
|
||||||
|
map.put("phoneNumber", vo.getPhoneNumber());
|
||||||
|
map.put("idCard", vo.getIdCard());
|
||||||
|
map.put("sex", Objects.equals(vo.getSex(), 1) ? "男" : "女");
|
||||||
|
map.put("enterDate", vo.getEnterDate());
|
||||||
|
listMap.add(map);
|
||||||
|
}
|
||||||
|
sheetMap.put("date", DateUtil.formatDate(dateTime));
|
||||||
|
sheetMap.put("listMap", listMap);
|
||||||
|
root.put(j++, sheetMap);
|
||||||
|
}
|
||||||
|
templateUrl = Fileutils.getExportTemplateFile("excel/" + tempSheetName).getAbsolutePath();
|
||||||
|
String outputTemplateFilePath = PathUtil.getBasePath() + "/temp/" + IdUtil.randomUUID() + ".xlsx";
|
||||||
|
EasyPoiUtil.cloneSheetMultipleTimes(templateUrl, outputTemplateFilePath, "1", dateTimes.size() - 1);
|
||||||
|
TemplateExportParams params = new TemplateExportParams(outputTemplateFilePath, true);
|
||||||
|
params.setSheetName(dateTimes.stream().map(DateUtil::formatDate).collect(Collectors.toList()).toArray(new String[]{}));
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(root, params);
|
||||||
|
//设置下拉
|
||||||
|
ExcelUtils.downLoadExcel(tempSheetName, response, workbook);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("", e);
|
||||||
|
throw new OpenAlertException("系统错误");
|
||||||
|
} finally {
|
||||||
|
if (templateUrl != null) {
|
||||||
|
FileUtil.deleteFile(templateUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,31 @@ public class ExceptionHourStatisticsListVo {
|
|||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "班组/部门")
|
@ApiModelProperty(value = "班组/部门")
|
||||||
private String deptName;
|
private String deptName;
|
||||||
|
/**
|
||||||
|
* 工种名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "工种名称")
|
||||||
|
private String workerTypeName;
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "手机号")
|
||||||
|
private java.lang.String phoneNumber;
|
||||||
|
/**
|
||||||
|
* 身份证号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "身份证号")
|
||||||
|
private java.lang.String idCard;
|
||||||
|
/**
|
||||||
|
* 性别
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "性别,1男,2女")
|
||||||
|
private java.lang.Integer sex;
|
||||||
|
/**
|
||||||
|
* 进场日期
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "进场日期")
|
||||||
|
private java.lang.String enterDate;
|
||||||
/**
|
/**
|
||||||
* 合计工时(h)
|
* 合计工时(h)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -28,5 +28,30 @@ public class WorkerDailyAttendanceStatisticsV2Vo extends WorkerDailyAttendanceSt
|
|||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "班组/部门")
|
@ApiModelProperty(value = "班组/部门")
|
||||||
private String deptName;
|
private String deptName;
|
||||||
|
/**
|
||||||
|
* 工种名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "工种名称")
|
||||||
|
private String workerTypeName;
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "手机号")
|
||||||
|
private java.lang.String phoneNumber;
|
||||||
|
/**
|
||||||
|
* 身份证号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "身份证号")
|
||||||
|
private java.lang.String idCard;
|
||||||
|
/**
|
||||||
|
* 性别
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "性别,1男,2女")
|
||||||
|
private java.lang.Integer sex;
|
||||||
|
/**
|
||||||
|
* 进场日期
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "进场日期")
|
||||||
|
private java.lang.String enterDate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.zhgd.xmgl.modules.worker.entity.vo;
|
package com.zhgd.xmgl.modules.worker.entity.vo;
|
||||||
|
|
||||||
|
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class WorkerDailyAttendancesByDateVo extends WorkerDailyAttendanceStatisticsV2Vo {
|
public class WorkerDailyAttendancesByDateVo extends WorkerDailyAttendanceStatisticsV2Vo {
|
||||||
/**
|
/**
|
||||||
@ -25,4 +28,10 @@ public class WorkerDailyAttendancesByDateVo extends WorkerDailyAttendanceStatist
|
|||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "下午打卡(未次)")
|
@ApiModelProperty(value = "下午打卡(未次)")
|
||||||
private String endTimePm;
|
private String endTimePm;
|
||||||
|
/**
|
||||||
|
* 考勤记录明细
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "考勤记录明细")
|
||||||
|
private List<WorkerAttendance> attendanceList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,11 @@
|
|||||||
,c.department_name
|
,c.department_name
|
||||||
,en.enterprise_name
|
,en.enterprise_name
|
||||||
,if(a.person_type=1,b.team_name,c.department_name) as dept_name
|
,if(a.person_type=1,b.team_name,c.department_name) as dept_name
|
||||||
|
,wt.type_name as worker_type_name
|
||||||
|
,a.phone_number
|
||||||
|
,a.id_card
|
||||||
|
,a.sex
|
||||||
|
,a.enter_date
|
||||||
from worker_daily_attendance_statistics_v2 t
|
from worker_daily_attendance_statistics_v2 t
|
||||||
JOIN worker_info a on t.person_sn=a.person_sn
|
JOIN worker_info a on t.person_sn=a.person_sn
|
||||||
LEFT JOIN team_info b ON a.team_id = b.id and a.person_type = 1
|
LEFT JOIN team_info b ON a.team_id = b.id and a.person_type = 1
|
||||||
|
|||||||
@ -7,8 +7,10 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.documents4j.api.DocumentType;
|
import com.documents4j.api.DocumentType;
|
||||||
import com.documents4j.api.IConverter;
|
import com.documents4j.api.IConverter;
|
||||||
import com.documents4j.job.LocalConverter;
|
import com.documents4j.job.LocalConverter;
|
||||||
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@ -21,6 +23,55 @@ import java.util.Map;
|
|||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class EasyPoiUtil {
|
public class EasyPoiUtil {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
File file = new File("C:\\Users\\Administrator\\Desktop\\t\\测试1.xlsx");
|
||||||
|
// FileInputStream fis;
|
||||||
|
try {
|
||||||
|
// fis = new FileInputStream(file);
|
||||||
|
// XSSFWorkbook wb = new XSSFWorkbook(fis);
|
||||||
|
// XSSFSheet sheet = wb.getSheet("test1");
|
||||||
|
// String name = sheet.getSheetName();
|
||||||
|
// String test2 = "test2";
|
||||||
|
// XSSFSheet sheet2 = wb.cloneSheet(0, test2);
|
||||||
|
// wb.setSheetOrder(test2, 1);
|
||||||
|
String outputFile = "C:\\Users\\Administrator\\Desktop\\t\\测试2.xlsx";
|
||||||
|
FileOutputStream fos = new FileOutputStream(outputFile);
|
||||||
|
// wb.write(fos);
|
||||||
|
// fis.close();
|
||||||
|
// fos.close();
|
||||||
|
// wb.close();
|
||||||
|
|
||||||
|
cloneSheetMultipleTimes(file.getAbsolutePath(), outputFile, "test1", 5);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// System.out.println("结束");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 克隆Excel的一个Sheet多份并导出新文件
|
||||||
|
*
|
||||||
|
* @param sourceFilePath 源Excel文件路径
|
||||||
|
* @param outputFilePath 输出Excel文件路径
|
||||||
|
* @param sheetName
|
||||||
|
* @param copyCount 要复制的份数 (不包括原始Sheet)
|
||||||
|
* @throws IOException 如果文件操作失败
|
||||||
|
*/
|
||||||
|
public static void cloneSheetMultipleTimes(String sourceFilePath, String outputFilePath, String sheetName, int copyCount) throws IOException {
|
||||||
|
try (FileInputStream fis = new FileInputStream(sourceFilePath);
|
||||||
|
XSSFWorkbook wb = new XSSFWorkbook(fis);
|
||||||
|
FileOutputStream fos = new FileOutputStream(outputFilePath);) {
|
||||||
|
int sheetIndex = wb.getSheetIndex(sheetName);
|
||||||
|
if (sheetIndex == -1) {
|
||||||
|
throw new OpenAlertException("sheetName错误");
|
||||||
|
}
|
||||||
|
for (int i = 0; i < copyCount; i++) {
|
||||||
|
wb.cloneSheet(sheetIndex, sheetName + "-" + (i + 1));
|
||||||
|
wb.setSheetOrder(sheetName + "-" + (i + 1), sheetIndex + i + 1);
|
||||||
|
}
|
||||||
|
wb.write(fos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出word
|
* 导出word
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.zhgd.xmgl.util;
|
package com.zhgd.xmgl.util;
|
||||||
|
|
||||||
|
import com.gexin.fastjson.JSON;
|
||||||
|
import com.gexin.fastjson.TypeReference;
|
||||||
import jodd.util.StringUtil;
|
import jodd.util.StringUtil;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -18,19 +21,23 @@ public class MapUtil {
|
|||||||
* @return 包含指定类型元素的List,如果key不存在或类型不匹配返回空List
|
* @return 包含指定类型元素的List,如果key不存在或类型不匹配返回空List
|
||||||
*/
|
*/
|
||||||
public static <T> List<T> getList(Map<String, Object> map, String key, Class<T> clazz) {
|
public static <T> List<T> getList(Map<String, Object> map, String key, Class<T> clazz) {
|
||||||
// 1. 检查参数
|
|
||||||
if (map == null || key == null || clazz == null) {
|
if (map == null || key == null || clazz == null) {
|
||||||
return null;
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 获取Map中的值
|
|
||||||
Object value = map.get(key);
|
Object value = map.get(key);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return null;
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return com.gexin.fastjson.JSON.parseObject(com.gexin.fastjson.JSON.toJSONString(value), new com.gexin.fastjson.TypeReference<List<T>>() {
|
// 特殊处理 String 类型
|
||||||
});
|
if (clazz == String.class) {
|
||||||
|
return (List<T>) JSON.parseArray(JSON.toJSONString(value), String.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
return JSON.parseObject(JSON.toJSONString(value),
|
||||||
|
new TypeReference<List<T>>() {
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void putIfNotBlank(Map<String, Object> map, String key, Object value) {
|
public static void putIfNotBlank(Map<String, Object> map, String key, Object value) {
|
||||||
|
|||||||
@ -105,3 +105,5 @@ udp.port=51236
|
|||||||
#上传的图片的url前缀
|
#上传的图片的url前缀
|
||||||
upload.image.url.prefix=http://192.168.34.221:9111/image/
|
upload.image.url.prefix=http://192.168.34.221:9111/image/
|
||||||
supplierResubmitApplicationUrl=http://192.168.34.175:88/#/workspace/contractorApply
|
supplierResubmitApplicationUrl=http://192.168.34.175:88/#/workspace/contractorApply
|
||||||
|
#管控清单危险源的区域二维码的前缀
|
||||||
|
riskListSourceRegionQrCode=http://localhost:8088/app/#/pages/projectEnd/safeSame/riskGradingControlList/riskGradingControlList?id=
|
||||||
|
|||||||
BIN
src/main/resources/excel/考勤日报-出勤导出模版(上午下午).xlsx
Normal file
BIN
src/main/resources/excel/考勤日报-出勤导出模版(上午下午).xlsx
Normal file
Binary file not shown.
BIN
src/main/resources/excel/考勤日报-出勤导出模版(进场出场).xlsx
Normal file
BIN
src/main/resources/excel/考勤日报-出勤导出模版(进场出场).xlsx
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user