From d5b7a301d82bab6f81f58e7acae9eaf3cf486bd9 Mon Sep 17 00:00:00 2001 From: glj Date: Tue, 26 Dec 2023 15:36:36 +0800 Subject: [PATCH] =?UTF-8?q?glj-=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kening/vordm/entity/DisasterData.java | 1 + .../com/kening/vordm/entity/DisasterInfo.java | 38 +- .../vordm/entity/RemoteSensingSourceData.java | 4 +- .../com/kening/vordm/vo/CallForHelpVo.java | 4 + .../kening/vordm/vo/CenterDisasterInfo.java | 13 + .../vordm/vo/CenterDisasterInfoUser.java | 155 ++++++ .../vordm/controller/CaptchaController.java | 4 +- .../vordm/controller/CenterController.java | 28 +- .../vordm/controller/ContactController.java | 2 +- .../controller/DisasterInfoController.java | 214 ++++++-- .../RemoteSensingSourceDataController.java | 13 + .../vordm/controller/ToolController.java | 18 + .../mapper/CenterDisasterInfoMapper.java | 5 + .../vordm/mapper/CenterDisasterInfoMapper.xml | 21 +- .../mapper/CenterDisasterInfoUserMapper.java | 23 + .../mapper/CenterDisasterInfoUserMapper.xml | 62 +++ .../vordm/mapper/DisasterInfoMapper.java | 20 + .../vordm/mapper/DisasterInfoMapper.xml | 476 +++++++++++++++--- .../kening/vordm/mapper/GuestInfoMapper.java | 11 +- .../kening/vordm/mapper/GuestInfoMapper.xml | 29 +- .../com/kening/vordm/mapper/ToolMapper.java | 7 + .../com/kening/vordm/mapper/ToolMapper.xml | 33 +- .../kening/vordm/mapper/VisualDataMapper.xml | 2 +- .../service/CenterDisasterInfoService.java | 2 +- .../CenterDisasterInfoUserService.java | 18 + .../vordm/service/DataUploadService.java | 3 - .../vordm/service/DisasterInfoService.java | 18 +- .../com/kening/vordm/service/ToolService.java | 6 + .../impl/CenterDisasterInfoServiceImpl.java | 1 + .../CenterDisasterInfoUserServiceImpl.java | 62 +++ .../service/impl/DisasterInfoServiceImpl.java | 291 ++++++++--- .../vordm/service/impl/ToolServiceImpl.java | 21 + .../auth/system/mapper/DictBizMapper.xml | 6 +- 33 files changed, 1409 insertions(+), 202 deletions(-) create mode 100644 kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfoUser.java create mode 100644 kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.java create mode 100644 kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.xml create mode 100644 kn-service/biz-vordm/src/main/java/com/kening/vordm/service/CenterDisasterInfoUserService.java create mode 100644 kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/CenterDisasterInfoUserServiceImpl.java diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java index 132a78b..2ccd45d 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java @@ -6,5 +6,6 @@ import lombok.Data; public class DisasterData { private String type; private Integer value; + private Integer valueNew; private String date; } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterInfo.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterInfo.java index c77da9e..f352c14 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterInfo.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterInfo.java @@ -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; + } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/RemoteSensingSourceData.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/RemoteSensingSourceData.java index e65aef9..8722a94 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/RemoteSensingSourceData.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/RemoteSensingSourceData.java @@ -237,5 +237,7 @@ public class RemoteSensingSourceData implements Serializable { @TableField(exist = false) private Integer beforeOrAfter =1; - + //多个Id + @TableField(exist = false) + private String idsList; } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CallForHelpVo.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CallForHelpVo.java index cfeefcb..d1dbb2b 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CallForHelpVo.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CallForHelpVo.java @@ -103,4 +103,8 @@ public class CallForHelpVo extends DisasterInfo { private Long parentId; private String roleAlias; + + private Integer respondStatus; + + private Integer isEndApply; } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfo.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfo.java index 1912493..f510d5b 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfo.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfo.java @@ -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; } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfoUser.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfoUser.java new file mode 100644 index 0000000..a797190 --- /dev/null +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/vo/CenterDisasterInfoUser.java @@ -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; +} diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CaptchaController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CaptchaController.java index 871dc41..056ded9 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CaptchaController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CaptchaController.java @@ -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"); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CenterController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CenterController.java index 11f0af5..7ced0fb 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CenterController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/CenterController.java @@ -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> respondingUserList(Query query, @RequestParam Map params) { + return R.data(centerDisasterInfoUserService.page(Condition.getPage(query), Wrappers.lambdaQuery() +// .eq(CenterDisasterInfoUser::getRespondStatus,3) + .eq(CenterDisasterInfoUser::getStatus,1) + .eq(CenterDisasterInfoUser::getEmail,String.valueOf(params.get("email"))) + .orderByDesc(CenterDisasterInfoUser::getApplyTime) + )); + } + + //个人中心列表普通用户 + @GetMapping("/respondedUserList") + public R> respondedUserList(Query query, @RequestParam Map params) { + return R.data(centerDisasterInfoUserService.respondedUserList(Condition.getPage(query), params)); + } + /** * 个人中心 Responded列表 * 必传email diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java index 13fc70d..5b39ca8 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java @@ -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) diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java index 97af025..9d76757 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java @@ -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> 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 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); @@ -335,7 +332,8 @@ public class DisasterInfoController { return R.data(callForHelp); } - private final AdministratorService administratorService; + private final AdministratorService administratorService; + @PostMapping("review") public R review(@RequestBody DisasterInfo disasterInfo) { //审核邮件实例化 @@ -344,29 +342,61 @@ public class DisasterInfoController { QueryWrapper 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 = "here"; email.setSubject("Your disaster response application has been approved!"); - email.setText("Your disaster response application has been approved!"); - }else{ + + 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 allUserEmail = disasterInfoService.getAllUserEmail(); + List 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) { + 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); //保证数据在更新完后发送邮件。防止数据更新失败,邮件发送成功 - try { - emailService.sendMimeMessage(email); - } catch (Exception e) { - return R.fail("发送失败"); - } 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 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()+"
"; - text+= "Disaster Time:" + disasterInfo.getDisasterTime()+"
"; - //disaster_country - text+= "Disaster Country:" + disasterInfo.getDisasterCountry()+"
"; - //vordm_id - text+= "VORDM ID:" + disasterInfo.getVordmId()+"
"; + + String html = "go and check"; + 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 disasterInfoList) { disasterInfoList.stream().forEach(disasterInfo -> { LambdaQueryWrapper 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 ids) { return R.status(disasterInfoService.removeByIds(ids)); } + + //个人中心列表统计 + @GetMapping("/getDisasterInfoByUserId") + public R> getDisasterInfoByUserId(Long userId, String email) { + return R.data(disasterInfoService.getDisasterInfoByUserId(userId,email)); + } + + //个人中心列表统计-根据国家分类饼状图 + @GetMapping("/getDisasterInfoByUserIdCountry") + public R>> getDisasterInfoByUserIdCountry(Long userId, String email) { + List disasterInfoByUserId = disasterInfoService.getDisasterInfoByUserId(userId,email); + Map> collect = disasterInfoByUserId.stream().collect(Collectors.groupingBy(DisasterInfo::getDisasterCountry)); + return R.data(collect); + } + + + /** + * 按月统计当年每个月的响应或者申请量 + * + * @return + */ + @GetMapping("/getDisasterInfoByMouth") + public R>> getDisasterInfoByMouth(Integer type, Long userId, String email) { + return R.data(disasterInfoService.getDisasterInfoByMouth(type, userId, email)); + } + + /** + * 管理员发起灾害结束申请 + * @param disasterInfo + * @return + */ + @PostMapping("/examineDisasterInfoEnd") + public R 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> getUserDisasterInfoList(Query query, @RequestParam Map params) { + String type = params.get("type"); + if (type.equals("0")){ + IPage centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNCI(Condition.getPage(query),params.get("email")); + return R.data(centerDisasterInfoIPage); + }else { + if (params.get("respondStatus") != null){ + IPage centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNDRNew(Condition.getPage(query),params.get("userId"),params.get("respondStatus")); + return R.data(centerDisasterInfoIPage); + }else { + IPage centerDisasterInfoIPage = disasterInfoService.getUserDisasterInfoListNDR(Condition.getPage(query),params.get("userId")); + return R.data(centerDisasterInfoIPage); + } + + } + } + } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java index f23627a..0e456b0 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java @@ -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 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 diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ToolController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ToolController.java index 80a158a..3ae68c5 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ToolController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ToolController.java @@ -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()); + } + + } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.java index 97c1345..b4b8765 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.java @@ -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 { + } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.xml index 87fb7bb..e15fa8b 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoMapper.xml @@ -31,17 +31,20 @@ + - 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 + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.java new file mode 100644 index 0000000..c3ea5ed --- /dev/null +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.java @@ -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 { + + IPage respondedUserList(IPage page,@Param("params") Map params); +} + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.xml new file mode 100644 index 0000000..9be1360 --- /dev/null +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/CenterDisasterInfoUserMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java index bca45c7..ed5cd55 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java @@ -83,4 +83,24 @@ public interface DisasterInfoMapper extends BaseMapper { CallForHelpVo getByUserIdRole(@Param("chiefIdEquals") Long chiefIdEquals); + IPage respondedUserList(IPage page, Map params); + + List getDisasterInfoByUserIdNCI(@Param("userId") Long userId,@Param("email") String email); + + List getDisasterInfoByUserIdNDR(@Param("userId") Long userId); + + List getDisasterInfoByUserIdNR(@Param("userId") Long userId); + + List> getDisasterInfoByMouthNew(@Param("start") String start,@Param("end") String end,@Param("userId") Long userId,@Param("email") String email); + + List getAllUserEmail(); + + + List> initiateAndResponseDataByUser(@Param("year") String year,@Param("userId") Long userId,@Param("email") String email); + + IPage getUserDisasterInfoListNCI(IPage page,@Param("email") String email); + + IPage getUserDisasterInfoListNDR(IPage page,@Param("userId") String userId); + + IPage getUserDisasterInfoListNDRNew(IPage page,@Param("userId") String userId,@Param("respondStatus") String respondStatus); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml index 4e60a2f..2cd5de0 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml @@ -24,6 +24,7 @@ + @@ -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 @@ -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 @@ -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 @@ d.respond_status = #{callForHelpVo.respondStatus} + + and d.is_end_apply = #{callForHelpVo.isEndApply} + and d.chief_id = #{callForHelpVo.chiefIdEquals} @@ -276,11 +282,107 @@ where date_format(t.disaster_time, '%Y') = #{year} SELECT b.`name`, count(*) as val FROM disaster_info t - INNER JOIN blade_user b on t.chief_id = b.id + INNER JOIN blade_user b on t.chief_id = b.id where date_format(t.disaster_time, '%Y') = #{year} and b.`name` != "超级管理员" GROUP BY b.`name` @@ -396,58 +498,23 @@ @@ -469,4 +536,285 @@ WHERE bu.id = #{chiefIdEquals} + + + + + + + + + + + + + + + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.java index c32cf69..cd14635 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.java @@ -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 { 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); + + } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.xml index dcceda5..50cf050 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/GuestInfoMapper.xml @@ -43,9 +43,11 @@ @@ -54,9 +56,8 @@ FROM disaster_info di di.chief_id = #{userId} - and di.respond_status = 2 + and di.respond_status > 1 - + + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.java index a2321d4..9396097 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.java @@ -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 { Integer selectCountShowName(); List> getStatisticsByUserId(Long id, String year); + + int getByUserStatistics(@Param("userId") Long userId); + + List getStatisticsByUserIdPancake(@Param("userId") Long userId); + + List getStatisticsByUserIdPancakeNew(@Param("userId") Long userId); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.xml index cbb8429..8ef999a 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/ToolMapper.xml @@ -21,6 +21,8 @@ + + @@ -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 + + + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml index bec22aa..aaa4f31 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml @@ -25,7 +25,7 @@ di.disaster_time as disasterTime, di.disaster_country as disasterCountry from disaster_info di - left join blade_dict_biz bdb on di.disaster_type = dict_key + left join blade_dict_biz bdb on di.disaster_type = dict_key -->