From f1bcbc43e988d0d1a91bea66a9ebbf6d601e48c0 Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期四, 13 十月 2022 10:33:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test --- flower_city/src/main/java/com/dg/core/AliyunConfig.java | 22 flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java | 32 + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java | 3 flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java | 21 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java | 391 +++++++++++++ flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java | 25 flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java | 1 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 12 flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java | 3 flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java | 61 ++ springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml | 8 flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java | 27 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java | 160 ++++- flower_city/src/main/java/com/dg/core/util/TemplateParam.java | 19 flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java | 13 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java | 8 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java | 2 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java | 2 flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java | 19 flower_city/src/main/resources/mapper/SysUserMapper.xml | 3 flower_city/src/main/java/com/dg/core/controller/UserController.java | 4 flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java | 24 flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java | 134 ++++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java | 1 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml | 56 ++ flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java | 18 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java | 6 flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java | 11 flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java | 1 flower_city/src/main/java/com/dg/core/util/WxUtil.java | 121 ++++ flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml | 4 flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java | 71 ++ flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java | 67 ++ flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml | 105 +++ flower_city/src/main/resources/application.properties | 2 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java | 10 flower_city/src/main/java/com/dg/core/util/SmsUtil.java | 109 +++ flower_city/src/main/resources/application-sms.properties | 10 flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java | 69 ++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java | 2 41 files changed, 1,577 insertions(+), 82 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/AliyunConfig.java b/flower_city/src/main/java/com/dg/core/AliyunConfig.java index 8015bb1..53e7f4b 100644 --- a/flower_city/src/main/java/com/dg/core/AliyunConfig.java +++ b/flower_city/src/main/java/com/dg/core/AliyunConfig.java @@ -23,15 +23,37 @@ @Value("${aliyun.TemplateCode}") private String TemplateCode; + @Value("${aliyun.TemplateCodeOvertime}") + private String TemplateCodeOvertime; + + @Value("${aliyun.TemplateCodeComplete}") + private String TemplateCodeComplete; + public String getKey() { return key; } + public String getTemplateCodeComplete() { + return TemplateCodeComplete; + } + + public void setTemplateCodeComplete(String templateCodeComplete) { + TemplateCodeComplete = templateCodeComplete; + } + public void setKey(String key) { this.key = key; } + public String getTemplateCodeOvertime() { + return TemplateCodeOvertime; + } + + public void setTemplateCodeOvertime(String templateCodeOvertime) { + TemplateCodeOvertime = templateCodeOvertime; + } + public String getScrect() { return screct; } diff --git a/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java b/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java index 05a703e..81dd5c2 100644 --- a/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java +++ b/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java @@ -43,7 +43,7 @@ */ @ApiOperation(value = "获取常见问题列表(不分页查找)",response = AutomessageCommonProblem.class) @GetMapping("/queryList") - public ResultData queryList(@RequestParam(value = "title") String title){ + public ResultData queryList(@RequestParam(value = "title",required = false) String title){ return ResultData.success(iAutomessageCommonProblemService.selectConfigList(title,null)); } diff --git a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java index 8e4150a..61075fa 100644 --- a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java +++ b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java @@ -1,6 +1,7 @@ package com.dg.core.api; +import com.alibaba.fastjson.JSON; import com.dg.core.ResultData; import com.dg.core.annotation.Authorization; import com.dg.core.annotation.CurrentUser; @@ -8,8 +9,11 @@ import com.dg.core.db.gen.entity.GuideEvolveEntity; import com.dg.core.db.gen.entity.GuideRepairOrder; import com.dg.core.db.gen.entity.SysUser; +import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil; import com.dg.core.service.IGuideEvolveService; import com.dg.core.service.IGuideRepairOrderService; +import com.dg.core.util.SmsUtil; +import com.dg.core.util.WxUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -17,7 +21,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.io.IOException; import java.time.LocalDateTime; +import java.util.Map; + +import static com.dg.core.util.WxUtil.httpGet; + /** * 工单管理 @@ -33,6 +42,11 @@ @Autowired private IGuideEvolveService iGuideEvolveService; + private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk"; + + @Resource + SmsUtil smsUtil; + /** * 提交导办订单 * @return @@ -43,6 +57,7 @@ public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) { guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString()); guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber()); + guideRepairOrder.setSubmitType(1); int i = iGuideRepairOrderService.addOrder(guideRepairOrder); if (i>0){ iGuideEvolveService.updateGuid(); @@ -162,6 +177,21 @@ entity.setState("8"); } else if(StringUtils.equals(entity.getState(),"4")){ + if (order.getSubmitType().equals(1))//小程序提交 + { + WxUtil wxUtil=new WxUtil(); + String accessToken="0"; + try { + accessToken= wxUtil.getBatteryCarAccessToken(); + } catch (Exception e) { + throw new RuntimeException(e); + } + SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order); + wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order); + } + else if (order.getSubmitType().equals(2)){ + smsUtil.sendSmsComplete(order.getSubmitUserPhone(),order.getMatterName()); + } //待评价 order.setState("4"); entity.setState("9"); @@ -282,4 +312,6 @@ + + } diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java index bc0d1b3..be3fd0a 100644 --- a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java +++ b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java @@ -10,7 +10,9 @@ import com.dg.core.service.IGuideEvolveService; import com.dg.core.service.IGuideRepairOrderService; import com.dg.core.service.IOrganizationChartService; +import com.dg.core.util.SmsUtil; import com.dg.core.util.TableDataInfo; +import com.dg.core.util.WxUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -39,6 +41,13 @@ @Autowired IOrganizationChartService iOrganizationChartService; + private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk"; + + + @Resource + SmsUtil smsUtil; + + /** * 提交导办订单 * @return @@ -50,6 +59,7 @@ guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString()); guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber()); guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber()); + guideRepairOrder.setSubmitType(2); int i = iGuideRepairOrderService.addOrder(guideRepairOrder); if (i>0){ iGuideEvolveService.updateGuid(); @@ -213,6 +223,21 @@ } else if(StringUtils.equals(entity.getState(),"4")){ //待评价 + if (order.getSubmitType().equals(1))//小程序提交 + { + WxUtil wxUtil=new WxUtil(); + String accessToken="0"; + try { + accessToken= wxUtil.getBatteryCarAccessToken(); + } catch (Exception e) { + throw new RuntimeException(e); + } + SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order); + wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order); + } + else if (order.getSubmitType().equals(2)){ + smsUtil.sendSmsComplete(order.getSubmitUserPhone(),order.getMatterName()); + } order.setState("4"); entity.setState("9"); } diff --git a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java index b696e0d..03a9ca0 100644 --- a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java +++ b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java @@ -2,10 +2,8 @@ import com.dg.core.ResultData; import com.dg.core.db.gen.entity.*; -import com.dg.core.service.IClassifyAdministrationService; -import com.dg.core.service.IGuideEvolveService; -import com.dg.core.service.IGuideRepairOrderService; -import com.dg.core.service.ITransactionEventService; +import com.dg.core.service.*; +import com.dg.core.util.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -15,14 +13,12 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; +import java.util.*; @Api(tags = {"首页统计接口"}) @RestController @RequestMapping("/Home") -public class HomeStatisticsController +public class HomeStatisticsController extends BaseController { //导办工单接口 @Autowired @@ -38,6 +34,18 @@ @Autowired ITransactionEventService iTransactionEventService; + + @Autowired + HomeStatisticsService homeStatisticsService; + + + @Autowired + com.dg.core.service.ISysUserService IUserService; + + + @Autowired + IOrganizationChartService iOrganizationChartService; + @ApiOperation("首页统计不同状态工单数") @GetMapping("/getWorkOrder") @@ -203,15 +211,119 @@ } - @ApiOperation("组织排行榜") + + + + @ApiOperation("组织排行榜 type 1 安评价 2 按办结量") @GetMapping("/getOrganization") - public ResultData getOrganization() + public TableDataInfo getOrganization(@RequestParam("type") String type) { + List<OrganizationEntity> guidePlates=homeStatisticsService.getDepartment(); + if(StringUtils.equals("1",type)) + { + for (OrganizationEntity bean:guidePlates) + { + bean.setNum(0+""); + List<String> ids=iOrganizationChartService.getIds(bean.getId()+""); - return ResultData.success(); + //总评分 + String scoreNum=homeStatisticsService.organizationScore(ids)+""; + int score=0; + if(!StringUtils.isEmpty(scoreNum) && !StringUtils.equals("null",scoreNum)) + { + score=Integer.valueOf(scoreNum); + } + + //总数量 + int allNum=homeStatisticsService.organizationNum(ids); + + if(allNum>0 && score>0) + { + java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##");//传入格式模板 + String workEfficiency=weekDf.format((float)(score/allNum)); + bean.setNum(workEfficiency); + } + } + } + else + { + for (OrganizationEntity bean:guidePlates) + { + bean.setNum(0+""); + List<String> ids=iOrganizationChartService.getIds(bean.getId()+""); + //总数量 + int allNum=homeStatisticsService.organizationNum(ids); + if(allNum>0) + { + bean.setNum(allNum+""); + } + } + } + + OrganizationEntity entity=null; + for(int i = 0 ;i< guidePlates.size() -1; i++) { + for (int j = 0; j < guidePlates.size() - 1 - i; j++) { + + if(Float.valueOf(guidePlates.get(j).getNum())>Float.valueOf(guidePlates.get(j+1).getNum())) + { + entity=guidePlates.get(j); + guidePlates.set(j,guidePlates.get(j+1)); + guidePlates.set(j+1,entity); + } + } + } + + Collections.reverse(guidePlates); + + return getDataTable(guidePlates,guidePlates.size()); } + @ApiOperation("导办人员排行榜 type 1 安评价 2 按办结量 3 按超时") + @GetMapping("/getGuidePlate") + public TableDataInfo getGuidePlate(@RequestParam("type") String type) + { + int allNum=homeStatisticsService.staffNum(); + + if(StringUtils.equals("1",type)) + { + //安评价 + return getDataTable(homeStatisticsService.score(),allNum); + } + else if(StringUtils.equals("2",type)) + { + //2 按办结量 + return getDataTable(homeStatisticsService.guidePlatePeople(),allNum); + } + else + { + //3 按超时 + return getDataTable(homeStatisticsService.timeout(),allNum); + } + } + + + + @ApiOperation("办事指南排行榜 type 1 按浏览量 2 按办结量") + @GetMapping("/getGuidance") + public TableDataInfo getGuidance(@RequestParam("type") String type) + { + int allNum=homeStatisticsService.countWork(); + if(StringUtils.equals("1",type)) + { + return getDataTable(homeStatisticsService.guidanceBrowse(),allNum); + } + else + { + return getDataTable(homeStatisticsService.guidanceTransaction(),allNum); + } + + } + + + + + } diff --git a/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java b/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java index 66b8fda..d4d795e 100644 --- a/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java +++ b/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java @@ -132,7 +132,6 @@ */ @ApiOperation(value = "导办事务搜索",response = QueryResults.class) @GetMapping("/queryKeyWordList") - @Authorization public QueryResults queryMatterNameList(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "recommendSize",required = false) Integer recommendSize, diff --git a/flower_city/src/main/java/com/dg/core/controller/UserController.java b/flower_city/src/main/java/com/dg/core/controller/UserController.java index fa3d6ca..46bae82 100644 --- a/flower_city/src/main/java/com/dg/core/controller/UserController.java +++ b/flower_city/src/main/java/com/dg/core/controller/UserController.java @@ -212,7 +212,7 @@ return error("该账户已存在!"); } - config.setUserType("1"); + config.setUserType("3"); config.setCreateTime(LocalDateTime.now()); config.setUpdateTime(LocalDateTime.now()); @@ -241,7 +241,7 @@ return error("账户不能为空"); } - config.setUserType("1"); + config.setUserType("3"); return toAjax(IUserService.updateConfig(config)); } diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java new file mode 100644 index 0000000..82defe2 --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java @@ -0,0 +1,19 @@ +package com.dg.core.db.gen.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@ApiModel("办事指南表") +@Data +public class Guidance implements Serializable +{ + + @ApiModelProperty(name = "name", value = "名称") + private String name; + + @ApiModelProperty(name = "num", value = "内容") + private String num; +} diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java new file mode 100644 index 0000000..2207971 --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java @@ -0,0 +1,24 @@ +package com.dg.core.db.gen.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@ApiModel("导办工单进展记录表") +@Data +public class GuidePlate implements Serializable +{ + + @ApiModelProperty(name = "userName", value = "用户名") + private String userName; + + @ApiModelProperty(name = "departmentNmae", value = "部门") + private String departmentNmae; + + @ApiModelProperty(name = "num", value = "内容") + private String num; +} diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java index 746a93f..d07e538 100644 --- a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java +++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java @@ -136,6 +136,12 @@ private String detailedAddress; /** + * 提交方式(1 小程序 2.门户网) + */ + @ApiModelProperty("提交方式(1 小程序 2.门户网)") + private Integer submitType; + + /** * 创建时间 */ @ApiModelProperty("创建时间") diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java new file mode 100644 index 0000000..9b211ca --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java @@ -0,0 +1,27 @@ +package com.dg.core.db.gen.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@ApiModel("组织排行榜") +@Data +public class OrganizationEntity implements Serializable { + @ApiModelProperty("id") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + + @ApiModelProperty(name = "departmentNmae", value = "部门") + private String departmentNmae; + + + @TableField(exist = false) + @ApiModelProperty(name = "num", value = "内容") + private String num="0"; +} diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java new file mode 100644 index 0000000..fbaac79 --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java @@ -0,0 +1,71 @@ +package com.dg.core.db.gen.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dg.core.db.gen.entity.Guidance; +import com.dg.core.db.gen.entity.GuidePlate; +import com.dg.core.db.gen.entity.OrganizationEntity; + +import java.util.List; + +public interface HomeStatisticsMapper extends BaseMapper<GuidePlate> +{ + /** + * 按办结量排序 + * @return + */ + List<GuidePlate> guidePlatePeople(); + + /** + *按评分排序 + * @return + */ + List<GuidePlate> score(); + + /** + * 按超时 + * @return + */ + List<GuidePlate> timeout(); + + /** + * 导办人员统计数 + * @return + */ + Integer staffNum(); + + /** + * 办事指南数量统计 + * @return + */ + Integer countWork(); + + /** + * 获取一级部门 + * @return + */ + List<OrganizationEntity> getDepartment(); + + /** + * 评分 + * @return + */ + Integer organizationScore(List<String> ids); + + /** + * 办结量 + * @return + */ + Integer organizationNum(List<String> ids); + + /** + * 办事指南根据导办数量排序 + * @return + */ + List<Guidance> guidanceTransaction(); + + /** + * 办事指南根据浏览数量排序 + * @return + */ + List<Guidance> guidanceBrowse(); +} diff --git a/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java new file mode 100644 index 0000000..05ba5ab --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java @@ -0,0 +1,69 @@ +package com.dg.core.service; + +import com.dg.core.db.gen.entity.Guidance; +import com.dg.core.db.gen.entity.GuidePlate; +import com.dg.core.db.gen.entity.OrganizationEntity; + +import java.util.List; + +public interface HomeStatisticsService +{ + /** + * 按办结量排序 + * @return + */ + List<GuidePlate> guidePlatePeople(); + + /** + *按评分排序 + * @return + */ + List<GuidePlate> score(); + + /** + * 按超时 + * @return + */ + List<GuidePlate> timeout(); + + /** + * 评分 + * @return + */ + Integer organizationScore(List<String> ids); + + /** + * 办结量 + * @return + */ + Integer organizationNum(List<String> ids); + /** + * 获取一级部门 + * @return + */ + List<OrganizationEntity> getDepartment(); + + /** + * 办事指南根据导办数量排序 + * @return + */ + List<Guidance> guidanceTransaction(); + + /** + * 办事指南根据浏览数量排序 + * @return + */ + List<Guidance> guidanceBrowse(); + + /** + * 导办人员统计数 + * @return + */ + Integer staffNum(); + + /** + * 办事指南数量统计 + * @return + */ + Integer countWork(); +} diff --git a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java index 45283aa..b06d150 100644 --- a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java +++ b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java @@ -1,10 +1,7 @@ package com.dg.core.service; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.dg.core.db.gen.entity.AutomessageCommonProblem; -import com.dg.core.db.gen.entity.CountListNum; -import com.dg.core.db.gen.entity.GuideEvolveEntity; -import com.dg.core.db.gen.entity.GuideRepairOrder; +import com.dg.core.db.gen.entity.*; import org.springframework.data.repository.query.Param; import java.util.List; @@ -70,4 +67,10 @@ List<String> ids, Integer time); + /** + * 获取提工单提交交人员信息 + * @return + */ + SysUser getSubmitUser(GuideRepairOrder guideRepairOrder); + } diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java index 7e9784b..5dfb290 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dg.core.db.gen.entity.GuideEvolveEntity; +import com.dg.core.db.gen.entity.SysUser; import com.dg.core.db.gen.mapper.ElseAccessoryMapper; import com.dg.core.db.gen.mapper.GuideEvolveMapper; import com.dg.core.db.gen.mapper.TransactionEventMapper; @@ -68,4 +69,6 @@ public int countStatisticsNum(String state, String isTimeout) { return baseMapper.countStatisticsNum(state,isTimeout); } + + } diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java index e34ab1a..ef73f95 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java @@ -6,6 +6,7 @@ import com.dg.core.db.gen.entity.*; import com.dg.core.db.gen.mapper.*; import com.dg.core.service.IGuideRepairOrderService; +import com.dg.core.util.SmsUtil; import com.dg.core.util.Snowflake; import org.springframework.stereotype.Service; @@ -32,6 +33,9 @@ @Resource private GuideEvolveMapper guideEvolveMapper; + + @Resource + SmsUtil smsUtil; @Override public int addOrder(GuideRepairOrder guideRepairOrder){ @@ -82,6 +86,7 @@ entity.setFromUserId(guideRepairOrder.getSubmitUserId()); entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId()); entity.setGuidOrderNum(guideRepairOrder.getOrderNum()); +// smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName()); guideEvolveMapper.insertConfig(entity); } } @@ -117,6 +122,7 @@ guideRepairOrderImageMapper.insert(guideRepairOrderImage); } } + int ans= baseMapper.insert(guideRepairOrder); int i = transactionEventMapper.updateById(transactionEvent); if (ans>0&&i>0) @@ -145,8 +151,11 @@ @Override public int updateConfig(GuideRepairOrder order) { - SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId())); - order.setGuideUserPhone(sysUser.getPhonenumber()); + if ( order.getGuideUserId()!=null&&!order.getGuideUserId().equals("")) + { + SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId())); + order.setGuideUserPhone(sysUser.getPhonenumber()); + } return baseMapper.updateConfig(order); } @@ -199,5 +208,10 @@ return baseMapper.countListNum(state, ids,time); } + @Override + public SysUser getSubmitUser(GuideRepairOrder guideRepairOrder){ + return sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,guideRepairOrder.getSubmitUserId())); + } + } diff --git a/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java new file mode 100644 index 0000000..8980cbb --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java @@ -0,0 +1,67 @@ +package com.dg.core.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dg.core.db.gen.entity.Guidance; +import com.dg.core.db.gen.entity.GuidePlate; +import com.dg.core.db.gen.entity.OrganizationEntity; +import com.dg.core.db.gen.mapper.HomeStatisticsMapper; +import com.dg.core.service.HomeStatisticsService; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class HomeStatisticsImpl extends ServiceImpl<HomeStatisticsMapper, GuidePlate> + implements HomeStatisticsService +{ + + @Override + public List<GuidePlate> guidePlatePeople() { + return baseMapper.guidePlatePeople(); + } + + @Override + public List<GuidePlate> score() { + return baseMapper.score(); + } + + @Override + public List<GuidePlate> timeout() { + return baseMapper.timeout(); + } + + @Override + public Integer organizationScore(List<String> ids) { + return baseMapper.organizationScore(ids); + } + + @Override + public Integer organizationNum(List<String> ids) { + return baseMapper.organizationNum(ids); + } + + @Override + public List<OrganizationEntity> getDepartment() { + return baseMapper.getDepartment(); + } + + @Override + public List<Guidance> guidanceTransaction() { + return baseMapper.guidanceTransaction(); + } + + @Override + public List<Guidance> guidanceBrowse() { + return baseMapper.guidanceBrowse(); + } + + @Override + public Integer staffNum() { + return baseMapper.staffNum(); + } + + @Override + public Integer countWork() { + return baseMapper.countWork(); + } + +} diff --git a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java index 377770b..0751fdc 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java @@ -134,7 +134,6 @@ { if(sysStreet!=null&&sysStreet.getId()!=null) { - ids.add(sysStreet.getId()+""); if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0) { ids.addAll(disposestreetId(sysStreet.getChild())); diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java index a9291c9..1da4883 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java @@ -120,13 +120,14 @@ List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord); recommendResult.setTransactionEventList(transactionEventEntities); for (TransactionEvent transactionEvent: transactionEventEntities) { - String[] associateNames = transactionEvent.getAssociateNames().split(","); - for (String associateName: associateNames) { - KeywordEntity keywordEntity = new KeywordEntity(); - keywordEntity.setName(associateName); - keywordEntityList.add(keywordEntity); + if (transactionEvent.getAssociateNames()!=null) { + String[] associateNames = transactionEvent.getAssociateNames().split(","); + for (String associateName : associateNames) { + KeywordEntity keywordEntity = new KeywordEntity(); + keywordEntity.setName(associateName); + keywordEntityList.add(keywordEntity); + } } - } recommendResult.setKeywordEntityList(keywordEntityList); List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByKeyWord(keyWord); diff --git a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java index 6016b63..0d08e33 100644 --- a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java +++ b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java @@ -38,7 +38,12 @@ @Resource RedisTemplate<String, Object> redisTemplate; - // 发送短信 + /** + * 发送短信登录验证码 + * + * @param tel + * 电话 + */ public ResultData<Object> sendSms(String tel) { //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect()); @@ -53,7 +58,7 @@ // 接收人电话 request.putQueryParameter("PhoneNumbers", tel); // 短信签名 - request.putQueryParameter("SignName", aliyunConfig.getSignName()); + request.putQueryParameter("SignName", "集慧科技"); // 短信模板 request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCode()); Random rd = new Random(); @@ -82,4 +87,104 @@ } return ResultData.error("短信发送失败"); } + + /** + * 发送工单超时短信 + * + * @param tel + * 电话 + * @param name + * 工单名 + */ + public ResultData<Object> sendSmsOvertime(String tel,String name) { + //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值 + DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect()); + /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/ + IAcsClient client = new DefaultAcsClient(profile); + CommonRequest request = new CommonRequest(); + request.setSysMethod(MethodType.POST); + request.setSysDomain("dysmsapi.aliyuncs.com"); + request.setSysVersion("2017-05-25"); + request.setSysAction("SendSms"); + request.putQueryParameter("RegionId", "cn-hangzhou"); + // 接收人电话 + request.putQueryParameter("PhoneNumbers", tel); + // 短信签名 + request.putQueryParameter("SignName", "集慧科技"); + // 短信模板 + request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeOvertime()); + Random rd = new Random(); + // 短信内容 + request.putQueryParameter("TemplateParam", "{name:'" + name + "'}"); + // 获取短信发送的响应结果 + try { + CommonResponse rs = client.getCommonResponse(request); + LOGGER.debug(rs.getData().toString()); + // 把json格式的字符串装换成java的map的数据类型 + ObjectMapper mapper = new ObjectMapper(); + try { + HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class); + if (m.get("Message").equals("OK")) { + return ResultData.success("短信发送成功!"); + } + } catch (JsonProcessingException e) { + e.printStackTrace(); + return ResultData.error("短信发送失败"); + } + } catch (ClientException e) { + e.printStackTrace(); + return ResultData.error("短信发送失败"); + } + return ResultData.error("短信发送失败"); + } + + /** + * 发送工单完成短信 + * + * @param tel + * 电话 + * @param name + * 工单名 + */ + public ResultData<Object> sendSmsComplete(String tel,String name) { + //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值 + DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect()); + /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/ + IAcsClient client = new DefaultAcsClient(profile); + CommonRequest request = new CommonRequest(); + request.setSysMethod(MethodType.POST); + request.setSysDomain("dysmsapi.aliyuncs.com"); + request.setSysVersion("2017-05-25"); + request.setSysAction("SendSms"); + request.putQueryParameter("RegionId", "cn-hangzhou"); + // 接收人电话 + request.putQueryParameter("PhoneNumbers", tel); + // 短信签名 + request.putQueryParameter("SignName", "集慧科技"); + // 短信模板 + request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeComplete()); + Random rd = new Random(); + // 短信内容 + request.putQueryParameter("TemplateParam", "{name:'" + name + "'}"); + // 获取短信发送的响应结果 + try { + CommonResponse rs = client.getCommonResponse(request); + LOGGER.debug(rs.getData().toString()); + // 把json格式的字符串装换成java的map的数据类型 + ObjectMapper mapper = new ObjectMapper(); + try { + HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class); + if (m.get("Message").equals("OK")) { + return ResultData.success("短信发送成功!"); + } + } catch (JsonProcessingException e) { + e.printStackTrace(); + return ResultData.error("短信发送失败"); + } + } catch (ClientException e) { + e.printStackTrace(); + return ResultData.error("短信发送失败"); + } + return ResultData.error("短信发送失败"); + } } \ No newline at end of file diff --git a/flower_city/src/main/java/com/dg/core/util/TemplateParam.java b/flower_city/src/main/java/com/dg/core/util/TemplateParam.java new file mode 100644 index 0000000..82671f9 --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/util/TemplateParam.java @@ -0,0 +1,19 @@ +package com.dg.core.util; + +import lombok.Data; + +@Data +public class TemplateParam { + + private String key; + private String value; + + public TemplateParam(String key, String value) { + this.key = key; + this.value = value; + } + public TemplateParam() { + + } + +} diff --git a/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java b/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java new file mode 100644 index 0000000..0663af3 --- /dev/null +++ b/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java @@ -0,0 +1,61 @@ +package com.dg.core.util; + +import java.util.List; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.StringUtils; + +@ApiModel("微信订阅消息请求参数") +@Data +public class WxSubscribeDTO { + + @ApiModelProperty("用户在小程序的openid") + private String touser; + + @ApiModelProperty("所需下发的订阅模板id") + private String template_id; + + @ApiModelProperty("点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。") + private String page; + + @ApiModelProperty("模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }") + private Object data; + + @ApiModelProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版") + private String miniprogram_state; + + @ApiModelProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN") + private String lang; + + private List<TemplateParam> templateParamList; + + public String toJSON() { + StringBuffer buffer = new StringBuffer(); + buffer.append("{"); + buffer.append(String.format("\"touser\":\"%s\"", this.touser)).append(","); + buffer.append(String.format("\"template_id\":\"%s\"", this.template_id)).append(","); + if (StringUtils.isNotEmpty(this.page)) { + buffer.append(String.format("\"page\":\"%s\"", this.page)).append(","); + } + if (StringUtils.isNotEmpty(this.miniprogram_state)) { + buffer.append(String.format("\"miniprogram_state\":\"%s\"", this.miniprogram_state)).append(","); + } + buffer.append("\"data\":{"); + TemplateParam param = null; + for (int i = 0; i < this.templateParamList.size(); i++) { + param = templateParamList.get(i); + // 判断是否追加逗号 + if (i < this.templateParamList.size() - 1) { + buffer.append(String.format("\"%s\": {\"value\":\"%s\"},", param.getKey(), param.getValue())); + } else { + buffer.append(String.format("\"%s\": {\"value\":\"%s\"}", param.getKey(), param.getValue())); + } + } + buffer.append("}"); + buffer.append("}"); + return buffer.toString(); + } +} \ No newline at end of file diff --git a/flower_city/src/main/java/com/dg/core/util/WxUtil.java b/flower_city/src/main/java/com/dg/core/util/WxUtil.java index f0d524f..bb39e08 100644 --- a/flower_city/src/main/java/com/dg/core/util/WxUtil.java +++ b/flower_city/src/main/java/com/dg/core/util/WxUtil.java @@ -1,18 +1,26 @@ package com.dg.core.util; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.dg.core.db.gen.entity.GuideRepairOrder; import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; +import org.springframework.stereotype.Component; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; +@Slf4j +@Component public class WxUtil { private static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"; @@ -22,14 +30,14 @@ * * @return */ - public String getBatteryCarAccessToken() throws Exception { + public String getBatteryCarAccessToken() throws Exception { String accessToken = "0"; try { // 此处APP_ID APP_SECRET 在微信小程序后端可见 // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET); String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + ConstantPropertiesUtil.WX_OPEN_APP_ID - + "&secret=" + ConstantPropertiesUtil.WX_OPEN_APP_SECRET; - String result = this.httpGet(accessTokenUrl, null, null); + + "&secret=" +ConstantPropertiesUtil.WX_OPEN_APP_SECRET; + String result = httpGet(accessTokenUrl, null, null); Map<String, Object> resultMap = JSON.parseObject(result, Map.class); if (resultMap.containsKey("access_token")) { accessToken = resultMap.get("access_token").toString(); @@ -105,6 +113,107 @@ } } + /** + * http请求工具类,post请求 + * + * @param url url + * @param param 参数值 仅支持String + * @return + * @throws Exception + */ + public static String httpPost(String url, String param) throws Exception { + DefaultHttpClient defaultHttpClient = null; + BufferedReader bufferedReader = null; + try { + defaultHttpClient = new DefaultHttpClient(); + HttpPost httpPost = new HttpPost(url); + httpPost.setHeader("Content-Type", "application/json;charset=ut-8"); + if (StringUtils.isNotBlank(param)) { + HttpEntity httpEntity = new StringEntity(param, "utf-8"); + httpPost.setEntity(httpEntity); + } + HttpResponse httpResponse = defaultHttpClient.execute(httpPost); + if (httpResponse.getStatusLine().getStatusCode() != 200) { + String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode(); + throw new Exception(url + errorLog); + } + // 读取返回信息 + String output; + bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8")); + StringBuilder stringBuilder = new StringBuilder(); + while ((output = bufferedReader.readLine()) != null) { + stringBuilder.append(output); + } + return stringBuilder.toString(); + } catch (IOException e) { + e.printStackTrace(); + throw e; + } finally { + if (defaultHttpClient != null) + defaultHttpClient.getConnectionManager().shutdown(); + if (bufferedReader != null) + bufferedReader.close(); + } + } + + + + public static String wxMessageModeSendUrl(String token, WxSubscribeDTO subscribeDTO) throws Exception { + String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN"; + String url = tmpurl.replace("ACCESS_TOKEN", token); + return httpPost(url, subscribeDTO.toJSON()); + } + + /** + * 订阅消息推送 + * + * @param accessToken + * 获取会话token + * @return 消息推送结果 + */ + static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception { + String resultString = wxMessageModeSendUrl(accessToken, subscribeDTO); + JSONObject jsonResult = JSON.parseObject(resultString); + if (jsonResult != null) { + int errorCode = jsonResult.getIntValue("errcode"); + String errorMessage = jsonResult.getString("errmsg"); + if (errorCode == 0) { + System.out.println("订阅消息推送成功,openId:" + subscribeDTO.getTouser()); + } else { + System.out.println( + "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser()); + } + } + } + + /** + * 工单完成推送 + * + * @param openId + * 用户openid + * @param accessToken + * token会话标识 + */ + public void sendGuideRepairOrderComplete(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){ + WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); + subscribeDTO.setTouser(openId); + subscribeDTO.setTemplate_id(templateId); + subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal + List<TemplateParam> paras=new ArrayList<TemplateParam>(); + Calendar calendar = Calendar.getInstance(); + paras.add(new TemplateParam("thing1",guideRepairOrder.getMatterName()));//业务办理类型 + paras.add(new TemplateParam("thing3","已完成")); + paras.add(new TemplateParam("phrase8","待评价")); + calendar.setTime(new Date()); + paras.add(new TemplateParam("time4",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//结束日期 + subscribeDTO.setTemplateParamList(paras); + try { + sendSubscribe(accessToken,subscribeDTO); + }catch (Exception e){ + System.out.println(e.getMessage()); + } + } + } diff --git a/flower_city/src/main/resources/application-sms.properties b/flower_city/src/main/resources/application-sms.properties index 167cc63..367b581 100644 --- a/flower_city/src/main/resources/application-sms.properties +++ b/flower_city/src/main/resources/application-sms.properties @@ -1,8 +1,10 @@ #\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u01B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD -aliyun.key=LTAI4G3V2Ku9oaEMKyzaY93U -aliyun.screct=HJKHAl2I7ZGtoGK3t3xXahaQSEMmys -aliyun.SignName=\u84C9\u57CE\u9633\u5149 -aliyun.TemplateCode=SMS_205623177 +aliyun.key=LTAI4Frqq9fpJek6d3bC7Rn1 +aliyun.screct=wkyvU72m6JmCFepCzGVuSpsJOsbRV0 +aliyun.SignName=???? +aliyun.TemplateCode=SMS_254326275 +aliyun.TemplateCodeOvertime=SMS_254460011 +aliyun.TemplateCodeComplete=SMS_254875101 diff --git a/flower_city/src/main/resources/application.properties b/flower_city/src/main/resources/application.properties index 54249ae..cebf6e4 100644 --- a/flower_city/src/main/resources/application.properties +++ b/flower_city/src/main/resources/application.properties @@ -27,7 +27,7 @@ -wx.open.app_id=wx118de8a734d269f0 +wx.open.app_id=wx118de8a734d269f0 wx.open.app_secret=0264342daefde5cd70a6adada09ee5b1 wx.open.redirect_url=http://yq.cdnhxx.com:8080/ucenter/wx/callback yygh.baseUrl=http://localhost:8080 diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml index aca20d0..e08b71e 100644 --- a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml +++ b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml @@ -29,6 +29,7 @@ <id property="images" column="images" /> <id property="video" column="video" /> <id property="isTimeout" column="is_timeout" /> + <id property="submitType" column="submit_type" /> </resultMap> <sql id="selectGuideRepairOrderVo"> @@ -36,6 +37,7 @@ id, order_num, matter_id, + submit_type, matter_name, (select organization_name from automessage_organization_chart where a.department_id=id)organizationName, concat( @@ -185,7 +187,7 @@ </if> </where> </select> - + <!-- 首页统计 勿动 --> <select id="countListNum" resultType="com.dg.core.db.gen.entity.CountListNum"> select create_time,count(id) as num from automessage_guide_repair_order <where> diff --git a/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml new file mode 100644 index 0000000..ffacd09 --- /dev/null +++ b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml @@ -0,0 +1,105 @@ +<?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.dg.core.db.gen.mapper.HomeStatisticsMapper"> + + <!-- 按办结量排序 --> + <select id="guidePlatePeople" resultType="com.dg.core.db.gen.entity.GuidePlate"> + SELECT + user_name as userName, + (SELECT organization_name FROM automessage_organization_chart WHERE automessage_organization_chart.id=department_id) as departmentNmae, + (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id) as num + FROM automessage_sys_user WHERE user_type=2 ORDER BY + num DESC + LIMIT 10 + </select> + + <!-- 按评分排序 --> + <select id="score" resultType="com.dg.core.db.gen.entity.GuidePlate"> + SELECT + user_name, + (SELECT organization_name FROM automessage_organization_chart WHERE automessage_organization_chart.id=department_id) as departmentNmae, + ((select sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0))) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id)/(select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id)) as num + FROM automessage_sys_user WHERE user_type=2 ORDER BY + num DESC + LIMIT 10 + </select> + + <!-- 按超时 --> + <select id="timeout" resultType="com.dg.core.db.gen.entity.GuidePlate"> + SELECT + user_name as userName, + (SELECT organization_name FROM automessage_organization_chart WHERE automessage_organization_chart.id=department_id) as departmentNmae, + (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id and automessage_guide_repair_order.is_timeout=2 + ) as num + FROM automessage_sys_user WHERE user_type=2 ORDER BY + num DESC + LIMIT 10 + </select> + + + <!-- 导办人员统计数 --> + <select id="staffNum" resultType="integer"> + SELECT count(id) + FROM automessage_sys_user WHERE user_type=2 + </select> + +<!-- 获取一级组织 --> + <select id="getDepartment" resultType="com.dg.core.db.gen.entity.OrganizationEntity"> + SELECT + organization_name as departmentNmae, + id + FROM automessage_organization_chart + WHERE grade=1 + </select> + + + <!-- 组织排行榜 按评价 --> + <select id="organizationScore" resultType="integer"> + SELECT sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0))) + FROM automessage_guide_repair_order + WHERE department_id in + <foreach collection="ids" item="param" open="(" close=")" separator=","> + #{param} + </foreach> + </select> + + + + <!-- 组织排行榜 按办结量 --> + <select id="organizationNum" resultType="integer"> + SELECT count(id) FROM automessage_guide_repair_order WHERE department_id in + <foreach collection="ids" item="param" open="(" close=")" separator=","> + #{param} + </foreach> + </select> + + <!-- 办事指南 根据导办数量排序 --> + <select id="guidanceTransaction" resultType="com.dg.core.db.gen.entity.Guidance"> + SELECT matter_name as name ,transaction_num as num from + automessage_transaction_event ORDER BY + num DESC + LIMIT 10 + </select> + + <!-- 办事指南 根据导办数量排序 --> + <select id="guidanceBrowse" resultType="com.dg.core.db.gen.entity.Guidance"> + SELECT matter_name as name ,browse_num as num from + automessage_transaction_event ORDER BY + num DESC + LIMIT 10 + </select> + + + <!-- 办事指南 统计数量 --> + <select id="countWork" resultType="integer"> + SELECT count(id) from automessage_transaction_event + </select> + + + + + + + + +</mapper> diff --git a/flower_city/src/main/resources/mapper/SysUserMapper.xml b/flower_city/src/main/resources/mapper/SysUserMapper.xml index ae29bfb..0e7f67c 100644 --- a/flower_city/src/main/resources/mapper/SysUserMapper.xml +++ b/flower_city/src/main/resources/mapper/SysUserMapper.xml @@ -252,7 +252,4 @@ delete from automessage_sys_user where user_id= #{id} </delete> - - - </mapper> diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java index 068eb06..4cd5934 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java @@ -38,4 +38,6 @@ /**调解上传图片地址列表,逗号进行分割*/ @ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割") private List<ComEventRequestImageVO> images; + @ApiModelProperty("处理人") + private String solver; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java index ea2c8ea..6492039 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java @@ -151,6 +151,395 @@ private Long pageNo; private Long pageSize; private String keyword; - @ApiModelProperty(value = "查看类型1用户查看自己的调解事件申请2专家查看自己受理的调解事件") + @ApiModelProperty(value = "查看类型1用户查看自己的调解事件申请2专家查看自己受理的调解事件,3后台查看") private Integer userType; + private Integer usertype; + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getOrderSn() { + return orderSn; + } + + public void setOrderSn(String orderSn) { + this.orderSn = orderSn; + } + + public Long getRequestUserId() { + return requestUserId; + } + + public void setRequestUserId(Long requestUserId) { + this.requestUserId = requestUserId; + } + + public Integer getUserEventStatus() { + return userEventStatus; + } + + public void setUserEventStatus(Integer userEventStatus) { + this.userEventStatus = userEventStatus; + } + + public String getRequestUserEventDes() { + return requestUserEventDes; + } + + public void setRequestUserEventDes(String requestUserEventDes) { + this.requestUserEventDes = requestUserEventDes; + } + + public String getRequestUserName() { + return requestUserName; + } + + public void setRequestUserName(String requestUserName) { + this.requestUserName = requestUserName; + } + + public String getRequestUserTel() { + return requestUserTel; + } + + public void setRequestUserTel(String requestUserTel) { + this.requestUserTel = requestUserTel; + } + + public Long getEventCategory() { + return eventCategory; + } + + public void setEventCategory(Long eventCategory) { + this.eventCategory = eventCategory; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Date getSubmitDate() { + return submitDate; + } + + public void setSubmitDate(Date submitDate) { + this.submitDate = submitDate; + } + + public Date getAppointmentTime() { + return appointmentTime; + } + + public void setAppointmentTime(Date appointmentTime) { + this.appointmentTime = appointmentTime; + } + + public Long getRequestUserCommunity() { + return requestUserCommunity; + } + + public void setRequestUserCommunity(Long requestUserCommunity) { + this.requestUserCommunity = requestUserCommunity; + } + + public String getCenterId() { + return centerId; + } + + public void setCenterId(String centerId) { + this.centerId = centerId; + } + + public String getCenterTel() { + return centerTel; + } + + public void setCenterTel(String centerTel) { + this.centerTel = centerTel; + } + + public String getSpecialistOrg() { + return specialistOrg; + } + + public void setSpecialistOrg(String specialistOrg) { + this.specialistOrg = specialistOrg; + } + + public String getSpecialistLevel() { + return specialistLevel; + } + + public void setSpecialistLevel(String specialistLevel) { + this.specialistLevel = specialistLevel; + } + + public Long getSpecialistId() { + return specialistId; + } + + public void setSpecialistId(Long specialistId) { + this.specialistId = specialistId; + } + + public String getSpecialistName() { + return specialistName; + } + + public void setSpecialistName(String specialistName) { + this.specialistName = specialistName; + } + + public String getSpecialistTel() { + return specialistTel; + } + + public void setSpecialistTel(String specialistTel) { + this.specialistTel = specialistTel; + } + + public Date getSpecialistAcceptTime() { + return specialistAcceptTime; + } + + public void setSpecialistAcceptTime(Date specialistAcceptTime) { + this.specialistAcceptTime = specialistAcceptTime; + } + + public Integer getRevokeType() { + return revokeType; + } + + public void setRevokeType(Integer revokeType) { + this.revokeType = revokeType; + } + + public Integer getEventProcessStatus() { + return eventProcessStatus; + } + + public void setEventProcessStatus(Integer eventProcessStatus) { + this.eventProcessStatus = eventProcessStatus; + } + + public Integer getCurrentProcessType() { + return currentProcessType; + } + + public void setCurrentProcessType(Integer currentProcessType) { + this.currentProcessType = currentProcessType; + } + + public String getCurrentOrgId() { + return currentOrgId; + } + + public void setCurrentOrgId(String currentOrgId) { + this.currentOrgId = currentOrgId; + } + + public Long getCurrentProcessUserId() { + return currentProcessUserId; + } + + public void setCurrentProcessUserId(Long currentProcessUserId) { + this.currentProcessUserId = currentProcessUserId; + } + + public String getCurrentProcessUserName() { + return currentProcessUserName; + } + + public void setCurrentProcessUserName(String currentProcessUserName) { + this.currentProcessUserName = currentProcessUserName; + } + + public String getCurrentEventProcessResult() { + return currentEventProcessResult; + } + + public void setCurrentEventProcessResult(String currentEventProcessResult) { + this.currentEventProcessResult = currentEventProcessResult; + } + + public Integer getEventSucceed() { + return eventSucceed; + } + + public void setEventSucceed(Integer eventSucceed) { + this.eventSucceed = eventSucceed; + } + + public String getRevokeDes() { + return revokeDes; + } + + public void setRevokeDes(String revokeDes) { + this.revokeDes = revokeDes; + } + + public Integer getEventResult() { + return eventResult; + } + + public void setEventResult(Integer eventResult) { + this.eventResult = eventResult; + } + + public Boolean getReportSuperior() { + return reportSuperior; + } + + public void setReportSuperior(Boolean reportSuperior) { + this.reportSuperior = reportSuperior; + } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + + public Date getResultDate() { + return resultDate; + } + + public void setResultDate(Date resultDate) { + this.resultDate = resultDate; + } + + public Boolean getUrgent() { + return urgent; + } + + public void setUrgent(Boolean urgent) { + this.urgent = urgent; + } + + public Boolean getDifficult() { + return difficult; + } + + public void setDifficult(Boolean difficult) { + this.difficult = difficult; + } + + public Boolean getUrgentDell() { + return urgentDell; + } + + public void setUrgentDell(Boolean urgentDell) { + this.urgentDell = urgentDell; + } + + public Boolean getInvalid() { + return invalid; + } + + public void setInvalid(Boolean invalid) { + this.invalid = invalid; + } + + public Boolean getMajor() { + return major; + } + + public void setMajor(Boolean major) { + this.major = major; + } + + public String getRequestUserResponse() { + return requestUserResponse; + } + + public void setRequestUserResponse(String requestUserResponse) { + this.requestUserResponse = requestUserResponse; + } + + public Long getCreateBy() { + return createBy; + } + + public void setCreateBy(Long createBy) { + this.createBy = createBy; + } + + public Date getCreateAt() { + return createAt; + } + + public void setCreateAt(Date createAt) { + this.createAt = createAt; + } + + public Long getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(Long updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateAt() { + return updateAt; + } + + public void setUpdateAt(Date updateAt) { + this.updateAt = updateAt; + } + + public Long getPageNo() { + return pageNo; + } + + public void setPageNo(Long pageNo) { + this.pageNo = pageNo; + } + + public Long getPageSize() { + return pageSize; + } + + public void setPageSize(Long pageSize) { + this.pageSize = pageSize; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public Integer getUserType() { + return userType; + } + + public void setUserType(Integer userType) { + this.userType = userType; + } + + public Integer getUsertype() { + return usertype; + } + + public void setUsertype(Integer usertype) { + this.usertype = usertype; + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java index ffe9caa..b8354c7 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java @@ -20,7 +20,7 @@ /**调解发起人诉求事件描述*/ @ApiModelProperty(name = "requestUserEventDes", value = "调解发起人诉求事件描述") - @Length(max = 500) + @Length(max = 1000) private String requestUserEventDes; /**调解事件类型*/ @ApiModelProperty(name = "eventCategory", value = "调解事件类型") diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java index ad1ad31..28e70c8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java @@ -28,6 +28,8 @@ import java.util.HashMap; import java.util.List; +import static java.util.Objects.isNull; + /** * ClassName ComEventController * Description 三说会堂事件表控制层 @@ -152,6 +154,7 @@ }) @PostMapping("/page") public R page(@RequestBody ComEventVO comEventVO, Long pageNo, Long pageSize) { + log.info("==============分页参数"+comEventVO); Page pagination = new Page(pageNo, pageSize); ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class); return comEventService.pageByComEvent(comEvent, pagination,this.getLoginUserInfo()); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java index 59ead79..3014a01 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java @@ -34,6 +34,13 @@ * @date 2022-09-07 11:23:51 */ IPage<ComEvent> pageByComEvent(@Param("comEvent") ComEvent comEvent, Page pagination); + IPage<ComEvent> pageByComEventExpert(@Param("eventIds") List<Long> eventIds,@Param("comEvent") ComEvent comEvent, Page pagination); + /** + * + * 获取专家名下的所有事件id + * @param expertId 专家id + * */ + List<Long> listEventIds(Long expertId); /** * description 三说会堂事件表列表数据 * @@ -86,4 +93,18 @@ * */ List<EventRateVO> mediateTypeRate(); + /** + * 获取用户头像 + * */ + String getUserAvatar(Long userId); + + /** + * 添加事件-专家对应记录 + * @param status 流转状态( + * 0创建时分配,只有一条记录 + * 1上报后重新分配 + * 2拒绝后重新分配 + * ) + * */ + void insertEventAndExpertRecord(@Param("eventId") Long eventId, @Param("expertId") Long experId,@Param("status")Integer status); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java index 4479636..e35bd9e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java @@ -93,7 +93,7 @@ /**工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/ @ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除") private Integer eventProcessStatus; - /**当前处理对象类型(1、行业分中心2、社区3、是街道4、区)*/ + /**当前处理对象类型(1、行业分中心2、社区3、是街道4、区三说会堂,5专家)*/ @ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区)") private Integer currentProcessType; /**当前处理机构ID*/ @@ -153,7 +153,7 @@ private Long createBy; /**创建时间*/ @ApiModelProperty(name = "createAt", value = "创建时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createAt; /**修改人*/ @ApiModelProperty(name = "updateBy", value = "修改人") @@ -182,4 +182,8 @@ @ApiModelProperty("社区id") @TableField(exist = false) private Long communityId; + @ApiModelProperty("上报等级,4专家上报到社区,3专家上报到行业分中心,2社区上报到街道,1街道上报到三说会堂5行业分中心上报到三说会堂") + private Integer reportLevel; + @TableField(exist = false) + private Integer isArchive; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java index 4a76c23..fd0aa9a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java @@ -104,4 +104,6 @@ @ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割") @TableField(exist = false) private List<ComEventRequestImageVO> images; + @ApiModelProperty("上报等级,4专家上报到社区,3专家到行业分中心2社区上报到街道,1街道上报到三说会堂,5行业分中心上报到区三说会堂") + private Integer reportLevel; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java index 14a86f4..3219754 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java @@ -20,6 +20,7 @@ import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.service_community.api.ComSanShuoEventTransferRecordController; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComEventMapper; import com.panzhihua.service_community.dao.ComStreetDAO; @@ -78,15 +79,27 @@ @Override public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) { + log.info("=================当前登陆的用户信息,用户类型"+loginUserInfoVO.getType()+"社区id"+loginUserInfoVO.getCommunityId()); + Boolean isExpertCheck=false; + Long expertId=null; if (nonNull(comEvent.getUserType())){ if (comEvent.getUserType().equals(1)){ //个人账号权限 comEvent.setRequestUserId(loginUserInfoVO.getUserId()); - }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(11)){ - //专家账号权限 - ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone())); + }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){ + ComSanshuoExpert expert=new ComSanshuoExpert(); + //专家账号权限(小程序和后台) + if (nonNull(loginUserInfoVO.getPhone())){ + expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone())); + }else{ + //账号获取 + expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount())); + } + comEvent.setUserType(2); if (nonNull(expert)){ comEvent.setSpecialistId(expert.getId()); + isExpertCheck=true; + expertId=expert.getId(); } }else if (loginUserInfoVO.getType().equals(12)){ //行业分中心权限 @@ -98,10 +111,26 @@ } }else if (loginUserInfoVO.getType().equals(3)){ //社区后台权限 + comEvent.setUserType(4); comEvent.setCommunityId(loginUserInfoVO.getCommunityId()); } } - IPage<ComEvent> list = baseMapper.pageByComEvent(comEvent, pagination); + if (nonNull(loginUserInfoVO.getAccount())){ + if (loginUserInfoVO.getAccount().equals("admin")){ + comEvent.setUserType(null); + } + } + IPage<ComEvent> list=null; + log.info("=====================当前的userType"+comEvent.getUserType()); + log.info("=====================是否专家账号查看"+isExpertCheck); + if (isExpertCheck){ + if (nonNull(comEventMapper.listEventIds(expertId))){ + list = comEventMapper.pageByComEventExpert(comEventMapper.listEventIds(expertId), comEvent, pagination); + } + }else{ + list = baseMapper.pageByComEvent(comEvent, pagination); + } + if (list.getRecords().size() < 1) { return R.ok(Collections.emptyList()); } @@ -109,14 +138,16 @@ List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent1.getId())); List<ComEventRequestImageVO> comEventRequestImageVO = CopyUtil.deepCopyListObject(resourceList, ComEventRequestImageVO.class); comEvent1.setImages(comEventRequestImageVO); -// if (nonNull(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl())){ -// comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl()); -// } + if (nonNull(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl())){ + comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl()); + } ComMediateType category = commediateTypeService.getById(comEvent1.getEventCategory()); comEvent1.setEventCategoryName(category.getName()); - ComSanshuoExpert byId = comSanShuoExpertService.getById(comEvent1.getSpecialistId()); - if (nonNull(byId)){ - comEvent1.setExpertAvatar(byId.getAvatar()); + //当前账号能否操作此条记录,根据事件流转记录是否有归档的记录决定当前用户能否对添加归档记录 + ComEventTransferRecord archiveRecord = comEventTransferRecordService.getOne(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, comEvent1.getId()).eq(ComEventTransferRecord::getFromUserId, loginUserInfoVO.getUserId()).eq(ComEventTransferRecord::getEventStatus, 7)); + comEvent1.setIsArchive(1); + if(nonNull(archiveRecord)){ + comEvent1.setIsArchive(0); } }); return R.ok(list); @@ -136,18 +167,22 @@ public R insertComEvent(ComEvent comEvent) { ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId()); if (comEvent.getRequestUserCommunity() != null) { + //创建时处理级别都是专家 ComActDO community = comActDAO.selectById(comEvent.getRequestUserCommunity()); comEvent.setCurrentOrgName(community.getName()); comEvent.setCurrentOrgId(community.getCommunityId().toString()); - comEvent.setCurrentProcessType(2); + comEvent.setCurrentProcessType(5); } if (!StringUtils.isEmpty(comEvent.getCenterId())) { + //创建时处理级别都是专家 ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCenterId()); comEvent.setCurrentOrgName(center.getName()); comEvent.setCurrentOrgId(center.getId().toString()); - comEvent.setCurrentProcessType(1); + comEvent.setCurrentProcessType(5); } comEvent.setUserEventStatus(2); + //设置为未上报 + comEvent.setReportLevel(0); comEvent.setEventProcessStatus(SanShuoEventStatusEnum.UNDO.getCode()); comEvent.setSpecialistName(expert.getName()); comEvent.setOrderSn(DateUtils.getDateFormatString(new Date(), "yyyyMMddHHmmss") + RandomUtils.nextLong(1, 10000)); @@ -159,6 +194,8 @@ comEvent.setUpdateBy(comEvent.getRequestUserId()); comEvent.setUpdateAt(new Date()); boolean flag = save(comEvent); + //添加一条对应记录 + comEventMapper.insertEventAndExpertRecord(comEvent.getId(),expert.getId(),0); if (!flag) { return R.fail(ReturnMsgConstants.DATA_EXIST); } @@ -221,30 +258,76 @@ comEvent.setEventSucceed(comEventConciliationVO.getEventSucceed()); comEvent.setEventResult(comEventConciliationVO.getEventResult()); comEvent.setReportSuperior(comEventConciliationVO.getReportSuperior()); + ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord(); if(comEventConciliationVO.getEventSucceed().equals(2)){ comEvent.setEventProcessStatus(6); } comEvent.setCurrentEventProcessResult(comEventConciliationVO.getCurrentEventProcessResult()); //如果当前请求,需要上报上级进行处理 if (comEventConciliationVO.getReportSuperior()) { - if (comEvent.getCurrentProcessType() == 2) { - //查询街道的账号 - comEvent.setCurrentProcessType(3); - ComActDO comActDO = comActDAO.selectById(comEvent.getCurrentOrgId()); - comEvent.setCurrentOrgId(comActDO.getStreetId().toString()); - } else { - //查询街道的上级区域账号 - comEvent.setCurrentProcessType(4); - try { - ComStreetDO street = comStreetDAO.selectById(comEvent.getCurrentOrgId()); - comEvent.setCurrentOrgId(street.getAreaCode().toString()); - } catch (Exception e) { - e.printStackTrace(); + //判断当前的处理级别 + if (comEvent.getCurrentProcessType() == 5) { + //获取专家账号级别决定上报的级别 + ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId()); + if (expert.getLevel().equals(4)){ + //上报到社区 + //查询社区账号,由专家转交到社区 + comEvent.setCurrentProcessType(2); + ComActDO comActDO = comActDAO.selectById(expert.getCommunityId()); + comEvent.setCurrentOrgId(comActDO.getStreetId().toString()); + //生成一次流转记录 + comEvent.setCurrentEventProcessResult("专家上报到社区"); + comEventTransferRecord.setFromId(comEvent.getSpecialistId()); + comEventTransferRecord.setToId(Long.parseLong(comEvent.getCurrentOrgId())); + comEventTransferRecord.setReportLevel(4); + comEvent.setReportLevel(4); + }else if (expert.getLevel().equals(2)){ + //上报到行业分中心 + comEvent.setCurrentProcessType(1); + comEvent.setCurrentOrgId(expert.getIndustryCenterId().toString()); + //生成一次流转记录 + comEvent.setCurrentEventProcessResult("专家上报到行业分中心"); + comEventTransferRecord.setFromId(comEvent.getSpecialistId()); + comEventTransferRecord.setToId(expert.getIndustryCenterId()); + comEventTransferRecord.setReportLevel(3); + comEvent.setReportLevel(3); } + }else if (comEvent.getCurrentProcessType() == 1){ + //行业分中心上报到区三说会堂 + comEvent.setCurrentProcessType(4); + comEvent.setCurrentOrgId("99999"); + //生成一次流转记录 + comEvent.setCurrentEventProcessResult("行业分中心上报到区三说会堂"); + comEventTransferRecord.setFromId(comEvent.getSpecialistId()); + comEventTransferRecord.setToId(99999L); + comEventTransferRecord.setReportLevel(5); + comEvent.setReportLevel(5); + }else if(comEvent.getCurrentProcessType() == 2){ + //社区上报到街道 + comEvent.setCurrentProcessType(3); + //获取街道id + ComActDO comActDO = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getCommunityId, comEvent.getRequestUserCommunity()).eq(ComActDO::getAppId, "wx0cef797390444b75")); + comEvent.setCurrentOrgId(comActDO.getStreetId().toString()); + //生成一次流转记录 + comEvent.setCurrentEventProcessResult("社区报到街道"); + comEventTransferRecord.setFromId(comEvent.getRequestUserCommunity()); + comEventTransferRecord.setToId(comActDO.getStreetId()); + comEventTransferRecord.setReportLevel(2); + comEvent.setReportLevel(2); + }else if(comEvent.getCurrentProcessType() == 3){ + //街道上报到区三说会堂 + comEvent.setCurrentProcessType(4); + comEvent.setCurrentOrgId("99999"); + //生成一次流转记录 + comEvent.setCurrentEventProcessResult("街道上报到区三说会堂"); + comEventTransferRecord.setFromId(Long.parseLong(comEvent.getCurrentOrgId())); + comEventTransferRecord.setReportLevel(1); + comEvent.setReportLevel(1); + }else { + //已是最高上报级别,无法上报 } } int flag = baseMapper.updateById(comEvent); - ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord(); comEventTransferRecord.setEventId(comEvent.getId()); comEventTransferRecord.setSave(true); comEventTransferRecord.setProcessResult(comEvent.getCurrentEventProcessResult()); @@ -266,6 +349,14 @@ saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId(),comEventTransferRecord.getId(),4); comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord); return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE); + } + + /** + * 创建上报记录 + * */ + public void createTransferLog(ComEventTransferRecord record) { + record.setId(Snowflake.getId()); + comEventTransferRecordService.insertComEventTransferRecord(record); } @Override @@ -349,6 +440,8 @@ comEvent.setSpecialistName(specter.getName()); comEvent.setEventProcessStatus(SanShuoEventStatusEnum.ACCEPT.getCode()); int flag = baseMapper.updateById(comEvent); + //添加一条对应记录 + comEventMapper.insertEventAndExpertRecord(id, specialistId,1); return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE); } @@ -367,11 +460,12 @@ @Transactional(rollbackFor = Exception.class) public R archiveRequest(ComEventArchiveVO comEventArchiveVO, LoginUserInfoVO sysUser) { ComEvent comEvent = baseMapper.selectById(comEventArchiveVO.getId()); - if (comEvent.getEventSucceed() == 2) { - comEvent.setEventProcessStatus(7); - } else { - comEvent.setEventProcessStatus(6); - } + //不再设置已归档状态 +// if (comEvent.getEventSucceed() == 2) { +// comEvent.setEventProcessStatus(7); +// } else { +// comEvent.setEventProcessStatus(6); +// } comEvent.setResult(comEventArchiveVO.getResult()); baseMapper.updateById(comEvent); ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord(); @@ -389,7 +483,9 @@ comEventTransferRecord.setSpecialistLevel(comEvent.getSpecialistLevel()); comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName()); comEventTransferRecord.setEventResult(comEvent.getEventSucceed()); - comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus()); + comEventTransferRecord.setFromUserId(sysUser.getUserId()); + //归档操作统一设置为7 + comEventTransferRecord.setEventStatus(7); comEventTransferRecord.setId(Snowflake.getId()); saveEventImageList(comEventArchiveVO.getImages(), comEvent.getId(), comEventTransferRecord.getId(), 5); return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java index b932c4a..e3d928f 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java @@ -106,6 +106,7 @@ user.setName(comSanshuoExpertDTO.getName()); user.setType(11); user.setImageUrl(comSanshuoExpertDTO.getAvatar()); + user.setPhone(comSanshuoExpertDTO.getPhone()); return R.ok(userService.sanShuoAddUser(user)); } }else { diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml index fb9ab31..ae6adca 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml @@ -93,6 +93,56 @@ </where> order by create_at desc </select> + <select id="pageByComEventExpert" resultType="com.panzhihua.service_community.entity.ComEvent"> + SELECT <include refid="columns" /> + FROM com_sanshuo_event_info + <where> + event_process_status !=9 + <if test="eventIds != null"> + AND id in + <foreach collection="eventIds" item="id" separator="," open="(" close=")"> + #{id} + </foreach> + </if> + <if test="comEvent.keyword != null and comEvent.keyword!=''" > + AND ( order_sn = #{comEvent.keyword} or request_user_tel =#{comEvent.keyword} or current_org_name=#{comEvent.keyword}) + </if> + <if test="comEvent.createBy != null and comEvent.createBy!=''" > + AND create_by = #{comEvent.createBy} + </if> + <if test="comEvent.eventCategory != null"> + AND event_category = #{comEvent.eventCategory} + </if> + <if test="comEvent.eventProcessStatus != null"> + AND event_process_status = #{comEvent.eventProcessStatus} + </if> + <if test="comEvent.orderSn != null"> + AND order_sn = #{comEvent.orderSn} + </if> + <if test="comEvent.requestUserTel != null"> + AND request_user_tel = #{comEvent.requestUserTel} + </if> + <if test="comEvent.currentOrgName != null"> + AND current_org_name = #{comEvent.currentOrgName} + </if> + <!--<if test="comEvent.userType == 1">--> + <!--AND request_user_id=#{comEvent.requestUserId}--> + <!--</if>--> + <!--<if test="comEvent.userType == 2">--> + <!--AND specialist_id=#{comEvent.specialistId}--> + <!--</if>--> + <!--<if test="comEvent.userType == 3">--> + <!--AND center_id=#{comEvent.centerId}--> + <!--</if>--> + <!--<if test="comEvent.userType == 4">--> + <!--AND request_user_community=#{comEvent.communityId}--> + <!--</if>--> + </where> + order by create_at desc + </select> + <select id="listEventIds" resultType="java.lang.Long"> + select event_id from com_sanshuo_expert_event where expert_id=#{expertId} + </select> <select id="listByComEvent" resultType="com.panzhihua.service_community.entity.ComEvent"> SELECT <include refid="columns" /> FROM com_sanshuo_event_info @@ -402,5 +452,11 @@ group by t.event_category </select> + <select id="getUserAvatar" resultType="String"> + select image_url from sys_user where user_id = #{userId} + </select> + <select id="insertEventAndExpertRecord"> + insert into com_sanshuo_expert_event values(#{eventId},#{expertId},#{status}) + </select> </mapper> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java index d1aaac9..85fcf0e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java @@ -376,4 +376,14 @@ * 是否为专家 * */ ComSanshuoExpertVO isExpert(String phone); + + /** + * 当前账号是否为专家后台账号 + * */ + int isIndustryCenterAccount(String account); + + /** + * 当前账号是否为专家后台账号 + * */ + int isExpertAccount(String account); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java index 7e93e92..f8331eb 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java @@ -304,11 +304,18 @@ */ @Override public R<LoginUserInfoVO> getUserInfo(String name, int type,String appId) { + //是否为三说会堂行业分中心或专家后台账号 SysUserDO sysUserDO = null; + Boolean isIndustryOrExpertAccount=(userDao.isIndustryCenterAccount(name)>0 || userDao.isExpertAccount(name)>0); if (1 == type) { sysUserDO = userDao.selectOne( new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name)); - } else { + }else if(isIndustryOrExpertAccount) { + //三说会堂行业分中心或专家后台账号登陆 + sysUserDO = userDao.selectOne( + new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId)); + } + else { LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type); if (type == 11) { //只允许通过account登录 @@ -3807,6 +3814,9 @@ if (nonNull(administratorsUserVO.getType())){ sysUserDO.setType(administratorsUserVO.getType()); } + if (nonNull(administratorsUserVO.getPhone())){ + sysUserDO.setPhone(administratorsUserVO.getPhone()); + } userDao.insert(sysUserDO); //分配权限 SysUserRoleDO sysUserRole=new SysUserRoleDO(); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml index e57fb0f..86d508a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml @@ -777,4 +777,12 @@ <select id="isExpert" resultType="com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO"> select * from com_sanshuo_expert where phone=#{phone} </select> + + <select id="isIndustryCenterAccount" resultType="Integer"> + select count(id) from com_sanshuo_industry_center where account=#{account} + </select> + + <select id="isExpertAccount" resultType="Integer"> + select count(id) from com_sanshuo_expert where account=#{account} + </select> </mapper> -- Gitblit v1.7.1