lidongdong
2022-10-11 84ff643bf7117c92acbbcdaaeb54329f3d651a86
Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test
30个文件已修改
711 ■■■■ 已修改文件
flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/application.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/AreaCode2022Mapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/OrganizationChartMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/SysUserMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 213 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java
@@ -44,6 +44,17 @@
    {
        Page<ReplyTemplateEntity> pageParam = new Page<>(pageNum,pageSize);
        List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
        String[] roles = sysUser.getRoleIds().split(",");
        Integer isRole=0;//是否超管
        for (String role: roles) {
            if (role.equals("1")){
                isRole=1;
                break;
            }
        }
        if (isRole.equals(1)){
            ids=null;
        }
        List<ReplyTemplateEntity> list = iReplyTemplateService.selectConfigList(pageParam,pageSize,Name,ids);
        int num=iReplyTemplateService.countNum(Name,ids);
        return getDataTable(list,num);
@@ -85,7 +96,6 @@
        {
            return ResultData.error("模板名称不能为空");
        }
        entity.setId(null);
        entity.setDepartmentId(sysUser.getDepartmentId());
        entity.setCreateUserId(sysUser.getUserId()+"");
flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java
@@ -19,7 +19,7 @@
 * @author fengjin
 * @since 2022-09-20
 */
@TableName("area_code_2022")
@TableName("automessage_area_code_2022")
@Data
@ApiModel("所属地区实体类")
public class AreaCode2022 implements Serializable {
flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java
@@ -68,7 +68,7 @@
    public  List<AreaCode2022> getListByPCode(String id){
        List<AreaCode2022> areaCode2022s = baseMapper.selectList(new QueryWrapper<AreaCode2022>().lambda().eq(AreaCode2022::getPcode, id));
        for (AreaCode2022 areaCode2022:areaCode2022s) {
            if (areaCode2022.getLevel()!=4)
            if (areaCode2022.getLevel()!=3)
              areaCode2022.setChild(this.getListByPCode(areaCode2022.getCode().toString()));
        }
      return  areaCode2022s;
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -49,7 +49,7 @@
                departmentIds.add(organizationChart.getId().toString());
            }
            List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
            if (sysUsers==null) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员
            if (sysUsers.size()==0) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员
                for (OrganizationChartEntity organizationChart:organizationChartEntities) {
                    //获取下级部门
                    List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
@@ -58,13 +58,13 @@
                        departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds);
                }
                sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
                if (sysUsers==null){//如果其下级部门仍没有该分类的导半人员则查询所以该所属地区的导办人员
                if (sysUsers.size()==0){//如果其下级部门仍没有该分类的导半人员则查询所以该所属地区的导办人员
                    sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds,null,null);//获取导半人员
                    if(sysUsers==null)//如果该所属地区没有导办人员则为特殊单据需要手动分配
                    if(sysUsers.size()==0)//如果该所属地区没有导办人员则为特殊单据需要手动分配
                        guideRepairOrder.setState("1");
                }
            }
            if (sysUsers!=null){//系统分配导办人员
            if (sysUsers.size()>0){//系统分配导办人员
                SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一
                guideRepairOrder.setState("2");
                sysUser.setTransactionNum(sysUser.getTransactionNum()+1);
flower_city/src/main/resources/application.properties
@@ -3,8 +3,8 @@
spring.datasource.password=nahanMysqlPwd&&RemoteRemote2019nahan
#spring.datasource.url=jdbc:mysql://10.8.0.74:3306/flower_city_automessage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8
#spring.datasource.url=jdbc:mysql://localhost:3306/flower_city_automessage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://10.8.0.74:3306/huacheng_smart_life?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8
#spring.datasource.url=jdbc:mysql://182.151.2.19:3306/huacheng_smart_life?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
#spring.datasource.url=jdbc:mysql://10.8.0.74:3306/huacheng_smart_life?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://182.151.2.19:3306/huacheng_smart_life?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
server.port=8187
@@ -15,7 +15,7 @@
#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
#spring.redis.password=nahanRedisPwsIsVerySimple&&
spring.redis.password=nahanRedisPwsIsVerySimple&&
flower_city/src/main/resources/mapper/AreaCode2022Mapper.xml
@@ -9,7 +9,7 @@
    </resultMap>
    <sql id="selectAreaCode">
        select code,name,level,pcode FROM area_code_2022
        select code,name,level,pcode FROM automessage_area_code_2022
    </sql>
    <select id="selectByIdSet" resultMap="AreaCodeResult">
flower_city/src/main/resources/mapper/OrganizationChartMapper.xml
@@ -38,9 +38,9 @@
            city,
            district,
            village,
            (select name from area_code_2022 where city=area_code_2022.code) as cityName,
            (select name from area_code_2022 where district=area_code_2022.code) as districtName,
            (select name from area_code_2022 where village=area_code_2022.code) as villageName,
            (select name from automessage_area_code_2022 where city=automessage_area_code_2022.code) as cityName,
            (select name from automessage_area_code_2022 where district=automessage_area_code_2022.code) as districtName,
            (select name from automessage_area_code_2022 where village=automessage_area_code_2022.code) as villageName,
            detailed_address,
            grade,
            area_list
flower_city/src/main/resources/mapper/SysUserMapper.xml
@@ -72,6 +72,7 @@
            transaction_ids,
            transaction_names,
            openid,
            transaction_num,
            (select organization_name from automessage_organization_chart where automessage_sys_user.department_id=automessage_organization_chart.id) as department_name
        FROM
            automessage_sys_user
@@ -122,8 +123,9 @@
    <select id="selectListByDepartmentId"  resultMap="SysUserResult">
        <include refid="selectSysUserVo"/>
         <where>
             user_type=2
        <if test="list!=null">
            department_id in
            and  department_id in
            <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
                #{id}
            </foreach>
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -42,6 +42,9 @@
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import java.util.HashMap;
import java.util.Map;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 登录
@@ -319,10 +322,22 @@
    @GetMapping("uu/getQRCode")
    public R uuLogin(@RequestParam("couponId") String couponId) {
        try {
            WxMaQrcodeService qrCodeService = wxMaConfiguration.getMaService("wx118de8a734d269f0").getQrcodeService();
            byte[] bytes = qrCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
                "packageD/pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
            return R.ok(String.format("data:image/png;base64,%s", Base64.encode(bytes)));
            //i小懒
            WxMaQrcodeService wsCodeService = wxMaConfiguration.getMaService("wx98d62711dfbd8425").getQrcodeService();
            byte[] bytes = wsCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
                "pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
            String res = String.format("data:image/png;base64,%s", Base64.encode(bytes));
            //花城
            WxMaQrcodeService uuCodeService = wxMaConfiguration.getMaService("wx118de8a734d269f0").getQrcodeService();
            byte[] hcBytes = uuCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
                    "packageD/pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
            String hcRes = String.format("data:image/png;base64,%s", Base64.encode(hcBytes));
            Map<String,String> retMap = new HashMap<>();
            retMap.put("ixiaolan",res);
            retMap.put("huacheng",hcRes);
            return R.ok(retMap);
        } catch (Exception e) {
            log.error("generate QRCode failed:" + e.getMessage());
            return R.fail("generate QRCode failed");
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java
@@ -66,17 +66,19 @@
        if (userId == null) {
            return R.fail("请重新登录");
        }
        String releaseContent = addNeighborCircleAppDTO.getReleaseContent();
        if (StrUtil.isNotBlank(releaseContent)) {
            String result = checkService.checkMessageBy(releaseContent, this.getLoginUserInfo().getOpenid(), this.getAppId());
            if (StrUtil.isNotBlank(result)) {
                return R.fail(501, "填写内容存在 " + result + " 违规信息");
        if (!this.getAppId().equals("wx118de8a734d269f0")){
            String releaseContent = addNeighborCircleAppDTO.getReleaseContent();
            if (StrUtil.isNotBlank(releaseContent)) {
                String result = checkService.checkMessageBy(releaseContent, this.getLoginUserInfo().getOpenid(), this.getAppId());
                if (StrUtil.isNotBlank(result)) {
                    return R.fail(501, "填写内容存在 " + result + " 违规信息");
                }
            }
        }
        String releaseImages = addNeighborCircleAppDTO.getReleaseImages();
        if (StrUtil.isNotBlank(releaseImages)) {
            if (checkService.checkImageBy(releaseImages, this.getAppId())) {
                return R.fail(501, "上传图片存在违规信息");
            String releaseImages = addNeighborCircleAppDTO.getReleaseImages();
            if (StrUtil.isNotBlank(releaseImages)) {
                if (checkService.checkImageBy(releaseImages, this.getAppId())) {
                    return R.fail(501, "上传图片存在违规信息");
                }
            }
        }
        addNeighborCircleAppDTO.setUserId(userId);
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java
@@ -32,6 +32,7 @@
import com.panzhihua.common.utlis.IPUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
/**
 * 切面处理类,操作日志异常日志记录处理
@@ -113,7 +114,7 @@
            if (joinPoint.getArgs().length > 0) {
                for (Object o : joinPoint.getArgs()) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse|| o instanceof MultipartFile) {
                        continue;
                    }
                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java
@@ -2,6 +2,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.interfaces.OperLog;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
@@ -30,6 +31,7 @@
    @ApiOperation(value = "登录")
    @PostMapping("login")
    @OperLog(operModul = "运营后台登录",operType = 0,businessType = "登录")
    public R login(@RequestBody LoginBody loginBody) {
        String account = loginBody.getAccount();
        String password = loginBody.getPassword();
@@ -44,6 +46,7 @@
    @ApiOperation(value = "登出")
    @PostMapping("logout")
    @OperLog(operModul = "运营后台登录",operType = 0,businessType = "登出")
    public R login() {
        String token = this.getToken();
        if (ObjectUtils.isEmpty(token)) {
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -1,11 +1,16 @@
package com.panzhihua.auth.service.impl;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.user.SysOperLogVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.IPUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
@@ -21,6 +26,9 @@
import com.panzhihua.common.model.vos.LoginReturnsVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.utlis.JWTTokenUtil;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.bind.annotation.RequestParam;
import static java.util.Objects.nonNull;
@@ -37,6 +45,8 @@
    private AuthenticationManager authenticationManager;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Resource
    private UserService userService;
    /**
     * 微信小程序登录
@@ -121,6 +131,21 @@
            loginReturnVO.setLat(comActVO.getLat());
            loginReturnVO.setLng(comActVO.getLng());
        }
        //保存登录日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        SysOperLogVO operlog = new SysOperLogVO();
        operlog.setTitle("登录操作"); // 操作模块
        operlog.setBusinessType(1); // 操作类型
        operlog.setMethod("com.panzhihua.community_backstage.api.LoginApi.login"); // 请求方法
        operlog.setAccount(loginUser.getAccount());
        operlog.setOperName(loginUser.getName()); // 请求用户名称
        operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
        operlog.setOperUrl(request.getRequestURI()); // 请求URI
        operlog.setRequestMethod(request.getMethod());
        operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
        operlog.setOperTime(new Date()); // 创建时间
        operlog.setCommunityId(loginUser.getCommunityId());
        userService.addOperLog(operlog);
        return loginReturnVO;
    }
@@ -149,7 +174,7 @@
    /**
     * 大数据统计平台(区、街道、社区三层登陆接口)
     *
     *
     * @param account
     *            账户
     * @param password
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java
@@ -16,6 +16,6 @@
    public static final String NEWS_ID = "news_media_id:";
    public static final String NEWS_LIST = "news_list:";
    public static final String SANSHUO_INDUSTRY_CENTER_ROLE="1559112102373756911";
    public static final String SANSHUO_EXPERT_ROLE="1559112102373756955";
    public static final String SANSHUO_INDUSTRY_CENTER_ROLE="103";
    public static final String SANSHUO_EXPERT_ROLE="102";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java
@@ -1,65 +1,67 @@
package com.panzhihua.common.utlis;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
/**
 * @ClassName: IPUtil
 * @version 1.0
 * @Desc: Ip工具类
 * @author huaping hu
 * @version 1.0
 * @ClassName: IPUtil
 * @Desc: Ip工具类
 * @date 2016年6月1日下午5:26:56
 * @history v1.0
 *
 */
@Slf4j
public class IPUtil {
    /**
     *
     * 描述:获取IP地址
     *
     *
     * @param request
     * @return
     * @author huaping hu
     * @date 2016年6月1日下午5:25:44
     * @param request
     * @return
     */
    public static String getIpAddress(HttpServletRequest request) {
        if (request == null) {
            return "unknown";
        }
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || "nuknown".equalsIgnoreCase(ip)) {
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "nuknown".equalsIgnoreCase(ip)) {
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Forwarded-For");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "nuknown".equalsIgnoreCase(ip)) {
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Real-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
        return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
    }
    /**
     *
     * 描述:获取IP+[IP所属地址]
     *
     * @author huaping hu
     * @date 2016年6月1日下午6:01:09
     *
     * @param request
     * @return
     * @author huaping hu
     * @date 2016年6月1日下午6:01:09
     */
    public static String getIpBelongAddress(HttpServletRequest request) {
@@ -70,13 +72,12 @@
    }
    /**
     *
     * 描述:获取IP所属地址
     *
     * @author huaping hu
     * @date 2016年6月1日下午5:59:43
     *
     * @param ip
     * @return
     * @author huaping hu
     * @date 2016年6月1日下午5:59:43
     */
    public static String getIPbelongAddress(String ip) {
@@ -98,20 +99,19 @@
    }
    /**
     *
     * 描述:获取Ip所属地址
     *
     * @author huaping hu
     * @date 2016年6月1日下午5:38:55
     *
     * @param urlStr
     * @return
     * @author huaping hu
     * @date 2016年6月1日下午5:38:55
     */
    public static String call(String urlStr) {
        try {
            URL url = new URL(urlStr);
            HttpURLConnection httpCon = (HttpURLConnection)url.openConnection();
            HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
            httpCon.setConnectTimeout(3000);
            httpCon.setDoInput(true);
@@ -130,13 +130,12 @@
    }
    /**
     *
     * 描述:将InputStream转换成String
     *
     * @author huaping hu
     * @date 2016年6月1日下午5:51:53
     *
     * @param is
     * @return
     * @author huaping hu
     * @date 2016年6月1日下午5:51:53
     */
    public static String streamConvertToSting(InputStream is) {
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
@@ -124,7 +124,7 @@
        String accessToken = "0";
        try {
            log.info("获取微信token参数:appid=" + APP_ID + ",appSecret=" + APP_SECRET);
            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + APP_ID + "&secret=" + APP_SECRET;
            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=wx98d62711dfbd8425"+ "&secret=97a2a10b990c2774ed279724337b5337";
            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
            if (resultMap.containsKey("access_token")) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java
@@ -33,6 +33,7 @@
import com.panzhihua.common.utlis.IPUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
/**
 * 切面处理类,操作日志异常日志记录处理
@@ -113,7 +114,7 @@
            if (joinPoint.getArgs().length > 0) {
                for (Object o : joinPoint.getArgs()) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse|| o instanceof MultipartFile) {
                        continue;
                    }
                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
@@ -282,7 +283,7 @@
            if (joinPoint.getArgs().length > 0) {
                for (Object o : joinPoint.getArgs()) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse || o instanceof MultipartFile) {
                        continue;
                    }
                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -14,6 +14,7 @@
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONArray;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
import com.panzhihua.common.model.vos.community.ComMngVillageVO;
@@ -73,6 +74,7 @@
    @ApiOperation(value = "excel导入楼栋信息--注:以前的接口,不需要对接")
    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "房屋信息管理", operType = 0, businessType = "导入楼栋信息")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file) {
        InputStream inputStream;
        try {
@@ -146,6 +148,7 @@
    @ApiOperation(value = "添加单元")
    @PostMapping("/add/unit")
    @OperLog(operModul = "房屋信息管理", operType = 1, businessType = "添加单元")
    public R addUnit(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -159,6 +162,7 @@
    @ApiOperation(value = "修改单元")
    @PostMapping("/edit/unit")
    @OperLog(operModul = "房屋信息管理", operType = 2, businessType = "修改单元")
    public R editUnit(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -331,6 +335,7 @@
    @ApiOperation("删除楼栋")
    @GetMapping("/delete")
    @OperLog(operModul = "房屋信息管理", operType = 3, businessType = "删除")
    public R delete(@RequestParam("id")Long id){
        return communityService.buildingDelete(id);
    }
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -155,6 +155,7 @@
    //@OperLog(operModul = "党支部管理", operType = 1)
    @ApiOperation(value = "新增党支部")
    @PostMapping("addpartyorganization")
    @OperLog(operModul = "报道党员管理", operType = 1, businessType = "新增党支部")
    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
        Long communityId = this.getCommunityId();
        partyOrganizationVO.setCommunityId(communityId);
@@ -165,6 +166,7 @@
    //@OperLog(operModul = "党支部管理", operType = 2)
    @ApiOperation(value = "编辑党支部")
    @PostMapping("updatepartyorganization")
    @OperLog(operModul = "报道党员管理", operType = 2, businessType = "编辑党支部")
    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
        Long id = partyOrganizationVO.getId();
        if (null == id || 0 == id) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java
@@ -139,7 +139,7 @@
        return partyBuildingWestService.getPbOrgAllList(partyOrganizationVO);
    }
    @OperLog(operModul = "党支部管理", operType = 1)
    @OperLog(operModul = "党支部管理", operType = 1,businessType = "新增党支部")
    @ApiOperation(value = "新增党支部")
    @PostMapping("addpartyorganization")
    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
@@ -149,7 +149,7 @@
        return r;
    }
    @OperLog(operModul = "党支部管理", operType = 2)
    @OperLog(operModul = "党支部管理", operType = 2,businessType = "编辑党支部")
    @ApiOperation(value = "编辑党支部")
    @PostMapping("updatepartyorganization")
    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
@@ -160,7 +160,7 @@
        return partyBuildingWestService.updatePartyOrganization(partyOrganizationVO);
    }
    @OperLog(operModul = "党支部管理", operType = 3)
    @OperLog(operModul = "党支部管理", operType = 3,businessType = "启用、禁用党支部")
    @ApiOperation(value = "启用、禁用党支部")
    @PutMapping("resetpartyorganization")
    public R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
@@ -175,7 +175,7 @@
        return partyBuildingWestService.resetPartyOrganization(partyOrganizationVO);
    }
    @OperLog(operModul = "党支部管理", operType = 4)
    @OperLog(operModul = "党支部管理", operType = 3,businessType = "删除党支部")
    @ApiOperation(value = "删除党支部")
    @DeleteMapping("deletepartyorganization")
    public R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
@@ -186,7 +186,7 @@
        return partyBuildingWestService.deletePartyOrganization(partyOrganizationVO);
    }
    @OperLog(operModul = "党员管理", operType = 1)
    @OperLog(operModul = "党员管理", operType = 1,businessType = "新增党员")
    @ApiOperation(value = "新增党员")
    @PostMapping("addpartybuildingmember")
    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
@@ -199,7 +199,7 @@
        return r;
    }
    @OperLog(operModul = "党员管理", operType = 2)
    @OperLog(operModul = "党员管理", operType = 2,businessType = "编辑党员")
    @ApiOperation(value = "编辑党员")
    @PutMapping("updatepartybuildingmember")
    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -1,23 +1,5 @@
package com.panzhihua.community_backstage.api;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.panzhihua.common.exceptions.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
@@ -27,6 +9,8 @@
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.enums.*;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.listen.*;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
@@ -40,10 +24,24 @@
import com.panzhihua.common.utlis.SFTPUtil;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Api(tags = {"社区管理/基础数据库/实有人口"})
@@ -91,6 +89,7 @@
    @ApiOperation(value = "excel导入实有人口")
    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导入")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -99,7 +98,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(
                communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -132,6 +131,7 @@
    @ApiOperation(value = "excel导入吸毒人员")
    @PostMapping(value = "/serve/importDrug", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "吸毒人员导入")
    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -140,7 +140,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationDrugExcelListen comMngPopulationDrugExcelListen = new ComMngPopulationDrugExcelListen(
                communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationDrugExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -151,6 +151,7 @@
    @ApiOperation(value = "excel导入社区矫正人员")
    @PostMapping(value = "/serve/importCorrect", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "社区矫正人员导入")
    public R importCorrect(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -159,8 +160,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationCorrectExcelListen comMngPopulationCorrectExcelListen =
                new ComMngPopulationCorrectExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationCorrectExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationCorrectExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -171,6 +172,7 @@
    @ApiOperation(value = "excel导入重精人员")
    @PostMapping(value = "/serve/importMajor", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "重精人员导入")
    public R importMajor(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -179,7 +181,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationMajorExcelListen comMngPopulationMajorExcelListen = new ComMngPopulationMajorExcelListen(
                communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationMajorExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -190,6 +192,7 @@
    @ApiOperation(value = "excel导入邪教人员")
    @PostMapping(value = "/serve/importCult", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "邪教人员导入")
    public R importCult(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -198,7 +201,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationCultExcelListen comMngPopulationCultExcelListen = new ComMngPopulationCultExcelListen(
                communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationCultExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -209,7 +212,8 @@
    @ApiOperation(value = "excel导入刑释人员")
    @PostMapping(value = "/serve/importRehabilitation", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "刑释人员导入")
    public R importRehabilitation(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -218,8 +222,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationRehabilitationExcelListen comMngPopulationRehabilitationExcelListen =
                new ComMngPopulationRehabilitationExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationRehabilitationExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationRehabilitationExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -230,6 +234,7 @@
    @ApiOperation(value = "excel导入重点上访人员")
    @PostMapping(value = "/serve/importKey", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "重点上访人员导入")
    public R importKey(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -238,7 +243,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationKeyExcelListen mngPopulationKeyExcelListen = new ComMngPopulationKeyExcelListen(
                communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, mngPopulationKeyExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -249,7 +254,8 @@
    @ApiOperation(value = "excel导入服刑人员")
    @PostMapping(value = "/serve/importSentence", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "服刑人员导入")
    public R importSentence(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -258,8 +264,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationSentenceExcelListen comMngPopulationSentenceExcelListen =
                new ComMngPopulationSentenceExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationSentenceExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationSentenceExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -270,7 +276,8 @@
    @ApiOperation(value = "excel导入退役军人")
    @PostMapping(value = "/serve/importVeterans", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "退役军人导入")
    public R importVeterans(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -279,8 +286,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationVeteransExcelListen comMngPopulationVeteransExcelListen =
                new ComMngPopulationVeteransExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationVeteransExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationVeteransExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -291,7 +298,8 @@
    @ApiOperation(value = "excel导入残疾人")
    @PostMapping(value = "/serve/importDisability", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "残疾人导入")
    public R importDisability(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -300,8 +308,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationDisabilityExcelListen mngPopulationDisabilityExcelListen =
                new ComMngPopulationDisabilityExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationDisabilityExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, mngPopulationDisabilityExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -312,7 +320,8 @@
    @ApiOperation(value = "excel导入低保户")
    @PostMapping(value = "/serve/importLowSecurity", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "低保户导入")
    public R importLowSecurity(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -321,8 +330,8 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationLowSecurityExcelListen mngPopulationDisabilityExcelListen =
                new ComMngPopulationLowSecurityExcelListen(communityService, this.getCommunityId(),
                    this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    new ComMngPopulationLowSecurityExcelListen(communityService, this.getCommunityId(),
                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, mngPopulationDisabilityExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -334,6 +343,7 @@
    @ApiOperation(value = "excel导入高龄老人")
    @PostMapping(value = "/serve/importElder", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "高龄老人导入")
    public R importElder(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -355,6 +365,7 @@
    @ApiOperation(value = "excel导入养老金人员")
    @PostMapping(value = "/serve/importPension", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "养老金人员导入")
    public R importPension(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -382,6 +393,7 @@
     */
    @ApiOperation(value = "excel-确认导入实有人口")
    @PostMapping(value = "/import/confirm", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导入")
    public R listSavePopulationConfirm(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -390,7 +402,7 @@
        try {
            inputStream = file.getInputStream();
            ComMngPopulationConfirmServeExcelListen comMngPopulationConfirmServeExcelListen =
                new ComMngPopulationConfirmServeExcelListen(communityService, this.getCommunityId());
                    new ComMngPopulationConfirmServeExcelListen(communityService, this.getCommunityId());
            EasyExcel.read(inputStream, null, comMngPopulationConfirmServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -401,7 +413,7 @@
    @ApiOperation(value = "excel导入实有人口notoken")
    @PostMapping(value = "/serve/import/noToken", consumes = "multipart/*",
        headers = "content-type=multipart/form-date")
            headers = "content-type=multipart/form-date")
    public R downloadPopulationTemplateno(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -411,7 +423,7 @@
            Long communityId = Long.valueOf(request.getParameter("communityId"));
            inputStream = file.getInputStream();
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(
                communityService, communityId, this.getLoginUserInfo().getUserId(), stringRedisTemplate);
                    communityService, communityId, this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -422,6 +434,7 @@
    @ApiOperation(value = "编辑实有人口")
    @PostMapping(value = "/edit")
    @OperLog(operModul = "居民信息管理", operType = 2, businessType = "编辑")
    public R editPopulationInfo(@RequestBody ComMngPopulationEditDTO populationEditDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return communityService.editPopulation(populationEditDTO, loginUserInfo.getCommunityId());
@@ -474,7 +487,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
@@ -534,7 +547,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"吸毒人员".equals(TagsList.get(i))) {
@@ -594,7 +607,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"社区矫正".equals(TagsList.get(i))) {
@@ -654,7 +667,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"精神障碍患者".equals(TagsList.get(i))) {
@@ -714,7 +727,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"邪教人员".equals(TagsList.get(i))) {
@@ -774,7 +787,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"刑满释放".equals(TagsList.get(i))) {
@@ -834,7 +847,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"重点人员".equals(TagsList.get(i))) {
@@ -894,7 +907,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"服刑人员".equals(TagsList.get(i))) {
@@ -954,7 +967,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"退役军人".equals(TagsList.get(i))) {
@@ -1014,7 +1027,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"残疾人".equals(TagsList.get(i))) {
@@ -1074,7 +1087,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"低保户".equals(TagsList.get(i))) {
@@ -1134,7 +1147,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"高龄老人".equals(TagsList.get(i))) {
@@ -1194,7 +1207,7 @@
                    // 查询当前社区标签列表
                    R tagsResult = userService.listTags();
                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        List<String> TagsList = (List<String>) tagsResult.getData();
                        // 动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            if (!"养老金居民".equals(TagsList.get(i))) {
@@ -1230,8 +1243,9 @@
    @ApiOperation(value = "批量删除实有人口")
    @PostMapping("/delete")
    @OperLog(operModul = "居民信息管理", operType = 3, businessType = "批量删除实有人口")
    public R deletePopulations(@RequestBody List<Long> ids) {
        return communityService.deletePopulations(ids,this.getCommunityId());
        return communityService.deletePopulations(ids, this.getCommunityId());
    }
    private List<List<String>> headDataFilling() {
@@ -2653,6 +2667,7 @@
    @ApiOperation(value = "实有人口-数据导出")
    @PostMapping("/data/export")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导出")
    public R dataExportPopulation(@RequestBody List<Long> Ids) {
        // 获取登陆用户
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
@@ -2678,23 +2693,23 @@
                            R r = communityService.getVillageById(Ids.get(0));
                            if (R.isOk(r)) {
                                populList = JSON.parseArray(
                                    JSON.toJSONString(
                                        communityService.getPopulationListByVillageId(Ids.get(0)).getData()),
                                    ComMngPopulationVO.class);
                                        JSON.toJSONString(
                                                communityService.getPopulationListByVillageId(Ids.get(0)).getData()),
                                        ComMngPopulationVO.class);
                            } else {
                                populList = JSON.parseArray(
                                    JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
                                    ComMngPopulationVO.class);
                                        JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
                                        ComMngPopulationVO.class);
                            }
                        } else {
                            populList =
                                JSON.parseArray(JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
                                    ComMngPopulationVO.class);
                                    JSON.parseArray(JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
                                            ComMngPopulationVO.class);
                        }
                    } else {// 导出全部
                        populList = JSON.parseArray(
                            JSON.toJSONString(communityService.getPopulationListByCommunityId(communityId).getData()),
                            ComMngPopulationVO.class);
                                JSON.toJSONString(communityService.getPopulationListByCommunityId(communityId).getData()),
                                ComMngPopulationVO.class);
                    }
                    List<ComMngPopulationExcelVo> populationExcelVoList = new ArrayList<>();
@@ -2706,7 +2721,7 @@
                            populationExcelVo.setSex(PopulSexEnum.getCnDescByName(popul.getSex()));
                            // 设置政治面貌
                            populationExcelVo.setPoliticalOutlook(
                                PopulPoliticalOutlookEnum.getCnDescByName(popul.getPoliticalOutlook()));
                                    PopulPoliticalOutlookEnum.getCnDescByName(popul.getPoliticalOutlook()));
                            // 设置是否租住
                            // populationExcelVo.setIsRent(PopulIsOkEnum.getCnDescByName(popul.getIsRent()));
                            // 设置本地或外地
@@ -2715,7 +2730,7 @@
                            populationExcelVo.setMarriage(PopulMarriageEnum.getCnDescByName(popul.getMarriage()));
                            // 设置文化程度
                            populationExcelVo
                                .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(popul.getCultureLevel()));
                                    .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(popul.getCultureLevel()));
                            // 设置年龄
                            if (StringUtils.isNotEmpty(popul.getBirthday())) {
                                populationExcelVo.setAge(AgeUtils.getAgeFromBirthTimes(popul.getBirthday()));
@@ -2729,8 +2744,8 @@
                    }
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExcelVo.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("实有人口导出数据").build();
                    excelWriter.write(populationExcelVoList, writeSheet);
                    excelWriter.finish();
@@ -2783,9 +2798,9 @@
                InputStream inputStream = null;
                try {
                    List<ComMngPopulationVO> populList = null;
                        populList = JSON.parseArray(
                                JSON.toJSONString(communityService.exportOld(comMngPopulationVO).getData()),
                                ComMngPopulationVO.class);
                    populList = JSON.parseArray(
                            JSON.toJSONString(communityService.exportOld(comMngPopulationVO).getData()),
                            ComMngPopulationVO.class);
                    List<ComMngPopulationExcelVo> populationExcelVoList = new ArrayList<>();
                    if (populList != null && populList.size() > 0) {
                        for (ComMngPopulationVO popul : populList) {
@@ -2865,8 +2880,7 @@
    /**
     * 查询房屋二级级联菜单
     *
     * @param cascadeHouseDTO
     *            请求参数
     * @param cascadeHouseDTO 请求参数
     * @return 菜单列表
     */
    @ApiOperation(value = "房屋级联菜单查询")
@@ -2879,8 +2893,7 @@
    /**
     * 查询房屋二级级联菜单后台
     *
     * @param cascadeHouseDTO
     *            请求参数
     * @param cascadeHouseDTO 请求参数
     * @return 菜单列表
     */
    @ApiOperation(value = "房屋级联菜单查询")
@@ -2965,8 +2978,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("实有人口错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3023,8 +3036,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationDrugMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("吸毒人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3081,8 +3094,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationCorrectMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("社区矫正人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3139,8 +3152,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationMajorMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("重精人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3197,8 +3210,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationCultMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("邪教人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3255,8 +3268,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationRehabilitationMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("刑释人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3313,8 +3326,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationKeyMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("重点上访人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3371,8 +3384,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationSentenceMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("服刑人员错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3429,8 +3442,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationVeteransMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("退役军人错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3487,8 +3500,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationDisabilityMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("残疾人错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
@@ -3545,8 +3558,8 @@
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationLowSecurityMistakeExcelVO.class)
                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("低保户错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java
@@ -39,4 +39,7 @@
     * @date 2022-09-07 11:23:52
     */
    List<ComEventTransferRecord> listByComEventTransferRecord(@Param("comEventTransferRecord") ComEventTransferRecord comEventTransferRecord);
    int insertSelective(ComEventTransferRecord comEventTransferRecord);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java
@@ -179,4 +179,7 @@
    @ApiModelProperty("专家头像")
    @TableField(exist = false)
    private String expertAvatar;
    @ApiModelProperty("社区id")
    @TableField(exist = false)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.generator.SnowflakeGenerator;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -79,12 +80,25 @@
    public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
        if (nonNull(comEvent.getUserType())){
            if (comEvent.getUserType().equals(1)){
                //个人账号权限
                comEvent.setRequestUserId(loginUserInfoVO.getUserId());
            }else if (comEvent.getUserType().equals(2)){
            }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(11)){
                //专家账号权限
                ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
                if (nonNull(expert)){
                    comEvent.setSpecialistId(expert.getId());
                }
            }else if (loginUserInfoVO.getType().equals(12)){
                //行业分中心权限
                comEvent.setUserType(3);
                //获取行业分中心id
                ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
                if (nonNull(center)){
                    comEvent.setCenterId(center.getId().toString());
                }
            }else if (loginUserInfoVO.getType().equals(3)){
                //社区后台权限
                comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
            }
        }
        IPage<ComEvent> list = baseMapper.pageByComEvent(comEvent, pagination);
@@ -100,7 +114,10 @@
//            }
            ComMediateType category = commediateTypeService.getById(comEvent1.getEventCategory());
            comEvent1.setEventCategoryName(category.getName());
            comEvent1.setExpertAvatar(comSanShuoExpertService.getById(comEvent1.getSpecialistId()).getAvatar());
            ComSanshuoExpert byId = comSanShuoExpertService.getById(comEvent1.getSpecialistId());
            if (nonNull(byId)){
                comEvent1.setExpertAvatar(byId.getAvatar());
            }
        });
        return R.ok(list);
    }
@@ -244,7 +261,7 @@
        comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
        comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
        //雪花id失效,使用eventId随机生成
        comEventTransferRecord.setId((NumberUtil.min(comEvent.getId(), RandomUtil.randomInt(0,9999 ))));
        comEventTransferRecord.setId(Snowflake.getId());
        //saveEventImageList(comEvent.getImages(),comEvent.getId(),comEventTransferRecord.getId(),4);
        saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId(),comEventTransferRecord.getId(),4);
        comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
@@ -283,12 +300,23 @@
        comEventDetailVO.setImages(comEventRequestImageVO);
        map.put("specter", specter);
        map.put("eventDetail", comEventDetailVO);
        List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id));
        List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id).orderByAsc(ComEventTransferRecord::getCreateAt));
        transferRecord.forEach(comEventTransferRecord -> {
            List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent.getId()).notIn(ComEventResource::getStatus,(1)).eq(ComEventResource::getTransferId, comEventTransferRecord.getId()));
            List<ComEventRequestImageVO> ImageVO = CopyUtil.deepCopyListObject(list, ComEventRequestImageVO.class);
            comEventTransferRecord.setImages(ImageVO);
            if (comEventTransferRecord.getEventStatus().equals(7)){
                map.put("archiveLog", comEventTransferRecord);
            }
        });
        //迭代器迭代删除归档记录
        Iterator<ComEventTransferRecord> iterator = transferRecord.iterator();
        while (iterator.hasNext()){
            ComEventTransferRecord comEventTransferRecord = iterator.next();
            if (comEventTransferRecord.getEventStatus().equals(7)){
                iterator.remove();
            }
        }
        map.put("transferLog", transferRecord);
        List<ComEventResource> resource = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
                .eq(ComEventResource::getStatus, 5));
@@ -362,8 +390,8 @@
        comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
        comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
        comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
        comEventTransferRecord.setId((NumberUtil.min(comEvent.getId(), RandomUtil.randomInt(0,9999 ))));
        saveEventImageList(comEventTransferRecord.getImages(), comEvent.getId(), comEventTransferRecord.getId(), 5);
        comEventTransferRecord.setId(Snowflake.getId());
        saveEventImageList(comEventArchiveVO.getImages(), comEvent.getId(), comEventTransferRecord.getId(), 5);
        return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java
@@ -7,6 +7,7 @@
import com.panzhihua.common.constants.ReturnMsgConstants;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_community.dao.ComEventMapper;
import com.panzhihua.service_community.dao.ComEventTransferRecordMapper;
import com.panzhihua.service_community.entity.ComEventTransferRecord;
import com.panzhihua.service_community.service.IComEventTransferRecordService;
@@ -14,6 +15,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -31,6 +33,8 @@
@Service("comEventTransferRecordService")
public class ComEventTransferRecordServiceImpl extends ServiceImpl<ComEventTransferRecordMapper, ComEventTransferRecord> implements IComEventTransferRecordService {
    @Resource
    private ComEventTransferRecordMapper comEventTransferRecordMapper;
    @Override
    public R pageByComEventTransferRecord(ComEventTransferRecord comEventTransferRecord, Page pagination) {
        IPage<ComEventTransferRecord> list = baseMapper.pageByComEventTransferRecord(comEventTransferRecord, pagination);
@@ -56,13 +60,14 @@
            comEventTransferRecord.setId(Snowflake.getId());
        }
        comEventTransferRecord.setCreateAt(new Date());
        boolean flag = save(comEventTransferRecord);
        if (!flag) {
        int i = comEventTransferRecordMapper.insertSelective(comEventTransferRecord);
        if (!(i>0)) {
            return R.fail(ReturnMsgConstants.DATA_EXIST);
        }
        return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R updateComEventTransferRecord(ComEventTransferRecord comEventTransferRecord) {
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml
@@ -84,10 +84,15 @@
            <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="listByComEvent" resultType="com.panzhihua.service_community.entity.ComEvent">
        SELECT <include refid="columns" />
        FROM com_sanshuo_event_info
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml
@@ -33,7 +33,7 @@
        id,event_id,parents_transfer_event_id,from_type,from_id,from_name,from_user_id,to_type,to_id,to_name,to_user_id,save,process_result,process_result_data,process_date,process_by,process_by_name,process_type,create_at,specialist_id,specialist_org,specialist_level,specialist_name,event_result,event_status
    </sql>
    <select id="pageByComEventTransferRecord" resultType="com.panzhihua.service_community.entity.ComEventTransferRecord">
    <select id="pageByComEventTransferRecord" resultType="com.panzhihua.service_community.entity.ComEventTransferRecord">
        SELECT <include refid="columns" />
        FROM com_sanshuo_event_transfer_record
    </select>
@@ -43,4 +43,181 @@
        FROM com_sanshuo_event_transfer_record
    </select>
    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComEventTransferRecord">
    insert into com_sanshuo_event_transfer_record
    <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="id != null">
            id,
        </if>
        <if test="eventId != null">
            event_id,
        </if>
        <if test="parentsTransferEventId != null">
            parents_transfer_event_id,
        </if>
        <if test="fromType != null">
            from_type,
        </if>
        <if test="fromId != null">
            from_id,
        </if>
        <if test="fromName != null">
            from_name,
        </if>
        <if test="fromUserId != null">
            from_user_id,
        </if>
        <if test="toType != null">
            to_type,
        </if>
        <if test="toId != null">
            to_id,
        </if>
        <if test="toName != null">
            to_name,
        </if>
        <if test="toUserId != null">
            to_user_id,
        </if>
        <if test="save != null">
            `save`,
        </if>
        <if test="processResult != null">
            process_result,
        </if>
        <if test="processResultData != null">
            process_result_data,
        </if>
        <if test="processDate != null">
            process_date,
        </if>
        <if test="processBy != null">
            process_by,
        </if>
        <if test="processByName != null">
            process_by_name,
        </if>
        <if test="processType != null">
            process_type,
        </if>
        <if test="createAt != null">
            create_at,
        </if>
        <if test="specialistId != null">
            specialist_id,
        </if>
        <if test="specialistOrg != null">
            specialist_org,
        </if>
        <if test="specialistLevel != null">
            specialist_level,
        </if>
        <if test="specialistName != null">
            specialist_name,
        </if>
        <if test="eventResult != null">
            event_result,
        </if>
        <if test="eventStatus != null">
            event_status,
        </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
        <if test="id != null">
            #{id,jdbcType=BIGINT},
        </if>
        <if test="eventId != null">
            #{eventId,jdbcType=BIGINT},
        </if>
        <if test="parentsTransferEventId != null">
            #{parentsTransferEventId,jdbcType=BIGINT},
        </if>
        <if test="fromType != null">
            #{fromType,jdbcType=TINYINT},
        </if>
        <if test="fromId != null">
            #{fromId,jdbcType=BIGINT},
        </if>
        <if test="fromName != null">
            #{fromName,jdbcType=VARCHAR},
        </if>
        <if test="fromUserId != null">
            #{fromUserId,jdbcType=BIGINT},
        </if>
        <if test="toType != null">
            #{toType,jdbcType=TINYINT},
        </if>
        <if test="toId != null">
            #{toId,jdbcType=BIGINT},
        </if>
        <if test="toName != null">
            #{toName,jdbcType=VARCHAR},
        </if>
        <if test="toUserId != null">
            #{toUserId,jdbcType=BIGINT},
        </if>
        <if test="save != null">
            #{save,jdbcType=BIT},
        </if>
        <if test="processResult != null">
            #{processResult,jdbcType=VARCHAR},
        </if>
        <if test="processResultData != null">
            #{processResultData,jdbcType=VARCHAR},
        </if>
        <if test="processDate != null">
            #{processDate,jdbcType=TIMESTAMP},
        </if>
        <if test="processBy != null">
            #{processBy,jdbcType=BIGINT},
        </if>
        <if test="processByName != null">
            #{processByName,jdbcType=VARCHAR},
        </if>
        <if test="processType != null">
            #{processType,jdbcType=INTEGER},
        </if>
        <if test="createAt != null">
            #{createAt,jdbcType=TIMESTAMP},
        </if>
        <if test="specialistId != null">
            #{specialistId,jdbcType=BIGINT},
        </if>
        <if test="specialistOrg != null">
            #{specialistOrg,jdbcType=VARCHAR},
        </if>
        <if test="specialistLevel != null">
            #{specialistLevel,jdbcType=VARCHAR},
        </if>
        <if test="specialistName != null">
            #{specialistName,jdbcType=VARCHAR},
        </if>
        <if test="eventResult != null">
            #{eventResult,jdbcType=TINYINT},
        </if>
        <if test="eventStatus != null">
            #{eventStatus,jdbcType=TINYINT},
        </if>
    </trim>
</insert>
    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComEventTransferRecord" useGeneratedKeys="true">
    insert into com_sanshuo_event_transfer_record (id,event_id, parents_transfer_event_id, from_type,
      from_id, from_name, from_user_id,
      to_type, to_id, to_name,
      to_user_id, `save`, process_result,
      process_result_data, process_date, process_by,
      process_by_name, process_type, create_at,
      specialist_id, specialist_org, specialist_level,
      specialist_name, event_result, event_status
      )
    values (#{id},#{eventId,jdbcType=BIGINT}, #{parentsTransferEventId,jdbcType=BIGINT}, #{fromType,jdbcType=TINYINT},
      #{fromId,jdbcType=BIGINT}, #{fromName,jdbcType=VARCHAR}, #{fromUserId,jdbcType=BIGINT},
      #{toType,jdbcType=TINYINT}, #{toId,jdbcType=BIGINT}, #{toName,jdbcType=VARCHAR},
      #{toUserId,jdbcType=BIGINT}, #{save,jdbcType=BIT}, #{processResult,jdbcType=VARCHAR},
      #{processResultData,jdbcType=VARCHAR}, #{processDate,jdbcType=TIMESTAMP}, #{processBy,jdbcType=BIGINT},
      #{processByName,jdbcType=VARCHAR}, #{processType,jdbcType=INTEGER}, #{createAt,jdbcType=TIMESTAMP},
      #{specialistId,jdbcType=BIGINT}, #{specialistOrg,jdbcType=VARCHAR}, #{specialistLevel,jdbcType=VARCHAR},
      #{specialistName,jdbcType=VARCHAR}, #{eventResult,jdbcType=TINYINT}, #{eventStatus,jdbcType=TINYINT}
      )
  </insert>
</mapper>
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);
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -304,10 +304,16 @@
     */
    @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 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) {
@@ -3634,16 +3640,16 @@
                }
                switch (orderStatus){
                    case 3 : status="已分配车美";
                        WxUtil.sendUuWash3(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"sU18zbyzxFldHAdOREaQCR5uq_uMvCKTmGtklO1xw-w");
                        WxUtil.sendUuWash3(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
                        break;
                    case 4 : status="车美已开始服务";
                        WxUtil.sendUuWash4(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                        break;
                    case 6 : status="订单确认完成";
                        WxUtil.sendUuWash6(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"k1aV97H3pDNNcNcDTeZBD9jQemNDADnRE801HhTXweI");
                        WxUtil.sendUuWash6(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
                        break;
                    case 9 : status="订单已取消";
                        WxUtil.sendUuWash(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"9_2FhQPDxZoUqmAuIZ1L1zjjYXokdNvu7A0gzKfvruI");
                        WxUtil.sendUuWash(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
                        break;
                }
            }
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>