金林湾-按问题状态统计问题趋势-补充数据

This commit is contained in:
Administrator 2023-04-06 09:08:25 +08:00
parent 8c0a68714b
commit 7b3b6c677b
6 changed files with 132 additions and 14 deletions

View File

@ -6,7 +6,7 @@
resultType="com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics">
SELECT
hd.id,
date_add( date_sub(hd.create_time,interval dayofweek(hd.create_time)-2 day), INTERVAL 7 DAY ) create_time,
date_sub(hd.create_time,interval dayofweek(hd.create_time)-2 day) create_time,
sum(hd.increase_num) increase_num,
sum(hd.solve_num) solve_num,
sum(hd.un_resolve_num) un_resolve_num,

View File

@ -28,6 +28,7 @@ import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.quality.service.impl.QualityInspectionRecordServiceImpl;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.util.JxlExcelUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -438,17 +439,57 @@ public class HiddenDangerInspectRecordServiceImpl extends ServiceImpl<HiddenDang
@Override
public List<HiddenDangerInspectionStatistics> selectHiddenDangerStateTrendByWeek(Map<String, Object> map) {
Integer offsetWeek = MapUtils.getInteger(map, "offsetWeek");
String projectSn = MapUtils.getString(map, "projectSn");
int defaultOffsetWeek = 5;
if (offsetWeek == null || offsetWeek <= 0) {
offsetWeek = 5;
offsetWeek = defaultOffsetWeek;
}
map.put("offsetWeek", offsetWeek + 1);
List<HiddenDangerInspectionStatistics> statisticsList = hiddenDangerInspectionStatisticsMapper.selectHiddenDangerStateTrendByWeek(map);
Date thisMonday = getThisMonday();
if (CollectionUtils.isNotEmpty(statisticsList)) {
HiddenDangerInspectionStatistics statistics = statisticsList.get(0);
if (statistics != null) {
//删除最新的没有完全统计的一周的数据一条数据
statisticsList.remove(0);
}
}
//数据不够时补充前面的为0
if (statisticsList.size() < defaultOffsetWeek) {
Date d = null;
int size = statisticsList.size();
if (CollectionUtils.isNotEmpty(statisticsList)) {
d = statisticsList.get(size - 1).getCreateTime();
} else {
d = thisMonday;
}
d = DateUtil.offsetDay(d, -7);
for (int i = 0; i < defaultOffsetWeek - size; i++) {
HiddenDangerInspectionStatistics e = new HiddenDangerInspectionStatistics();
e.setCreateTime(d);
e.setIncreaseNum(0);
e.setSolveNum(0);
e.setUnResolveNum(0);
e.setProjectSn(projectSn);
d = DateUtil.offsetDay(d, -7);
statisticsList.add(e);
}
}
Collections.sort(statisticsList, (o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()));
statisticsList.stream().forEach(o -> o.setCreateTime(DateUtil.offsetDay(o.getCreateTime(), 7)));
return statisticsList;
}
public Date getThisMonday() {
Calendar cal = Calendar.getInstance();
// 设置周一为第一天
cal.setFirstDayOfWeek(Calendar.MONDAY);
// 时间设置到周一此时时间为周一的日期
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return cal.getTime();
}
/**
* 设置全部占比
*

View File

@ -9,11 +9,12 @@ import com.zhgd.redis.lock.RedisRepository;
import com.zhgd.xmgl.async.AsyncProject;
import com.zhgd.xmgl.entity.vo.ZwProjectDataVo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.dto.SjProjectDto;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
import com.zhgd.xmgl.modules.project.enums.SanjiangProgressProjectEnum;
import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -21,6 +22,8 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.simpleframework.xml.core.Validate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -43,7 +46,7 @@ import java.util.Map;
@Api(tags = "项目")
public class ProjectController {
@Autowired
private IProjectService projectService;
private ProjectServiceImpl projectService;
@Autowired
private AsyncProject asyncProject;
@Resource
@ -108,6 +111,24 @@ public class ProjectController {
return Result.ok();
}
/**
* 三江业务中台添加项目
*
* @param dto
* @return
*/
//@OperLog(operModul = "项目管理", operType = "添加项目", operDesc = "添加项目")
@ApiOperation(value = " 三江业务中台添加项目", notes = "三江业务中台添加项目", httpMethod = "POST")
@PostMapping(value = "/sj/business/add")
public Result addSjProject(@RequestBody @Validate SjProjectDto dto) {
Project project = new Project();
BeanUtils.copyProperties(dto, project);
project.setCompanySn("B386480F85E84592B8E102224D090794");
projectService.setProjectCode(project);
projectService.saveProject(project);
return Result.ok();
}
/**
* 添加
*

View File

@ -248,4 +248,7 @@ public class Project implements Serializable {
@ApiModelProperty(value = "云联万物-工程所在街(乡)镇机构编码")
private String streetTownshipTownCode;
@ApiModelProperty(value = "'三江重点工程类型多选'")
private String keyProjectType;
}

View File

@ -0,0 +1,59 @@
package com.zhgd.xmgl.modules.project.entity.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel(value = "SjProjectDto实体类", description = "SjProjectDto")
public class SjProjectDto {
@ApiModelProperty(value = "项目名称")
@NotBlank
private java.lang.String projectName;
@ApiModelProperty(value = "项目地址")
private java.lang.String projectAddress;
@ApiModelProperty(value = "纬度")
private java.lang.String latitude;
@ApiModelProperty(value = "经度")
private java.lang.String longitude;
@ApiModelProperty(value = "项目编号")
private java.lang.String projectNumber;
@ApiModelProperty(value = "工程类别1房建2市政5公路")
private java.lang.Integer projectType;
@ApiModelProperty(value = "工程用途1住宅建筑2宿舍建筑3教育建筑4办公建筑5科研建筑6文化建筑7商业建筑8体育建筑9医疗建筑10交通建筑11司法建筑12纪念建筑13园林建筑14综合建筑15工业厂房16电子厂房17其他")
private java.lang.Integer engineeringPurpose;
@ApiModelProperty(value = "结构类型,1装配整体式框级结构2装配整体式剪力墙结构3装配整体式框级-现浇剪力墙结构4装配整体式框级-现浇核心筒结构5装配整体式部分框支剪力墙结构6混合结构7框架结构8剪力墙结构9框架-剪力墙结构10简体结构11钢结构12型钢混凝土结构13砖混结构14砖木结构")
private java.lang.Integer structureType;
@ApiModelProperty(value = "项目面积")
private java.lang.String projectAcreage;
@ApiModelProperty(value = "工程状态0未开工1在建2停工3验收4完工")
private java.lang.Integer bulidStatus;
@ApiModelProperty(value = "开工日期")
private java.lang.String startWorkDate;
@ApiModelProperty(value = "项目经理")
private java.lang.String projectManage;
@ApiModelProperty(value = "项目联系电话")
private java.lang.String projectTel;
@ApiModelProperty(value = "是否是重点工程 0否2省重3市重4区重")
private java.lang.Integer majorProjectType;
@ApiModelProperty(value = "项目进度")
private Integer projectProgress;
}

View File

@ -173,12 +173,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
@Override
public void saveProject(Project project) {
if (profileJudgeUtil.isSjjt()) {
if (StringUtils.isBlank(project.getCompanySn())) {
project.setCompanySn("B386480F85E84592B8E102224D090794");
}
setProjectCode(project);
}
QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Company::getCompanySn, project.getCompanySn());
Company company = companyService.getOne(queryWrapper);
@ -221,7 +215,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
*
* @param project
*/
private void setProjectCode(Project project) {
public void setProjectCode(Project project) {
String address = project.getProjectAddress();
WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(address);
String province = wsSsdrAddress.getProvince();