glj-代码提交
This commit is contained in:
parent
3832d2d547
commit
d5b7a301d8
|
@ -6,5 +6,6 @@ import lombok.Data;
|
|||
public class DisasterData {
|
||||
private String type;
|
||||
private Integer value;
|
||||
private Integer valueNew;
|
||||
private String date;
|
||||
}
|
||||
|
|
|
@ -121,6 +121,20 @@ public class DisasterInfo implements Serializable {
|
|||
*/
|
||||
private Long chiefId;
|
||||
|
||||
/**
|
||||
* 是否发起灾害响应结束申请(0:未发起/1:发起审批/2审批通过/3审批不通过)
|
||||
*/
|
||||
private Integer isEndApply;
|
||||
|
||||
|
||||
private String chiefName;
|
||||
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private Date respondedTime;
|
||||
|
||||
/**
|
||||
* 管理用户
|
||||
*/
|
||||
|
@ -156,13 +170,6 @@ public class DisasterInfo implements Serializable {
|
|||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
private String chiefName;
|
||||
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private Date respondedTime;
|
||||
|
||||
/**
|
||||
* Allocation 是否是分配
|
||||
|
@ -180,6 +187,23 @@ public class DisasterInfo implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private String refuseReason;
|
||||
|
||||
/**
|
||||
* 灾害类型名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String disasterName;
|
||||
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNci;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNdr;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNr;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String email;
|
||||
|
||||
}
|
||||
|
|
|
@ -237,5 +237,7 @@ public class RemoteSensingSourceData implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private Integer beforeOrAfter =1;
|
||||
|
||||
|
||||
//多个Id
|
||||
@TableField(exist = false)
|
||||
private String idsList;
|
||||
}
|
||||
|
|
|
@ -103,4 +103,8 @@ public class CallForHelpVo extends DisasterInfo {
|
|||
private Long parentId;
|
||||
|
||||
private String roleAlias;
|
||||
|
||||
private Integer respondStatus;
|
||||
|
||||
private Integer isEndApply;
|
||||
}
|
||||
|
|
|
@ -144,6 +144,10 @@ public class CenterDisasterInfo implements Serializable {
|
|||
* 审批管理员时间
|
||||
*/
|
||||
private LocalDateTime reviewTime;
|
||||
/**
|
||||
* 管理员
|
||||
*/
|
||||
private Long sponsorId;
|
||||
|
||||
/**
|
||||
* 用户邮件
|
||||
|
@ -152,4 +156,13 @@ public class CenterDisasterInfo implements Serializable {
|
|||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNci;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNdr;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean isNr;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,155 @@
|
|||
package com.kening.vordm.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName center_disaster_info
|
||||
*/
|
||||
@TableName(value ="center_disaster_info_user")
|
||||
@Data
|
||||
public class CenterDisasterInfoUser implements Serializable {
|
||||
/**
|
||||
* 唯一值
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 灾害类型
|
||||
*/
|
||||
private String disasterType;
|
||||
|
||||
/**
|
||||
* 灾害关键词
|
||||
*/
|
||||
private String disasterKeyword;
|
||||
|
||||
/**
|
||||
* 灾害发生时间
|
||||
*/
|
||||
private Date disasterTime;
|
||||
|
||||
/**
|
||||
* 灾害发起时间
|
||||
*/
|
||||
private Date uploadTime;
|
||||
|
||||
/**
|
||||
* 灾害区域地理字段
|
||||
*/
|
||||
private String geometry;
|
||||
|
||||
/**
|
||||
* 灾害强度或震级
|
||||
*/
|
||||
private String disasterLevel;
|
||||
|
||||
/**
|
||||
* 受灾国家
|
||||
*/
|
||||
private String disasterCountry;
|
||||
|
||||
/**
|
||||
* 响应状态,0未审批,1审批未通过。2审批通过并正在响应,3审批通过并且响应完成
|
||||
*/
|
||||
private Integer respondStatus;
|
||||
|
||||
/**
|
||||
* 本灾害的用户访问次数
|
||||
*/
|
||||
private Integer visitCount;
|
||||
|
||||
/**
|
||||
* 本灾害的数据下载次数
|
||||
*/
|
||||
private Integer downloadCount;
|
||||
|
||||
/**
|
||||
* 爬虫类型
|
||||
*/
|
||||
private Integer spiderType;
|
||||
|
||||
/**
|
||||
* 爬虫起始时间
|
||||
*/
|
||||
private Date tempendTime;
|
||||
|
||||
/**
|
||||
* 爬虫终止时间
|
||||
*/
|
||||
private Date tempStartTime;
|
||||
|
||||
/**
|
||||
* 数据条目创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 灾害id,审批通过后生成
|
||||
*/
|
||||
private String vordmId;
|
||||
|
||||
/**
|
||||
* 灾害响应时间
|
||||
*/
|
||||
private Date respondTime;
|
||||
|
||||
/**
|
||||
* 灾害申请组织
|
||||
*/
|
||||
private String sponsorOrganization;
|
||||
|
||||
/**
|
||||
* 字典名称
|
||||
*/
|
||||
private String dictValue;
|
||||
|
||||
/**
|
||||
* 数据存储链接
|
||||
*/
|
||||
private String disasterImg;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long size;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String news;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 审核状态 0未审核 1审核通过 2审核不通过 3未认领
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 申请管理员时间
|
||||
*/
|
||||
private LocalDateTime applyTime;
|
||||
|
||||
/**
|
||||
* 审批管理员时间
|
||||
*/
|
||||
private LocalDateTime reviewTime;
|
||||
|
||||
/**
|
||||
* 用户邮件
|
||||
*/
|
||||
private String email;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
|
@ -77,7 +77,7 @@ public class CaptchaController extends BladeController {
|
|||
emailService.sendMimeMessage(email);
|
||||
} catch (Exception e) {
|
||||
log.error("发送邮件失败:{}", e);
|
||||
return R.fail("发送失败");
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
// 将key返回给前端
|
||||
return R.success("OK");
|
||||
|
@ -111,7 +111,7 @@ public class CaptchaController extends BladeController {
|
|||
emailService.sendMimeMessage(email);
|
||||
} catch (Exception e) {
|
||||
log.error("发送邮件失败:{}", e);
|
||||
return R.fail("发送失败");
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
return R.success("OK");
|
||||
}
|
||||
|
|
|
@ -5,12 +5,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.entity.Tool;
|
||||
import com.kening.vordm.service.CenterDisasterInfoService;
|
||||
import com.kening.vordm.service.DisasterInfoVoService;
|
||||
import com.kening.vordm.service.GuestInfoService;
|
||||
import com.kening.vordm.service.ToolService;
|
||||
import com.kening.vordm.service.*;
|
||||
import com.kening.vordm.vo.CenterDisasterInfo;
|
||||
import com.kening.vordm.vo.CenterDisasterInfoUser;
|
||||
import com.kening.vordm.vo.DisasterInfoVo;
|
||||
import com.kening.vordm.vo.UserVo;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
|
@ -32,7 +31,11 @@ import java.util.Map;
|
|||
@AllArgsConstructor
|
||||
@RequestMapping("/ui/center")
|
||||
public class CenterController {
|
||||
|
||||
private final CenterDisasterInfoService centerDisasterInfoService;
|
||||
|
||||
private final CenterDisasterInfoUserService centerDisasterInfoUserService;
|
||||
|
||||
private final GuestInfoService guestInfoService;
|
||||
|
||||
/**
|
||||
|
@ -51,6 +54,23 @@ public class CenterController {
|
|||
));
|
||||
}
|
||||
|
||||
//个人中心列表普通用户
|
||||
@GetMapping("/respondingUserList")
|
||||
public R<IPage<CenterDisasterInfoUser>> respondingUserList(Query query, @RequestParam Map<String, String> params) {
|
||||
return R.data(centerDisasterInfoUserService.page(Condition.getPage(query), Wrappers.<CenterDisasterInfoUser>lambdaQuery()
|
||||
// .eq(CenterDisasterInfoUser::getRespondStatus,3)
|
||||
.eq(CenterDisasterInfoUser::getStatus,1)
|
||||
.eq(CenterDisasterInfoUser::getEmail,String.valueOf(params.get("email")))
|
||||
.orderByDesc(CenterDisasterInfoUser::getApplyTime)
|
||||
));
|
||||
}
|
||||
|
||||
//个人中心列表普通用户
|
||||
@GetMapping("/respondedUserList")
|
||||
public R<IPage<DisasterInfo>> respondedUserList(Query query, @RequestParam Map<String, Object> params) {
|
||||
return R.data(centerDisasterInfoUserService.respondedUserList(Condition.getPage(query), params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人中心 Responded列表
|
||||
* 必传email
|
||||
|
|
|
@ -91,7 +91,7 @@ public class ContactController{
|
|||
emailService.sendMimeMessage(email);
|
||||
return R.status(contactService.saveOrUpdate(contact));
|
||||
} catch (Exception e) {
|
||||
return R.fail("发送失败");
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
}
|
||||
@ApiOperationSupport(order = 8)
|
||||
|
|
|
@ -10,15 +10,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||
import com.kening.vordm.entity.*;
|
||||
import com.kening.vordm.service.*;
|
||||
import com.kening.vordm.vo.CallForHelpVo;
|
||||
import com.kening.vordm.vo.DisasterInfoVo;
|
||||
import com.kening.vordm.vo.GroupByUse;
|
||||
import com.kening.vordm.vo.UserTenantVo;
|
||||
import com.kening.vordm.vo.*;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.poi.hssf.record.DVALRecord;
|
||||
import org.springblade.core.mp.support.Condition;
|
||||
import org.springblade.core.mp.support.Query;
|
||||
import org.springblade.core.secure.BladeUser;
|
||||
|
@ -28,11 +26,10 @@ import org.springblade.core.tool.utils.DateUtil;
|
|||
import org.springblade.core.tool.utils.StringUtil;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
@ -83,13 +80,13 @@ public class DisasterInfoController {
|
|||
public R<IPage<CallForHelpVo>> list(CallForHelpVo CallForHelpVo, Query query) {
|
||||
String userRole1 = AuthUtil.getUserRole();
|
||||
|
||||
if (CallForHelpVo.getChiefIdEquals()!=null){
|
||||
if (CallForHelpVo.getChiefIdEquals() != null) {
|
||||
CallForHelpVo userRole = disasterInfoService.getByUserIdRole(CallForHelpVo.getChiefIdEquals());
|
||||
if (userRole1.equals("TENANT_ADMIN") && userRole.getRoleAlias().equals("TENANT_ADMIN")){
|
||||
if (userRole1.equals("TENANT_ADMIN") && userRole.getRoleAlias().equals("TENANT_ADMIN")) {
|
||||
CallForHelpVo.setChiefIdEquals(null);
|
||||
}
|
||||
}else {
|
||||
if (userRole1.equals("TENANT_ADMIN")){
|
||||
} else {
|
||||
if (userRole1.equals("TENANT_ADMIN")) {
|
||||
CallForHelpVo.setChiefIdEquals(null);
|
||||
}
|
||||
}
|
||||
|
@ -163,7 +160,7 @@ public class DisasterInfoController {
|
|||
dataMap.put("country", disasterInfoService.getLeft2Data());
|
||||
//发起机构方法 第三个左边栏 取前3个
|
||||
dataMap.put("sponsorOrganization", disasterInfoService.getLeft3Data());
|
||||
//发起机构方法 第四个左边栏 取前3个
|
||||
//普通用户发起得灾害信息
|
||||
dataMap.put("responseOrganization", disasterInfoService.getLeft4Data());
|
||||
//List<GroupByUse> groupByUseList = new ArrayList<>();
|
||||
// if("searchSponsorOrganization".equals(name)){
|
||||
|
@ -319,7 +316,7 @@ public class DisasterInfoController {
|
|||
DisasterInfo disasterInfo = new DisasterInfo();
|
||||
BeanUtil.copyProperties(callForHelpVo, disasterInfo);
|
||||
disasterInfo.setUploadTime(new Date());
|
||||
if (callForHelpVo.getDisasterLevel() != null){
|
||||
if (callForHelpVo.getDisasterLevel() != null) {
|
||||
disasterInfo.setDisasterLevel(callForHelpVo.getDisasterLevel());
|
||||
}
|
||||
Boolean flag3 = disasterInfoService.save(disasterInfo);
|
||||
|
@ -336,6 +333,7 @@ public class DisasterInfoController {
|
|||
}
|
||||
|
||||
private final AdministratorService administratorService;
|
||||
|
||||
@PostMapping("review")
|
||||
public R<Boolean> review(@RequestBody DisasterInfo disasterInfo) {
|
||||
//审核邮件实例化
|
||||
|
@ -344,29 +342,61 @@ public class DisasterInfoController {
|
|||
QueryWrapper<GuestInfo> qw = new QueryWrapper<>();
|
||||
qw.apply("id = (select sponsor_id from guest_manage_disaster_ref where disaster_id = {0})", disasterInfo.getId());
|
||||
GuestInfo guestInfo = guestInfoService.getOne(qw);
|
||||
email.setTos(new String[]{ guestInfo.getEmail()});
|
||||
|
||||
|
||||
//审批通过 响应状态,0未审批,1审批未通过。2审批通过并正在响应,3审批通过并且响应完成
|
||||
if (disasterInfo.getRespondStatus() == 2) {
|
||||
|
||||
String numbering = serialNumberService.generateNumbering(disasterInfo.getDisasterType());
|
||||
disasterInfo.setVordmId(numbering);
|
||||
disasterInfo.setRespondTime(new Date());
|
||||
|
||||
DisasterInfoVo disasterInfoVo = disasterInfoVoService.getById(disasterInfo.getId());
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String html = "<a href='http://121.89.234.154:6300/vordm/Responding'>here</a>";
|
||||
email.setSubject("Your disaster response application has been approved!");
|
||||
email.setText("Your disaster response application has been approved!");
|
||||
}else{
|
||||
email.setSubject(disasterInfo.getRefuseTitle());
|
||||
email.setText(disasterInfo.getRefuseReason());
|
||||
}
|
||||
Boolean flag = disasterInfoService.updateById(disasterInfo);
|
||||
//保证数据在更新完后发送邮件。防止数据更新失败,邮件发送成功
|
||||
|
||||
String content = "The disaster reduction request for the " + disasterInfoVo.getDisasterCountry()+ " " +disasterInfoVo.getDictValue()+"("+simpleDateFormat.format(disasterInfoVo.getDisasterTime())+")" +"has been approved by the VoRDM office. Click " +html+" to check!";
|
||||
email.setText(content);
|
||||
email.setHtmlText(true);
|
||||
|
||||
//获取所有管理员信息
|
||||
List<UserVo> allUserEmail = disasterInfoService.getAllUserEmail();
|
||||
List<String> userEmails = new ArrayList<>();
|
||||
allUserEmail.stream().forEach(userVo -> {
|
||||
//发送信息
|
||||
// if (userVo.getEmail() != null) {
|
||||
// userEmails.add(userVo.getEmail());
|
||||
// }
|
||||
// 获取灾害详情
|
||||
|
||||
email.setTos(new String[]{userVo.getEmail()});
|
||||
|
||||
try {
|
||||
emailService.sendMimeMessage(email);
|
||||
} catch (Exception e) {
|
||||
return R.fail("发送失败");
|
||||
userEmails.add(userVo.getEmail());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
email.setTos(new String[]{guestInfo.getEmail()});
|
||||
email.setSubject(disasterInfo.getRefuseTitle());
|
||||
email.setText(disasterInfo.getRefuseReason());
|
||||
try {
|
||||
emailService.sendMimeMessage(email);
|
||||
} catch (Exception e) {
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
}
|
||||
Boolean flag = disasterInfoService.updateById(disasterInfo);
|
||||
//保证数据在更新完后发送邮件。防止数据更新失败,邮件发送成功
|
||||
return R.data(flag);
|
||||
}
|
||||
|
||||
private final EmailService emailService;
|
||||
|
||||
@ApiOperationSupport(order = 6)
|
||||
@ApiOperation(value = "提交", notes = "传入Tool")
|
||||
@PostMapping("/submit")
|
||||
|
@ -375,7 +405,7 @@ public class DisasterInfoController {
|
|||
//判断是否是分配
|
||||
String Allocation = disasterInfo.getAllocation();
|
||||
LambdaQueryWrapper<GuestManageDisasterRef> qw = new LambdaQueryWrapper<>();
|
||||
qw.eq(GuestManageDisasterRef::getDisasterId,disasterInfo.getId());
|
||||
qw.eq(GuestManageDisasterRef::getDisasterId, disasterInfo.getId());
|
||||
GuestManageDisasterRef one = guestManageDisasterRefService.getOne(qw);
|
||||
one.setStatus(1);
|
||||
one.setManagerId(chiefId);
|
||||
|
@ -384,29 +414,28 @@ public class DisasterInfoController {
|
|||
//获得disasterInfo
|
||||
disasterInfo = disasterInfoService.getById(disasterInfo.getId());
|
||||
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
if(!StringUtil.isEmpty(Allocation)){
|
||||
if (!StringUtil.isEmpty(Allocation)) {
|
||||
Administrator user = administratorService.getById(chiefId);
|
||||
//获取灾害详情
|
||||
DisasterInfoVo disasterInfoVo = disasterInfoVoService.getById(disasterInfo.getId());
|
||||
//发送邮件
|
||||
Email email = new Email();
|
||||
email.setSubject("You have a Disaster Response task pending");
|
||||
String text ="Disaster Keyword:" + disasterInfo.getDisasterKeyword()+"<br>";
|
||||
text+= "Disaster Time:" + disasterInfo.getDisasterTime()+"<br>";
|
||||
//disaster_country
|
||||
text+= "Disaster Country:" + disasterInfo.getDisasterCountry()+"<br>";
|
||||
//vordm_id
|
||||
text+= "VORDM ID:" + disasterInfo.getVordmId()+"<br>";
|
||||
|
||||
String html = "<a href='http://121.89.234.154:6300/vordm/Responding'>go and check</a>";
|
||||
String text = "Dear administrator "+user.getName()+", you have been assigned by the VoRDM office to respond to the "+disasterInfoVo.getDisasterCountry()+" "+ disasterInfoVo.getDictValue()+"("+simpleDateFormat.format(disasterInfoVo.getDisasterTime()) +")"+". Please "+html+" in a timely manner.";
|
||||
|
||||
email.setText(text);
|
||||
String [] to = new String[]{user.getEmail()};
|
||||
String[] to = new String[]{user.getEmail()};
|
||||
email.setTos(to);
|
||||
email.setHtmlText(true);
|
||||
try {
|
||||
emailService.sendMimeMessage(email);
|
||||
} catch (Exception e) {
|
||||
return R.fail("发送失败");
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
|
||||
}
|
||||
return R.status(disasterInfoService.saveOrUpdate(disasterInfo));
|
||||
}
|
||||
|
@ -421,6 +450,11 @@ public class DisasterInfoController {
|
|||
return R.data(disasterInfoService.statistics(year));
|
||||
}
|
||||
|
||||
@GetMapping("/statisticsByUser")
|
||||
public R statisticsByUser(String year,Long userId,String email) {
|
||||
return R.data(disasterInfoService.statisticsByUser(year,userId,email));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量更新灾害的chief管理者
|
||||
*
|
||||
|
@ -431,7 +465,7 @@ public class DisasterInfoController {
|
|||
public R updateBatch(@RequestBody List<DisasterInfo> disasterInfoList) {
|
||||
disasterInfoList.stream().forEach(disasterInfo -> {
|
||||
LambdaQueryWrapper<GuestManageDisasterRef> qw = new LambdaQueryWrapper<>();
|
||||
qw.eq(GuestManageDisasterRef::getDisasterId,disasterInfo.getId());
|
||||
qw.eq(GuestManageDisasterRef::getDisasterId, disasterInfo.getId());
|
||||
GuestManageDisasterRef one = guestManageDisasterRefService.getOne(qw);
|
||||
one.setStatus(1);
|
||||
one.setManagerId(disasterInfo.getChiefId());
|
||||
|
@ -474,14 +508,120 @@ public class DisasterInfoController {
|
|||
return R.data(disasterInfoService.updateById(disasterInfo));
|
||||
}
|
||||
|
||||
//chief管理个人中心统计
|
||||
@GetMapping("/getByUserDisasterInfoStatistics")
|
||||
public R getByUserDisasterInfo(Long userId) {
|
||||
return R.data(disasterInfoService.getByUserDisasterInfoStatistics(userId));
|
||||
public R getByUserDisasterInfo(Long userId, String email) {
|
||||
return R.data(disasterInfoService.getByUserDisasterInfoStatistics(userId,email));
|
||||
}
|
||||
|
||||
//普通用户个人中心统计
|
||||
@GetMapping("/getByOrdinaryUserDisasterInfoStatistics")
|
||||
public R getByOrdinaryUserDisasterInfoStatistics(Long userId, String email) {
|
||||
return R.data(disasterInfoService.getByOrdinaryUserDisasterInfoStatistics(userId,email));
|
||||
}
|
||||
|
||||
//根据ID删除
|
||||
@DeleteMapping("/deleteByIds")
|
||||
public R deleteByIds(@RequestBody List<Long> ids) {
|
||||
return R.status(disasterInfoService.removeByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
//个人中心列表统计
|
||||
@GetMapping("/getDisasterInfoByUserId")
|
||||
public R<List<DisasterInfo>> getDisasterInfoByUserId(Long userId, String email) {
|
||||
return R.data(disasterInfoService.getDisasterInfoByUserId(userId,email));
|
||||
}
|
||||
|
||||
//个人中心列表统计-根据国家分类饼状图
|
||||
@GetMapping("/getDisasterInfoByUserIdCountry")
|
||||
public R<Map<String, List<DisasterInfo>>> getDisasterInfoByUserIdCountry(Long userId, String email) {
|
||||
List<DisasterInfo> disasterInfoByUserId = disasterInfoService.getDisasterInfoByUserId(userId,email);
|
||||
Map<String, List<DisasterInfo>> collect = disasterInfoByUserId.stream().collect(Collectors.groupingBy(DisasterInfo::getDisasterCountry));
|
||||
return R.data(collect);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 按月统计当年每个月的响应或者申请量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getDisasterInfoByMouth")
|
||||
public R<List<Map<String, Object>>> getDisasterInfoByMouth(Integer type, Long userId, String email) {
|
||||
return R.data(disasterInfoService.getDisasterInfoByMouth(type, userId, email));
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员发起灾害结束申请
|
||||
* @param disasterInfo
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/examineDisasterInfoEnd")
|
||||
public R<Boolean> examineDisasterInfoEnd(@RequestBody DisasterInfo disasterInfo) {
|
||||
//是否发起灾害响应结束申请(0:未发起/1:发起审批/2审批通过/3审批不通过)
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
if (disasterInfo.getIsEndApply()==2){
|
||||
DisasterInfoVo disasterInfoVo = disasterInfoVoService.getById(disasterInfo.getId());
|
||||
//发送邮件
|
||||
Email email = new Email();
|
||||
|
||||
email.setSubject("You have a Disaster Response task pending");
|
||||
|
||||
String text = "The disaster reduction task of "+disasterInfoVo.getDisasterCountry()+" "+disasterInfoVo.getDictValue()+"("+simpleDateFormat.format(disasterInfoVo.getDisasterTime())+")" +" you claimed has been completed!";
|
||||
|
||||
email.setText(text);
|
||||
String[] to = new String[]{disasterInfo.getEmail()};
|
||||
email.setTos(to);
|
||||
|
||||
try {
|
||||
disasterInfo.setRespondStatus(3);
|
||||
emailService.sendMimeMessage(email);
|
||||
disasterInfoService.updateById(disasterInfo);
|
||||
} catch (Exception e) {
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
}else if (disasterInfo.getIsEndApply()==3){
|
||||
Administrator user = administratorService.getById(disasterInfo.getChiefId());
|
||||
DisasterInfoVo disasterInfoVo = disasterInfoVoService.getById(disasterInfo.getId());
|
||||
//发送邮件
|
||||
Email email = new Email();
|
||||
|
||||
email.setSubject("You have a Disaster Response task pending");
|
||||
|
||||
String text = "Sorry, the disaster reduction task of "+disasterInfoVo.getDisasterCountry()+" "+disasterInfoVo.getDictValue()+"("+simpleDateFormat.format(disasterInfoVo.getDisasterTime())+")" +" you claimed will continue! Please continue to monitor the progress of the disaster!";
|
||||
|
||||
email.setText(text);
|
||||
String[] to = new String[]{user.getEmail()};
|
||||
email.setTos(to);
|
||||
|
||||
try {
|
||||
emailService.sendMimeMessage(email);
|
||||
disasterInfoService.updateById(disasterInfo);
|
||||
} catch (Exception e) {
|
||||
return R.fail("Sending failed, please check if the email is correct!");
|
||||
}
|
||||
}
|
||||
return R.data(disasterInfoService.updateById(disasterInfo));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getUserDisasterInfoList")
|
||||
public R<IPage<DisasterInfo>> getUserDisasterInfoList(Query query, @RequestParam Map<String, String> params) {
|
||||
String type = params.get("type");
|
||||
if (type.equals("0")){
|
||||
IPage<DisasterInfo> centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNCI(Condition.getPage(query),params.get("email"));
|
||||
return R.data(centerDisasterInfoIPage);
|
||||
}else {
|
||||
if (params.get("respondStatus") != null){
|
||||
IPage<DisasterInfo> centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNDRNew(Condition.getPage(query),params.get("userId"),params.get("respondStatus"));
|
||||
return R.data(centerDisasterInfoIPage);
|
||||
}else {
|
||||
IPage<DisasterInfo> centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNDR(Condition.getPage(query),params.get("userId"));
|
||||
return R.data(centerDisasterInfoIPage);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -81,11 +81,24 @@ public class RemoteSensingSourceDataController {
|
|||
return R.status(remoteSensingSourceDataService.updateById(remoteSensingSourceData));
|
||||
}
|
||||
|
||||
@PostMapping("/approvalMultiple")
|
||||
public R approvalMultiple(@RequestBody RemoteSensingSourceData remoteSensingSourceData){
|
||||
String idsList = remoteSensingSourceData.getIdsList();
|
||||
List<String> collect = Stream.of(idsList.split(",")).collect(Collectors.toList());
|
||||
collect.stream().forEach(id->{
|
||||
remoteSensingSourceData.setId(Long.parseLong(id));
|
||||
remoteSensingSourceDataService.updateById(remoteSensingSourceData);
|
||||
});
|
||||
return R.status(true);
|
||||
}
|
||||
|
||||
@PostMapping("/addRemoteSensingSourceData")
|
||||
public R addRemoteSensingSourceData(@RequestBody RemoteSensingSourceData remoteSensingSourceData){
|
||||
return R.status(remoteSensingSourceDataService.save(remoteSensingSourceData));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导入
|
||||
* @param file
|
||||
|
|
|
@ -51,6 +51,9 @@ public class ToolController{
|
|||
if(!StringUtils.isEmpty(tool.getLabel())){
|
||||
queryWrapper.like("Introduction", tool.getLabel()).or().like("label", tool.getLabel());
|
||||
}
|
||||
if(tool.getUploader()!=null) {
|
||||
queryWrapper.eq("uploader", tool.getUploader());
|
||||
}
|
||||
String checkd = tool.getChecked();
|
||||
if(checkd != null && checkd.equals("1")){
|
||||
queryWrapper.isNull("review_time");
|
||||
|
@ -170,5 +173,20 @@ public class ToolController{
|
|||
public R getStatisticsByUserId(Long id, String year) {
|
||||
return R.data(toolService.getStatisticsByUserId(id, year));
|
||||
}
|
||||
|
||||
//普通用户个人中心统计
|
||||
@GetMapping("/getStatisticsByUserIdPancake")
|
||||
public R getStatisticsByUserIdPancake(Long userId) {
|
||||
return R.data(toolService.getStatisticsByUserIdPancake(userId));
|
||||
}
|
||||
|
||||
|
||||
//管理员获取未被审批得工具信息
|
||||
@GetMapping("/getUnauditedTool")
|
||||
public R getUnauditedTool() {
|
||||
return R.data(toolService.getUnauditedTool());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package com.kening.vordm.mapper;
|
||||
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.vo.CenterDisasterInfo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wangns
|
||||
|
@ -11,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
*/
|
||||
public interface CenterDisasterInfoMapper extends BaseMapper<CenterDisasterInfo> {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,17 +31,20 @@
|
|||
<result property="status" column="status" jdbcType="INTEGER"/>
|
||||
<result property="applyTime" column="apply_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="reviewTime" column="review_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="sponsorId" column="sponsor_id" jdbcType="BIGINT"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,disaster_type,disaster_keyword,
|
||||
disaster_time,upload_time,geometry,
|
||||
disaster_level,disaster_country,respond_status,
|
||||
visit_count,download_count,spider_type,
|
||||
tempend_time,temp_start_time,create_time,
|
||||
vordm_id,respond_time,sponsor_organization,
|
||||
dict_value,disaster_img,size,
|
||||
news,user_name,status,
|
||||
apply_time,review_time
|
||||
di.id,di.disaster_type,di.disaster_keyword,
|
||||
di.disaster_time,di.upload_time,di.geometry,
|
||||
di.disaster_level,di.disaster_country,di.respond_status,
|
||||
di.visit_count,di.download_count,di.spider_type,
|
||||
di.tempend_time,di.temp_start_time,di.create_time,
|
||||
di.vordm_id,di.respond_time,di.sponsor_organization,
|
||||
di.dict_value,di.disaster_img,di.size,
|
||||
di.news,di.user_name,di.status,
|
||||
di.apply_time,di.review_time
|
||||
</sql>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.kening.vordm.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.kening.vordm.vo.CenterDisasterInfoUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wangns
|
||||
* @description 针对表【center_disaster_info】的数据库操作Mapper
|
||||
* @createDate 2023-04-19 11:46:32
|
||||
* @Entity com.kening.vordm.vo.CenterDisasterInfo
|
||||
*/
|
||||
public interface CenterDisasterInfoUserMapper extends BaseMapper<CenterDisasterInfoUser> {
|
||||
|
||||
IPage<CenterDisasterInfoUser> respondedUserList(IPage<CenterDisasterInfoUser> page,@Param("params") Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.kening.vordm.mapper.CenterDisasterInfoUserMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.kening.vordm.vo.CenterDisasterInfoUser">
|
||||
<result property="id" column="id" jdbcType="BIGINT"/>
|
||||
<result property="disasterType" column="disaster_type" jdbcType="VARCHAR"/>
|
||||
<result property="disasterKeyword" column="disaster_keyword" jdbcType="VARCHAR"/>
|
||||
<result property="disasterTime" column="disaster_time" jdbcType="DATE"/>
|
||||
<result property="uploadTime" column="upload_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="geometry" column="geometry" jdbcType="VARCHAR"/>
|
||||
<result property="disasterLevel" column="disaster_level" jdbcType="VARCHAR"/>
|
||||
<result property="disasterCountry" column="disaster_country" jdbcType="VARCHAR"/>
|
||||
<result property="respondStatus" column="respond_status" jdbcType="SMALLINT"/>
|
||||
<result property="visitCount" column="visit_count" jdbcType="INTEGER"/>
|
||||
<result property="downloadCount" column="download_count" jdbcType="INTEGER"/>
|
||||
<result property="spiderType" column="spider_type" jdbcType="INTEGER"/>
|
||||
<result property="tempendTime" column="tempend_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="tempStartTime" column="temp_start_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="vordmId" column="vordm_id" jdbcType="VARCHAR"/>
|
||||
<result property="respondTime" column="respond_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="sponsorOrganization" column="sponsor_organization" jdbcType="VARCHAR"/>
|
||||
<result property="dictValue" column="dict_value" jdbcType="VARCHAR"/>
|
||||
<result property="disasterImg" column="disaster_img" jdbcType="VARCHAR"/>
|
||||
<result property="size" column="size" jdbcType="DECIMAL"/>
|
||||
<result property="news" column="news" jdbcType="VARCHAR"/>
|
||||
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
|
||||
<result property="status" column="status" jdbcType="INTEGER"/>
|
||||
<result property="applyTime" column="apply_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="reviewTime" column="review_time" jdbcType="TIMESTAMP"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
cdiu.id,cdiu.disaster_type,cdiu.disaster_keyword,
|
||||
cdiu.disaster_time,cdiu.upload_time,cdiu.geometry,
|
||||
cdiu.disaster_level,cdiu.disaster_country,cdiu.respond_status,
|
||||
cdiu.visit_count,cdiu.download_count,cdiu.spider_type,
|
||||
cdiu.tempend_time,cdiu.temp_start_time,cdiu.create_time,
|
||||
cdiu.vordm_id,cdiu.respond_time,cdiu.sponsor_organization,
|
||||
cdiu.dict_value,cdiu.disaster_img,cdiu.size,
|
||||
cdiu.news,cdiu.user_name,cdiu.status,
|
||||
cdiu.apply_time,cdiu.review_time
|
||||
</sql>
|
||||
<select id="respondedUserList" resultType="com.kening.vordm.vo.CenterDisasterInfoUser">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from center_disaster_info_user cdiu
|
||||
<where>
|
||||
and cdiu.status = 1
|
||||
<if test='params.idList != null and params.idList.size() > 0'>
|
||||
and cdiu.id IN
|
||||
<foreach collection="params.idList" index="index" item="Id" open="(" separator="," close=")">
|
||||
#{Id}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -83,4 +83,24 @@ public interface DisasterInfoMapper extends BaseMapper<DisasterInfo> {
|
|||
|
||||
CallForHelpVo getByUserIdRole(@Param("chiefIdEquals") Long chiefIdEquals);
|
||||
|
||||
IPage<DisasterInfo> respondedUserList(IPage<DisasterInfo> page, Map<String, Object> params);
|
||||
|
||||
List<DisasterInfo> getDisasterInfoByUserIdNCI(@Param("userId") Long userId,@Param("email") String email);
|
||||
|
||||
List<DisasterInfo> getDisasterInfoByUserIdNDR(@Param("userId") Long userId);
|
||||
|
||||
List<DisasterInfo> getDisasterInfoByUserIdNR(@Param("userId") Long userId);
|
||||
|
||||
List<Map<String, Object>> getDisasterInfoByMouthNew(@Param("start") String start,@Param("end") String end,@Param("userId") Long userId,@Param("email") String email);
|
||||
|
||||
List<UserVo> getAllUserEmail();
|
||||
|
||||
|
||||
List<Map<String, Long>> initiateAndResponseDataByUser(@Param("year") String year,@Param("userId") Long userId,@Param("email") String email);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNCI(IPage<Object> page,@Param("email") String email);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNDR(IPage<Object> page,@Param("userId") String userId);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNDRNew(IPage<Object> page,@Param("userId") String userId,@Param("respondStatus") String respondStatus);
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
<result property="respondTime" column="respond_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="sponsorOrganization" column="sponsor_organization" jdbcType="TIMESTAMP"/>
|
||||
<result property="respondedTime" column="responded_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="isEndApply" column="is_end_apply" jdbcType="INTEGER"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
|
@ -35,7 +36,8 @@
|
|||
di.disaster_level,di.disaster_country,di.respond_status,
|
||||
di.visit_count,di.spider_type,di.tempend_time,
|
||||
di.temp_start_time,di.create_time,di.vordm_id,
|
||||
di.respond_time,di.download_count,di.sponsor_organization,di.responded_time
|
||||
di.respond_time,di.download_count,di.sponsor_organization,
|
||||
di.responded_time,di.is_end_apply
|
||||
</sql>
|
||||
|
||||
<sql id="Home_Disaster_Info">
|
||||
|
@ -129,7 +131,7 @@
|
|||
left join guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where gi.username != ''
|
||||
GROUP BY gi.username
|
||||
ORDER BY cnt desc LIMIT 5
|
||||
ORDER BY cnt desc LIMIT 10
|
||||
</select>
|
||||
|
||||
<select id="getLeft4Data" resultType="com.kening.vordm.vo.GroupByUse">
|
||||
|
@ -139,12 +141,12 @@
|
|||
FROM disaster_info t
|
||||
INNER JOIN guest_manage_disaster_ref gm ON gm.disaster_id = t.id
|
||||
INNER JOIN guest_info g ON g.id = gm.sponsor_id
|
||||
WHERE gm.`status` != 2
|
||||
WHERE gm.`status` != 2 and gm.`status` != 0
|
||||
GROUP BY
|
||||
gm.sponsor_id
|
||||
ORDER BY
|
||||
cnt DESC
|
||||
LIMIT 5
|
||||
LIMIT 10
|
||||
</select>
|
||||
|
||||
<select id="getLeft1Data" resultType="com.kening.vordm.vo.GroupByUse">
|
||||
|
@ -159,7 +161,7 @@
|
|||
and b.parent_id != 0
|
||||
group by b.dict_key, b.dict_value
|
||||
order by cnt desc
|
||||
limit 7
|
||||
limit 10
|
||||
</select>
|
||||
|
||||
<select id="getLeft2Data" resultType="com.kening.vordm.vo.GroupByUse">
|
||||
|
@ -168,7 +170,7 @@
|
|||
INNER JOIN
|
||||
(select t.disaster_country as name, count(*) as cnt, 'country' as `type`
|
||||
from disaster_info t
|
||||
group by t.disaster_country limit 7) b on c.flagname = b.`name`
|
||||
group by t.disaster_country limit 10) b on c.flagname = b.`name`
|
||||
order by b.cnt desc
|
||||
</select>
|
||||
|
||||
|
@ -194,6 +196,7 @@
|
|||
d.geometry,
|
||||
d.respond_status,
|
||||
d.responded_time,
|
||||
d.is_end_apply,
|
||||
ud.review_time AS reviewTime,
|
||||
bdb.dict_value as dictValue
|
||||
From
|
||||
|
@ -205,6 +208,9 @@
|
|||
<if test="callForHelpVo.respondStatus!=null">
|
||||
d.respond_status = #{callForHelpVo.respondStatus}
|
||||
</if>
|
||||
<if test="callForHelpVo.isEndApply!=null">
|
||||
and d.is_end_apply = #{callForHelpVo.isEndApply}
|
||||
</if>
|
||||
<if test="callForHelpVo.chiefIdEquals != null">
|
||||
and d.chief_id = #{callForHelpVo.chiefIdEquals}
|
||||
</if>
|
||||
|
@ -276,11 +282,107 @@
|
|||
where date_format(t.disaster_time, '%Y') = #{year}
|
||||
</select>
|
||||
<select id="visitAndDownLoad" resultType="java.util.Map">
|
||||
SELECT d.dict_value, SUM(t.visit_count) as visit, SUM(t.download_count) as download
|
||||
select d.`key`, sum(d.response) as response, SUM(d.initiate) as initiate
|
||||
from (
|
||||
SELECT CONCAT(#{year}, '-01') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
INNER JOIN blade_dict_biz d on t.disaster_type = d.dict_key
|
||||
where date_format(t.disaster_time, '%Y') = #{year}
|
||||
GROUP BY d.dict_value
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-01')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-02') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-02')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-03') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-03')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-04') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-04')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-05') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-05')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-06') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-06')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-07') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-07')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-08') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-08')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-09') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-09')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-10') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-10')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-11') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-11')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-12') as `key`, 0 as response, sum(t.visit_count) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-12')
|
||||
union ALL
|
||||
|
||||
|
||||
SELECT CONCAT(#{year}, '-01') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-01')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-02') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-02')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-03') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-03')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-04') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-04')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-05') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-05')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-06') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-06')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-07') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-07')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-08') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-08')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-09') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-09')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-10') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-10')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-11') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-11')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-12') as `key`, sum(t.download_count) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-12')) d
|
||||
GROUP BY d.`key`
|
||||
ORDER BY d.`key`
|
||||
</select>
|
||||
<select id="initiateAndResponseData" resultType="java.util.Map">
|
||||
select d.`key`, sum(d.response) as response, SUM(d.initiate) as initiate
|
||||
|
@ -396,58 +498,23 @@
|
|||
</select>
|
||||
|
||||
<select id="adminData" resultType="java.util.Map">
|
||||
select d.`key` AS 'name', SUM(d.initiate) as val
|
||||
from (
|
||||
SELECT CONCAT(#{year}, '-01') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-01')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-02') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-02')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-03') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-03')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-04') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-04')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-05') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-05')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-06') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-06')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-07') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-07')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-08') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-08')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-09') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-09')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-10') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-10')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-11') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-11')
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-12') as `key`, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-12')
|
||||
) d
|
||||
GROUP BY d.`key`
|
||||
ORDER BY d.`key`
|
||||
SELECT
|
||||
b.`name`,
|
||||
count(*) AS val
|
||||
FROM
|
||||
disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
INNER JOIN blade_user b ON gi.email = b.email
|
||||
WHERE
|
||||
date_format( t.disaster_time, '%Y' ) = #{year}
|
||||
|
||||
AND b.`name` != "超级管理员"
|
||||
GROUP BY
|
||||
b.`name`
|
||||
ORDER BY
|
||||
val DESC
|
||||
LIMIT 10
|
||||
</select>
|
||||
|
||||
|
||||
|
@ -469,4 +536,285 @@
|
|||
WHERE bu.id = #{chiefIdEquals}
|
||||
</select>
|
||||
|
||||
<select id="respondedUserList" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>,
|
||||
bdb.dict_value AS dictValue
|
||||
from disaster_info di
|
||||
left JOIN blade_dict_biz bdb on bdb.dict_key = di.disaster_type and code = 'disaster'
|
||||
<where>
|
||||
and (di.respond_status = 2 or di.respond_status = 3)
|
||||
<if test='params.idList != null and params.idList.size() > 0'>
|
||||
and di.id IN
|
||||
<foreach collection="params.idList" index="index" item="Id" open="(" separator="," close=")">
|
||||
#{Id}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getDisasterInfoByUserIdNCI" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
<where>
|
||||
gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getDisasterInfoByUserIdNDR" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
<where>
|
||||
di.chief_id = #{userId}
|
||||
and di.respond_status > 1
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getDisasterInfoByUserIdNR" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
left join entity_data ed on ed.disaster_id = di.id
|
||||
where
|
||||
ed.uploader_id = #{userId}
|
||||
GROUP BY di.id
|
||||
</select>
|
||||
|
||||
<select id="getDisasterInfoByMouthNew" resultType="java.util.Map">
|
||||
SELECT
|
||||
date_format(di.disaster_time,'%m') AS date,
|
||||
COUNT(1) AS value
|
||||
FROM
|
||||
disaster_info di
|
||||
left join guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
WHERE
|
||||
di.disaster_time BETWEEN #{start} AND #{end}
|
||||
<if test="email != null">
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
</if>
|
||||
GROUP BY date
|
||||
</select>
|
||||
|
||||
<select id="getAllUserEmail" resultType="com.kening.vordm.vo.UserVo">
|
||||
SELECT *
|
||||
FROM blade_user bu
|
||||
WHERE bu.role_id = '1123598816738675203'
|
||||
</select>
|
||||
|
||||
<select id="initiateAndResponseDataByUser" resultType="java.util.Map">
|
||||
select d.`key`, sum(d.response) as response, SUM(d.initiate) as initiate
|
||||
from (
|
||||
SELECT CONCAT(#{year}, '-01') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-01')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-02') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-02')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-03') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-03')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-04') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-04')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-05') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-05')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-06') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-06')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-07') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-07')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-08') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-08')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-09') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-09')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-10') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-10')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-11') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-11')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-12') as `key`, 0 as response, count(1) as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
where date_format(t.disaster_time, '%Y-%m') = CONCAT(#{year}, '-12')
|
||||
and gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
union ALL
|
||||
|
||||
|
||||
SELECT CONCAT(#{year}, '-01') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-01')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-02') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-02')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-03') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-03')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-04') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-04')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-05') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-05')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-06') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-06')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-07') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-07')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-08') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-08')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-09') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-09')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-10') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-10')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-11') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-11')
|
||||
and gmdr.manager_id = #{userId}
|
||||
union ALL
|
||||
SELECT CONCAT(#{year}, '-12') as `key`, count(1) as response, 0 as initiate
|
||||
FROM disaster_info t
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = t.id
|
||||
where date_format(t.respond_time, '%Y-%m') = CONCAT(#{year}, '-12')
|
||||
and gmdr.manager_id = #{userId}
|
||||
) d
|
||||
GROUP BY d.`key`
|
||||
ORDER BY d.`key`
|
||||
</select>
|
||||
|
||||
<select id="getUserDisasterInfoListNCI" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
<where>
|
||||
gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getUserDisasterInfoListNDR" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
<where>
|
||||
gmdr.manager_id = #{userId}
|
||||
</where>
|
||||
</select>
|
||||
<select id="getUserDisasterInfoListNDRNew" resultType="com.kening.vordm.entity.DisasterInfo">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from disaster_info di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
<where>
|
||||
gmdr.manager_id = #{userId}
|
||||
and di.respond_status = #{respondStatus}
|
||||
and di.is_end_apply = 0
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -2,10 +2,13 @@ package com.kening.vordm.mapper;
|
|||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.entity.GuestInfo;
|
||||
import com.kening.vordm.vo.UserVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author G1393
|
||||
* @description 针对表【guest_info(游客信息表/志愿者)】的数据库操作Mapper
|
||||
|
@ -21,11 +24,17 @@ public interface GuestInfoMapper extends BaseMapper<GuestInfo> {
|
|||
|
||||
int updateAccount(@Param("userVo") UserVo userVo);
|
||||
|
||||
int getByUserStatisticsOne(@Param("userId") Long userId);
|
||||
int getByUserStatisticsOne(@Param("userId") Long userId,@Param("email") String email);
|
||||
|
||||
int getByUserStatisticsTwo(@Param("userId") Long userId);
|
||||
|
||||
int getByUserStatisticsThree(@Param("userId") Long userId);
|
||||
|
||||
int getByUserStatisticsFour(@Param("userId") Long userId);
|
||||
|
||||
int getByUserStatisticsOneNew(@Param("userId") Long userId,@Param("email") String email);
|
||||
|
||||
int getByUserStatisticsThreeNew(@Param("userId") Long userId);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -43,9 +43,11 @@
|
|||
<select id="getByUserStatisticsOne" resultType="java.lang.Integer">
|
||||
select count(di.id)
|
||||
FROM disaster_info di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
<where>
|
||||
di.chief_id = #{userId}
|
||||
and di.respond_status = 3
|
||||
gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
@ -54,9 +56,8 @@
|
|||
FROM disaster_info di
|
||||
<where>
|
||||
di.chief_id = #{userId}
|
||||
and di.respond_status = 2
|
||||
and di.respond_status > 1
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getByUserStatisticsThree" resultType="java.lang.Integer">
|
||||
|
@ -76,4 +77,24 @@
|
|||
and ed.manager_id = null
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getByUserStatisticsOneNew" resultType="java.lang.Integer">
|
||||
select count(di.id)
|
||||
FROM guest_manage_disaster_ref di
|
||||
LEFT JOIN guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
|
||||
LEFT JOIN guest_info gi on gi.id = gmdr.sponsor_id
|
||||
<where>
|
||||
gi.email = #{email}
|
||||
and gmdr.status != 2
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getByUserStatisticsThreeNew" resultType="java.lang.Integer">
|
||||
select count(ed.id)
|
||||
FROM entity_data ed
|
||||
<where>
|
||||
ed.uploader_id = #{userId}
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.kening.vordm.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.kening.vordm.entity.Tool;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -21,4 +22,10 @@ public interface ToolMapper extends BaseMapper<Tool> {
|
|||
Integer selectCountShowName();
|
||||
|
||||
List<Map<String, Long>> getStatisticsByUserId(Long id, String year);
|
||||
|
||||
int getByUserStatistics(@Param("userId") Long userId);
|
||||
|
||||
List<Tool> getStatisticsByUserIdPancake(@Param("userId") Long userId);
|
||||
|
||||
List<Tool> getStatisticsByUserIdPancakeNew(@Param("userId") Long userId);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
<result property="showName" column="show_name" jdbcType="VARCHAR"/>
|
||||
<result property="mailbox" column="mailbox" jdbcType="VARCHAR"/>
|
||||
<result property="paperLink" column="paper_link" jdbcType="VARCHAR"/>
|
||||
<result property="toolVisits" column="tool_visits" jdbcType="INTEGER"/>
|
||||
<result property="paperVisits" column="paper_visits" jdbcType="INTEGER"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
|
@ -28,7 +30,7 @@
|
|||
Introduction,link,detail,
|
||||
create_time,upload_id,manager_id,
|
||||
review_time,type,voluntary_flag,
|
||||
uploader,show_name,mailbox,paper_link
|
||||
uploader,show_name,mailbox,paper_link,tool_visits,paper_visits
|
||||
</sql>
|
||||
|
||||
<select id="toolRanking" resultType="com.kening.vordm.entity.Tool">
|
||||
|
@ -111,4 +113,33 @@
|
|||
GROUP BY d.`key`
|
||||
ORDER BY d.`key`
|
||||
</select>
|
||||
|
||||
<select id="getByUserStatistics" resultType="java.lang.Integer">
|
||||
select count(id)
|
||||
FROM tool
|
||||
<where>
|
||||
uploader = #{userId}
|
||||
and review_time IS NOT NULL
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getStatisticsByUserIdPancake" resultType="com.kening.vordm.entity.Tool">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tool
|
||||
<where>
|
||||
uploader = #{userId}
|
||||
</where>
|
||||
ORDER BY tool_visits DESC
|
||||
</select>
|
||||
|
||||
<select id="getStatisticsByUserIdPancakeNew" resultType="com.kening.vordm.entity.Tool">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tool
|
||||
<where>
|
||||
uploader = #{userId}
|
||||
</where>
|
||||
ORDER BY paper_visits DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.kening.vordm.service;
|
||||
|
||||
import com.kening.vordm.vo.CenterDisasterInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.kening.vordm.vo.CenterDisasterInfo;
|
||||
|
||||
/**
|
||||
* @author wangns
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.kening.vordm.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.vo.CenterDisasterInfoUser;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wangns
|
||||
* @description 针对表【center_disaster_info】的数据库操作Service
|
||||
* @createDate 2023-04-19 11:46:32
|
||||
*/
|
||||
public interface CenterDisasterInfoUserService extends IService<CenterDisasterInfoUser> {
|
||||
|
||||
IPage<DisasterInfo> respondedUserList(IPage<DisasterInfo> page, Map<String, Object> params);
|
||||
}
|
|
@ -2,10 +2,7 @@ package com.kening.vordm.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.kening.vordm.entity.Administrator;
|
||||
import com.kening.vordm.entity.DataUpload;
|
||||
import com.kening.vordm.entity.EntityData;
|
||||
import org.springblade.core.mp.base.BaseService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
@ -71,7 +71,23 @@ public interface DisasterInfoService extends IService<DisasterInfo> {
|
|||
|
||||
Integer getByUserDisasterInfo(Long userId, Long disasterId);
|
||||
|
||||
UserVo getByUserDisasterInfoStatistics(Long userId);
|
||||
UserVo getByUserDisasterInfoStatistics(Long userId, String email);
|
||||
|
||||
CallForHelpVo getByUserIdRole(Long chiefIdEquals);
|
||||
|
||||
UserVo getByOrdinaryUserDisasterInfoStatistics(Long userId, String email);
|
||||
|
||||
List<DisasterInfo> getDisasterInfoByUserId(Long userId, String email);
|
||||
|
||||
List<Map<String, Object>> getDisasterInfoByMouth(Integer type, Long userId, String email);
|
||||
|
||||
List<UserVo> getAllUserEmail();
|
||||
|
||||
Map<String,Object> statisticsByUser(String year, Long userId,String email);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNCI(IPage<Object> page, String email);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNDR(IPage<Object> page, String userId);
|
||||
|
||||
IPage<DisasterInfo> getUserDisasterInfoListNDRNew(IPage<Object> page, String userId, String respondStatus);
|
||||
}
|
||||
|
|
|
@ -19,4 +19,10 @@ public interface ToolService extends IService<Tool> {
|
|||
Object statistics();
|
||||
|
||||
List<Map<String, Long>> getStatisticsByUserId(Long id, String year);
|
||||
|
||||
Map<String, Object> getStatisticsByUserIdPancake(Long userId);
|
||||
|
||||
List<Tool> getUnauditedTool();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.kening.vordm.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.kening.vordm.vo.CenterDisasterInfo;
|
||||
import com.kening.vordm.service.CenterDisasterInfoService;
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package com.kening.vordm.service.impl;
|
||||
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.entity.EntityData;
|
||||
import com.kening.vordm.mapper.CenterDisasterInfoUserMapper;
|
||||
import com.kening.vordm.mapper.DisasterInfoMapper;
|
||||
import com.kening.vordm.mapper.EntityDataMapper;
|
||||
import com.kening.vordm.mapper.GuestInfoMapper;
|
||||
import com.kening.vordm.service.CenterDisasterInfoUserService;
|
||||
import com.kening.vordm.vo.CenterDisasterInfoUser;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author wangns
|
||||
* @description 针对表【center_disaster_info】的数据库操作Service实现
|
||||
* @createDate 2023-04-19 11:46:32
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CenterDisasterInfoUserServiceImpl extends ServiceImpl<CenterDisasterInfoUserMapper, CenterDisasterInfoUser>
|
||||
implements CenterDisasterInfoUserService {
|
||||
|
||||
private final EntityDataMapper entityDataMapper;
|
||||
|
||||
private final DisasterInfoMapper disasterInfoMapper;
|
||||
|
||||
@Override
|
||||
public IPage<DisasterInfo> respondedUserList(IPage<DisasterInfo> page, Map<String, Object> params) {
|
||||
LambdaQueryWrapper<EntityData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(EntityData::getUploaderId,params.get("userId"));
|
||||
List<EntityData> entityData = entityDataMapper.selectList(queryWrapper);
|
||||
Map<Long, List<EntityData>> collect = entityData.stream().collect(Collectors.groupingBy(EntityData::getDisasterId));
|
||||
List<String> isList = new ArrayList<>();
|
||||
for (Map.Entry entry : collect.entrySet()) {
|
||||
String key = entry.getKey().toString();
|
||||
isList.add(key);
|
||||
}
|
||||
if (!isList.isEmpty()){
|
||||
params.put("idList", isList);
|
||||
return disasterInfoMapper.respondedUserList(page,params);
|
||||
}else {
|
||||
List<DisasterInfo> objects = new ArrayList<>();
|
||||
page.setRecords(objects);
|
||||
page.setTotal(0);
|
||||
return page;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -6,12 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.kening.vordm.entity.DisasterData;
|
||||
import com.kening.vordm.entity.DisasterInfo;
|
||||
import com.kening.vordm.entity.GuestInfo;
|
||||
import com.kening.vordm.entity.GuestManageDisasterRef;
|
||||
import com.kening.vordm.mapper.DisasterInfoMapper;
|
||||
import com.kening.vordm.mapper.GuestInfoMapper;
|
||||
import com.kening.vordm.entity.*;
|
||||
import com.kening.vordm.mapper.*;
|
||||
import com.kening.vordm.service.DisasterInfoService;
|
||||
import com.kening.vordm.service.GuestManageDisasterRefService;
|
||||
import com.kening.vordm.vo.*;
|
||||
|
@ -26,10 +22,7 @@ import org.springframework.scheduling.annotation.Async;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
@ -46,6 +39,8 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
|
||||
private final GuestInfoMapper guestInfoMapper;
|
||||
|
||||
private final ToolMapper toolMapper;
|
||||
|
||||
private final GuestManageDisasterRefService guestManageDisasterRefService;
|
||||
|
||||
/**
|
||||
|
@ -183,6 +178,7 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
|
||||
/**
|
||||
* 移除管理灾害权限
|
||||
*
|
||||
* @param disasterInfoList
|
||||
* @return
|
||||
*/
|
||||
|
@ -199,7 +195,7 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
@Override
|
||||
public GuestInfo getUserByEmail(String email) {
|
||||
LambdaQueryWrapper<GuestInfo> qw = new LambdaQueryWrapper<>();
|
||||
qw.eq(GuestInfo::getEmail,email);
|
||||
qw.eq(GuestInfo::getEmail, email);
|
||||
return guestInfoMapper.selectOne(qw);
|
||||
}
|
||||
|
||||
|
@ -211,27 +207,27 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
@Override
|
||||
public Integer getByUserDisasterInfo(Long userId, Long disasterId) {
|
||||
LambdaQueryWrapper<GuestManageDisasterRef> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(GuestManageDisasterRef::getDisasterId,disasterId);
|
||||
queryWrapper.eq(GuestManageDisasterRef::getStatus,1);
|
||||
queryWrapper.eq(GuestManageDisasterRef::getManagerId,userId);
|
||||
queryWrapper.eq(GuestManageDisasterRef::getDisasterId, disasterId);
|
||||
queryWrapper.eq(GuestManageDisasterRef::getStatus, 1);
|
||||
queryWrapper.eq(GuestManageDisasterRef::getManagerId, userId);
|
||||
return guestManageDisasterRefService.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVo getByUserDisasterInfoStatistics(Long userId) {
|
||||
//已响应
|
||||
int byUserStatisticsOne = guestInfoMapper.getByUserStatisticsOne(userId);
|
||||
public UserVo getByUserDisasterInfoStatistics(Long userId, String email) {
|
||||
//发起人
|
||||
int byUserStatisticsOne = guestInfoMapper.getByUserStatisticsOne(userId,email);
|
||||
//正在响应
|
||||
int byUserStatisticsTwo = guestInfoMapper.getByUserStatisticsTwo(userId);
|
||||
//已审核数据数量
|
||||
int byUserStatisticsThree = guestInfoMapper.getByUserStatisticsThree(userId);
|
||||
//待审核数据数量
|
||||
int byUserStatisticsFour = guestInfoMapper.getByUserStatisticsFour(userId);
|
||||
//贡献灾害内容得次数
|
||||
int byUserStatisticsThree = guestInfoMapper.getByUserStatisticsThreeNew(userId);
|
||||
//用户上传的工具数量
|
||||
int byUserStatistics = toolMapper.getByUserStatistics(userId);
|
||||
UserVo userVo = new UserVo();
|
||||
userVo.setByUserStatisticsOne(byUserStatisticsOne);
|
||||
userVo.setByUserStatisticsTwo(byUserStatisticsTwo);
|
||||
userVo.setByUserStatisticsOne(byUserStatisticsTwo);
|
||||
userVo.setByUserStatisticsTwo(byUserStatisticsOne);
|
||||
userVo.setByUserStatisticsThree(byUserStatisticsThree);
|
||||
userVo.setByUserStatisticsFour(byUserStatisticsFour);
|
||||
userVo.setByUserStatisticsFour(byUserStatistics);
|
||||
return userVo;
|
||||
}
|
||||
|
||||
|
@ -240,55 +236,133 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
return this.baseMapper.getByUserIdRole(chiefIdEquals);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVo getByOrdinaryUserDisasterInfoStatistics(Long userId, String email) {
|
||||
//正在响应
|
||||
int byUserStatisticsOne = guestInfoMapper.getByUserStatisticsOneNew(userId,email);
|
||||
//贡献灾害内容得次数
|
||||
int byUserStatisticsThree = guestInfoMapper.getByUserStatisticsThreeNew(userId);
|
||||
//用户上传的工具数量
|
||||
int byUserStatistics = toolMapper.getByUserStatistics(userId);
|
||||
UserVo userVo = new UserVo();
|
||||
userVo.setByUserStatisticsTwo(byUserStatisticsOne);
|
||||
userVo.setByUserStatisticsThree(byUserStatisticsThree);
|
||||
userVo.setByUserStatisticsFour(byUserStatistics);
|
||||
return userVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DisasterInfo> getDisasterInfoByUserId(Long userId, String email) {
|
||||
//用户发起的
|
||||
List<DisasterInfo> disasterInfoByUserIdNCI = baseMapper.getDisasterInfoByUserIdNCI(userId,email);
|
||||
//用户响应的
|
||||
List<DisasterInfo> disasterInfoByUserIdNDR = baseMapper.getDisasterInfoByUserIdNDR(userId);
|
||||
//用户有上传资源的
|
||||
List<DisasterInfo> disasterInfoByUserIdNR = baseMapper.getDisasterInfoByUserIdNR(userId);
|
||||
|
||||
|
||||
List<DisasterInfo> disasterInfoList = new ArrayList<>();
|
||||
disasterInfoList.addAll(disasterInfoByUserIdNCI);
|
||||
disasterInfoList.addAll(disasterInfoByUserIdNDR);
|
||||
disasterInfoList.addAll(disasterInfoByUserIdNR);
|
||||
|
||||
ArrayList<DisasterInfo> disList = disasterInfoList.stream().collect(
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.toCollection(
|
||||
() -> new TreeSet<>(Comparator.comparing(DisasterInfo::getId))
|
||||
)
|
||||
, ArrayList::new
|
||||
)
|
||||
);
|
||||
|
||||
List<DisasterInfo> disasterInfoList1 = new ArrayList<>();
|
||||
|
||||
disList.stream().forEach(disasterInfo -> {
|
||||
disasterInfo.setIsNci(false);
|
||||
disasterInfo.setIsNdr(false);
|
||||
disasterInfo.setIsNr(false);
|
||||
|
||||
|
||||
if (!disasterInfoByUserIdNCI.isEmpty()) {
|
||||
disasterInfoByUserIdNCI.stream().forEach(disasterInfo1 -> {
|
||||
if (disasterInfo1.getId().compareTo(disasterInfo.getId()) == 0) {
|
||||
disasterInfo.setIsNci(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!disasterInfoByUserIdNDR.isEmpty()) {
|
||||
disasterInfoByUserIdNDR.stream().forEach(disasterInfo2 -> {
|
||||
if (disasterInfo2.getId().compareTo(disasterInfo.getId()) == 0) {
|
||||
disasterInfo.setIsNdr(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!disasterInfoByUserIdNR.isEmpty()) {
|
||||
disasterInfoByUserIdNR.stream().forEach(disasterInfo3 -> {
|
||||
if (disasterInfo3.getId().compareTo(disasterInfo.getId()) == 0) {
|
||||
disasterInfo.setIsNr(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
disasterInfoList1.add(disasterInfo);
|
||||
});
|
||||
|
||||
|
||||
return disasterInfoList1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 后台管理系统-控制台灾害各项统计
|
||||
* @description 暂时没有条件查询 所有统计都暂时写在一个查询里面
|
||||
*
|
||||
* @return
|
||||
* @description 暂时没有条件查询 所有统计都暂时写在一个查询里面
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> statistics(String year) {
|
||||
Map<String,Object> resultMap = Maps.newHashMap();
|
||||
Map<String, Object> resultMap = Maps.newHashMap();
|
||||
//boolean isAdmin = AuthUtil.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? true : false;
|
||||
//查询灾害表数据
|
||||
List<DisasterInfo> disasterInfoList = this.baseMapper.listGetByYear(year);
|
||||
//统计head头部的数据
|
||||
Map<String,Object> headMap = headData(disasterInfoList);
|
||||
Map<String, Object> headMap = headData(disasterInfoList);
|
||||
//访问量和下载量
|
||||
List<Map<String,Long>> visitAndDownLoadData = this.baseMapper.visitAndDownLoad(year);
|
||||
List<Map<String, Long>> visitAndDownLoadData = this.baseMapper.visitAndDownLoad(year);
|
||||
//响应量和发起量
|
||||
List<Map<String,Long>> initiateAndResponseData = this.baseMapper.initiateAndResponseData(year);
|
||||
List<Map<String, Long>> initiateAndResponseData = this.baseMapper.initiateAndResponseData(year);
|
||||
//统计灾害发生区域占比
|
||||
Map<String,Long> countryData = disasterCountryProportion(disasterInfoList);
|
||||
Map<String, Long> countryData = disasterCountryProportion(disasterInfoList);
|
||||
//统计当年的灾害申请次数 按月查询
|
||||
//List<Map<String,Object>> applyMonth = getDisasterReponseByMouth(1,isAdmin);
|
||||
//统计灾害数量占比 那个饼图
|
||||
List<Map<String,Long>> disasterNum = this.baseMapper.disasterNum(year);
|
||||
List<Map<String, Long>> disasterNum = this.baseMapper.disasterNum(year);
|
||||
//统计chief
|
||||
List<Map<String,Long>> chiefMap = this.baseMapper.chiefData(year);
|
||||
List<Map<String, Long>> chiefMap = this.baseMapper.chiefData(year);
|
||||
//统计admin
|
||||
List<Map<String,Long>> adminfMap = this.baseMapper.adminData(year);
|
||||
List<Map<String, Long>> adminfMap = this.baseMapper.adminData(year);
|
||||
|
||||
|
||||
//统计当年的灾害响应次数 按月查询
|
||||
//List<Map<String,Object>> responseMonth = getDisasterReponseByMouth(2,isAdmin);
|
||||
resultMap.put("header",headMap);
|
||||
resultMap.put("header", headMap);
|
||||
//响应量
|
||||
resultMap.put("line",initiateAndResponseData);
|
||||
resultMap.put("line", initiateAndResponseData);
|
||||
//下载量
|
||||
resultMap.put("vandd",visitAndDownLoadData);
|
||||
resultMap.put("vandd", visitAndDownLoadData);
|
||||
//admin
|
||||
resultMap.put("admin",adminfMap);
|
||||
resultMap.put("admin", adminfMap);
|
||||
//chief
|
||||
resultMap.put("chief",chiefMap);
|
||||
resultMap.put("chief", chiefMap);
|
||||
//国家
|
||||
resultMap.put("country",countryData);
|
||||
resultMap.put("country", countryData);
|
||||
//灾害类型分类
|
||||
resultMap.put("disasterNum",disasterNum);
|
||||
resultMap.put("disasterNum", disasterNum);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @Override
|
||||
// public Map<String, Object> statistics(String year) {
|
||||
// Map<String,Object> resultMap = Maps.newHashMap();
|
||||
|
@ -312,12 +386,14 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
// resultMap.put("applyMonth",applyMonth);
|
||||
// return resultMap;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 统计head头部信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Map<String,Object> headData(List<DisasterInfo> disasterInfoList){
|
||||
Map<String,Object> headMap = Maps.newHashMap();
|
||||
private Map<String, Object> headData(List<DisasterInfo> disasterInfoList) {
|
||||
Map<String, Object> headMap = Maps.newHashMap();
|
||||
//用户访问量
|
||||
Integer visitCount = disasterInfoList.stream().map(DisasterInfo::getVisitCount).reduce(Integer::sum).orElse(0);
|
||||
//数据下载量
|
||||
|
@ -325,44 +401,47 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
//灾害响应申请次数
|
||||
Integer size = disasterInfoList.size();
|
||||
//灾害响应实际次数
|
||||
Long actResponseNum = disasterInfoList.stream().filter(data-> data.getRespondStatus() > 1).count();
|
||||
Long actResponseNum = disasterInfoList.stream().filter(data -> data.getRespondStatus() > 1).count();
|
||||
//灾害响应百分比
|
||||
headMap.put("visitCount",visitCount);
|
||||
headMap.put("downloadCount",downloadCount);
|
||||
headMap.put("applyCount",size);
|
||||
headMap.put("actResponseNum",actResponseNum);
|
||||
headMap.put("visitCount", visitCount);
|
||||
headMap.put("downloadCount", downloadCount);
|
||||
headMap.put("applyCount", size);
|
||||
headMap.put("actResponseNum", actResponseNum);
|
||||
return headMap;
|
||||
}
|
||||
|
||||
/**
|
||||
*计算每个国家的灾害占比
|
||||
* 计算每个国家的灾害占比
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Map<String,Long> disasterCountryProportion(List<DisasterInfo> disasterInfoList){
|
||||
Map<String,Long> proportionMap = new LinkedHashMap<>();
|
||||
private Map<String, Long> disasterCountryProportion(List<DisasterInfo> disasterInfoList) {
|
||||
Map<String, Long> proportionMap = new LinkedHashMap<>();
|
||||
//根据国家分组统计次数以及总灾害的占比
|
||||
disasterInfoList.stream().filter(data->
|
||||
data.getDisasterCountry()!=null
|
||||
).collect(Collectors.groupingBy(DisasterInfo::getDisasterCountry,Collectors.counting()))
|
||||
.entrySet().stream().sorted(Map.Entry.<String,Long>comparingByValue().reversed()).limit(15).forEachOrdered(e -> proportionMap.put(e.getKey(), e.getValue()));
|
||||
disasterInfoList.stream().filter(data ->
|
||||
data.getDisasterCountry() != null
|
||||
).collect(Collectors.groupingBy(DisasterInfo::getDisasterCountry, Collectors.counting()))
|
||||
.entrySet().stream().sorted(Map.Entry.<String, Long>comparingByValue().reversed()).limit(15).forEachOrdered(e -> proportionMap.put(e.getKey(), e.getValue()));
|
||||
return proportionMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算每个灾害发生的次数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Map<String,Long> disasterNumProportion(boolean type){
|
||||
List<DisasterInfo> disasterInfoList = baseMapper.getAllData(type ? null:AuthUtil.getUserId());
|
||||
Map<String,Long> proportionMap = disasterInfoList.stream().filter(data->data.getDictValue()!=null).collect(Collectors.groupingBy(DisasterInfo::getDictValue,Collectors.counting()));
|
||||
private Map<String, Long> disasterNumProportion(boolean type) {
|
||||
List<DisasterInfo> disasterInfoList = baseMapper.getAllData(type ? null : AuthUtil.getUserId());
|
||||
Map<String, Long> proportionMap = disasterInfoList.stream().filter(data -> data.getDictValue() != null).collect(Collectors.groupingBy(DisasterInfo::getDictValue, Collectors.counting()));
|
||||
return proportionMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按月统计当年每个月的响应或者申请量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private List<Map<String, Object>> getDisasterReponseByMouth(Integer type,boolean isAdmin){
|
||||
private List<Map<String, Object>> getDisasterReponseByMouth(Integer type, boolean isAdmin) {
|
||||
//统计每个月的个数
|
||||
final String[] MONTH = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
|
||||
int year = LocalDate.now().getYear();
|
||||
|
@ -371,7 +450,7 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
String start = year + "-01-01 00:00:00";
|
||||
//查询结束时间
|
||||
String end = year + 1 + "-01-01 00:00:00";
|
||||
List<Map<String, Object>> mapList = baseMapper.getDisasterInfoByMouth(start,end,type,isAdmin ? null:AuthUtil.getUserId());
|
||||
List<Map<String, Object>> mapList = baseMapper.getDisasterInfoByMouth(start, end, type, isAdmin ? null : AuthUtil.getUserId());
|
||||
List<DisasterData> disasterList = mapList.stream().map((map) -> {
|
||||
return cn.hutool.core.bean.BeanUtil.mapToBean(map, DisasterData.class, true);
|
||||
}).collect(Collectors.toList());
|
||||
|
@ -381,15 +460,99 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
|
|||
Map<String, Object> result = Maps.newLinkedHashMap();
|
||||
String month = MONTH[i];
|
||||
List<DisasterData> disasterData = collect.get(month);
|
||||
if (disasterData!=null&&!disasterData.isEmpty()){
|
||||
if (disasterData != null && !disasterData.isEmpty()) {
|
||||
DisasterData disasterData1 = disasterData.get(0);
|
||||
result.put(year+"-"+month,disasterData1);
|
||||
}else {
|
||||
result.put(year+"-"+month,null);
|
||||
result.put(year + "-" + month, disasterData1);
|
||||
} else {
|
||||
result.put(year + "-" + month, null);
|
||||
}
|
||||
resultList.add(result);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
public List<Map<String, Object>> getDisasterInfoByMouth(Integer type, Long userId, String email) {
|
||||
//统计每个月的个数
|
||||
final String[] MONTH = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
|
||||
int year = LocalDate.now().getYear();
|
||||
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||
//查询开始时间
|
||||
String start = year + "-01-01 00:00:00";
|
||||
//查询结束时间
|
||||
String end = year + 1 + "-01-01 00:00:00";
|
||||
|
||||
int size = MONTH.length;
|
||||
|
||||
|
||||
List<Map<String, Object>> mapList = baseMapper.getDisasterInfoByMouth(start, end, type, userId);
|
||||
List<DisasterData> disasterList = mapList.stream().map((map) -> {
|
||||
return cn.hutool.core.bean.BeanUtil.mapToBean(map, DisasterData.class, true);
|
||||
}).collect(Collectors.toList());
|
||||
Map<String, List<DisasterData>> collect = disasterList.stream().collect(Collectors.groupingBy(DisasterData::getDate));
|
||||
|
||||
List<Map<String, Object>> mapListNew = baseMapper.getDisasterInfoByMouthNew(start, end, userId, email);
|
||||
List<DisasterData> disasterListNew = mapListNew.stream().map((map) -> {
|
||||
return cn.hutool.core.bean.BeanUtil.mapToBean(map, DisasterData.class, true);
|
||||
}).collect(Collectors.toList());
|
||||
Map<String, List<DisasterData>> collectNew = disasterListNew.stream().collect(Collectors.groupingBy(DisasterData::getDate));
|
||||
|
||||
|
||||
for (int i = 0; i < size; ++i) {
|
||||
Map<String, Object> result = Maps.newLinkedHashMap();
|
||||
String month = MONTH[i];
|
||||
DisasterData disasterData3 = new DisasterData();
|
||||
|
||||
List<DisasterData> disasterData = collect.get(month);
|
||||
|
||||
List<DisasterData> disasterDataNew = collectNew.get(month);
|
||||
|
||||
if (disasterData != null && !disasterData.isEmpty()) {
|
||||
DisasterData disasterData1 = disasterData.get(0);
|
||||
disasterData3.setValue(disasterData1.getValue());
|
||||
} else {
|
||||
disasterData3.setValue(0);
|
||||
}
|
||||
|
||||
if (disasterDataNew != null && !disasterDataNew.isEmpty()) {
|
||||
DisasterData disasterData1 = disasterDataNew.get(0);
|
||||
disasterData3.setValueNew(disasterData1.getValue());
|
||||
} else {
|
||||
disasterData3.setValueNew(0);
|
||||
}
|
||||
result.put(year + "-" + month, disasterData3);
|
||||
resultList.add(result);
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserVo> getAllUserEmail() {
|
||||
return this.baseMapper.getAllUserEmail();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> statisticsByUser(String year, Long userId, String email) {
|
||||
Map<String, Object> resultMap = Maps.newHashMap();
|
||||
//响应量和发起量
|
||||
List<Map<String, Long>> initiateAndResponseData = this.baseMapper.initiateAndResponseDataByUser(year,userId,email);
|
||||
resultMap.put("line", initiateAndResponseData);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<DisasterInfo> getUserDisasterInfoListNCI(IPage<Object> page, String email) {
|
||||
return this.baseMapper.getUserDisasterInfoListNCI(page,email);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<DisasterInfo> getUserDisasterInfoListNDR(IPage<Object> page, String userId) {
|
||||
return this.baseMapper.getUserDisasterInfoListNDR(page,userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<DisasterInfo> getUserDisasterInfoListNDRNew(IPage<Object> page, String userId, String respondStatus) {
|
||||
return this.baseMapper.getUserDisasterInfoListNDRNew(page,userId,respondStatus);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
package com.kening.vordm.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.kening.vordm.entity.Tool;
|
||||
import com.kening.vordm.mapper.ToolMapper;
|
||||
import com.kening.vordm.service.ToolService;
|
||||
import org.springblade.core.tool.api.R;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author G1393
|
||||
|
@ -61,4 +65,21 @@ implements ToolService {
|
|||
public List<Map<String, Long>> getStatisticsByUserId(Long id, String year) {
|
||||
return baseMapper.getStatisticsByUserId(id,year);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getStatisticsByUserIdPancake(Long userId) {
|
||||
List<Tool> toolList = baseMapper.getStatisticsByUserIdPancake(userId);
|
||||
List<Tool> toolList2 = baseMapper.getStatisticsByUserIdPancakeNew(userId);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("toolVisits",toolList);
|
||||
map.put("paperVisits",toolList2);
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tool> getUnauditedTool() {
|
||||
LambdaQueryWrapper<Tool> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.isNull(Tool::getReviewTime);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,11 @@
|
|||
</select>-->
|
||||
|
||||
<select id="getList" resultMap="dictResultMap">
|
||||
select id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict_biz where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0
|
||||
select id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict_biz
|
||||
where
|
||||
|
||||
code = #{param1}
|
||||
and parent_id > 0 and is_sealed = 0 and is_deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="tree" resultMap="treeNodeResultMap">
|
||||
|
|
Loading…
Reference in New Issue