jiangping
2023-12-05 6e873adc94aaeb4f918cf4fd45f7bdf936f45db4
羚羊数据导入
已添加1个文件
已修改12个文件
261 ■■■■■ 文件已修改
server/src/main/java/doumeemes/api/common/AntelopeController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/biz/system/impl/SystemUserBizImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/config/shiro/ShiroConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/core/utils/dingding/LingyangUtil.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/dto/AutoLoginUserDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/model/BizLingyang.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/model/Company.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/LingYangUserDto.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/CompanyExtService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/CompanyExtServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/SystemLoginService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/common/AntelopeController.java
@@ -21,8 +21,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Iterator;
import java.util.Map;
/**
@@ -33,10 +38,8 @@
@RestController
@RequestMapping("/lingyang")
public class AntelopeController extends BaseController {
    @Autowired
    private SystemLoginService systemLoginService;
    /**
     * @author Eva.Caesar Liu
     * @date 2022/04/18 18:12
@@ -60,4 +63,24 @@
    public ApiResponse<String> loginDemo(  @RequestParam("token") String token , HttpServletRequest request) throws Exception{
        return ApiResponse.success(systemLoginService.loginLingYangDemo( token, request));
    }
    @ApiOperation(value = "导入", notes = "导入", httpMethod = "POST", position = 6)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
    })
    @PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
    public ApiResponse importmaterial(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
        CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
        String r = null;
        if (multipartResovler.isMultipart(request)) {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            Iterator<String> it = multipartRequest.getFileNames();
            while (it.hasNext()) {
                MultipartFile file = multipartRequest.getFile((String) it.next());// file
               r = systemLoginService.importLyAuth(file,request);
                break;
            }
        }
        return ApiResponse.success( r);
    }
}
server/src/main/java/doumeemes/biz/system/impl/SystemUserBizImpl.java
@@ -383,6 +383,9 @@
            cu.setUserId(userId);
        }
        companyUserService.create(cu);
        CompanyUserExtListVO userModel = new CompanyUserExtListVO();
        BeanUtils.copyProperties(cu, userModel);
        com.setUserModel(userModel);
        if(StringUtils.equals(userParam.getManager(),Constants.ONE+"")){
            //如果是管理员角色,绑定默认角色
            SystemRole sr = new SystemRole();
server/src/main/java/doumeemes/config/shiro/ShiroConfig.java
@@ -105,6 +105,7 @@
        map.put("/dingding/getDingdingCorpId", "anon");
        map.put("/lingyang/login", "anon");
        map.put("/lingyang/loginDemo", "anon");
        map.put("/lingyang/importBatch", "anon");
        map.put("/edgp/**", "anon");
        // - æ”¾è¡Œswagger
        map.put("/doc.html", "anon");
server/src/main/java/doumeemes/core/utils/dingding/LingyangUtil.java
@@ -6,6 +6,9 @@
import com.iflytek.antelope.other.client.sdk.UserInfoSdk;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.util.Scanner;
@Slf4j
public class LingyangUtil {
@@ -19,10 +22,49 @@
    public static void main(String[] args) {
        JSONObject j = new JSONObject();
        j.put(LINGYANG_AESKEY,"vczfadepbqrdcdae");
        j.put(LINGYANG_APPKEY,"rqwryznqsl");
        j.put(LINGYANG_SECRET,"b2da06d8bb4eae0f0701649571640a203e80ccdc");
        System.out.println(j.toJSONString());
//        j.put(LINGYANG_AESKEY,"vczfadepbqrdcdae");
//        j.put(LINGYANG_APPKEY,"rqwryznqsl");
//        j.put(LINGYANG_SECRET,"b2da06d8bb4eae0f0701649571640a203e80ccdc");
//        System.out.println(j.toJSONString());
        try {
            File file = new File("D:\\doumeeplant.log");
            FileWriter out = new FileWriter(new File("D:\\out1.log"));
            BufferedWriter writer = new BufferedWriter(out);
            BufferedReader br = new BufferedReader(new FileReader(file));
                String line;
                int lineNum = 1;
                int num = 1;
                int tNum = -1;
                while ((line = br.readLine()) != null) {
                    if(line.contains("\"manager\":\"0\"") ){num++;
                        tNum++;
                        writer.write(line.replace("结果:",""));
writer.newLine();
                        System.out.printf("[%d]: %s%n", lineNum, line); // è¾“出这一行
                    }
                   /* if (line.contains("羚羊平台获取用户信息")) { // å¦‚果这一行包含关键词
                        System.out.printf("[%d]: %s%n", lineNum, line); // è¾“出这一行
                        num++;
                        tNum++;
                    }else  if(tNum >=0 && tNum <=2){
                        System.out.printf("[%d]: %s%n", lineNum, line); // è¾“出这一行
                        tNum ++;
                    }
                    if(tNum ==3){
                        tNum=-1;
                    }*/
                    lineNum++;
                }
                out.close();
                System.out.println(num);
        }catch (Exception e){
            e.getMessage();
        }
    }
    /*public  LingyangUtil(String param){
        JSONObject p = JSONObject.parseObject(param);
@@ -52,4 +94,5 @@
        return  null;
    }
}
server/src/main/java/doumeemes/dao/business/dto/AutoLoginUserDTO.java
@@ -1,9 +1,11 @@
package doumeemes.dao.business.dto;
import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -14,13 +16,22 @@
@ApiModel("三方平台授权登录用户信息")
public class AutoLoginUserDTO {
    private String userId;
    @Excel(name="企业名称",orderNum ="0")
    private String name;
    @Excel(name="手机号",orderNum ="3")
    private String phone;
    private String orgName;
    @Excel(name="信用代码",orderNum ="1")
    private String creditCode;
    private String userinfo;
    private String manager;
    private String remark;
    private int origin;
    private String ordercode;
    @Excel(name="时间",orderNum ="2",databaseFormat ="yyyy/dd/MM HH:mm" )
    private Date date;
}
server/src/main/java/doumeemes/dao/business/model/BizLingyang.java
@@ -41,6 +41,9 @@
    @ApiModelProperty(value = "企业统一信用代码")
    @ExcelColumn(name="企业统一信用代码")
    private String creditCode;
    @ApiModelProperty(value = "羚羊订单号")
    @ExcelColumn(name="羚羊订单号")
    private String orderCode;
    @ApiModelProperty(value = "应用唯一标识")
    @ExcelColumn(name="应用唯一标识")
server/src/main/java/doumeemes/dao/business/model/Company.java
@@ -86,6 +86,9 @@
    @ApiModelProperty(value = "经营范围")
    @ExcelColumn(name="经营范围")
    private String businessScope;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "营业期限")
    @ExcelColumn(name="营业期限")
server/src/main/java/doumeemes/dao/ext/dto/LingYangUserDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package doumeemes.dao.ext.dto;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.iflytek.antelope.other.client.dto.resp.OrgMemberDTO;
import com.iflytek.antelope.other.client.dto.resp.OrgOrderDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author T14
 */
@Data
@ApiModel("企业登录统计查询类")
public class LingYangUserDto {
    private String userId;
    @Excel(name="企业名称",orderNum ="1")
    private String name;
    @Excel(name="手机号",orderNum ="3")
    private String phone;
    private String orgName;
    private String creditCode;
    private String manager;
    private List<OrgMemberDTO> orgMembers;
    private List<OrgOrderDTO> orgOrders;
    private Integer accountStatus;
    private String rId;
    @Excel(name="订单号",orderNum ="2")
    private String orderCode;
    @Excel(name="时间",orderNum ="4")
    private Date date;
}
server/src/main/java/doumeemes/service/ext/CompanyExtService.java
@@ -11,6 +11,7 @@
import doumeemes.dao.ext.vo.CompanyInfoListVO;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
 * ä¼ä¸šä¿¡æ¯Service定义
@@ -31,7 +32,7 @@
    String getDingdingProCode(Integer companyId);
    String getDingdingTicekt(Integer companyId);
    Company createByLingyang(UserDTO user,String pwd);
    Company createByLingyang(UserDTO user, Date date,String remark, String pwd);
    Integer createByPlat(CompanyInitDataDTO user, HttpServletRequest request);
    Integer updateByPlat(CompanyInitDataDTO user, HttpServletRequest request);
server/src/main/java/doumeemes/service/ext/impl/CompanyExtServiceImpl.java
@@ -331,7 +331,7 @@
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Company createByLingyang(UserDTO user, String pwd){
    public Company createByLingyang(UserDTO user,Date date,String remark, String pwd){
        AutoLoginUserDTO param = new AutoLoginUserDTO();
        param.setOrgName(user.getOrgName());
        param.setName(user.getName());
@@ -341,6 +341,8 @@
        param.setManager(user.getManager());
        param.setUserinfo(JSONObject.toJSONString(user));
        param.setOrigin(Constants.COMPANY_ORIGIN.lingyang);
        param.setDate(date!=null ?date:new Date());
        param.setRemark(remark);
       return createByThirdParam(param,pwd);
    }
    public Company createByThirdParam(AutoLoginUserDTO user, String pwd){
@@ -356,13 +358,15 @@
                //如果企业信息为空,新增企业信息
                com = new Company();
                com.setDeleted(Constants.ZERO);
                com.setCreateTime(new Date());
                com.setCreateTime(user.getDate()!=null?user.getDate():new Date());
                com.setIsNew(Constants.ONE);
//                com.setOrigin(Constants.THREE);
                com.setCreditCode(user.getCreditCode());
                com.setName(user.getOrgName());
                com.setLingyangInfo(user.getUserinfo());
                com.setLegalPersonPhone(user.getPhone());
                //测试羚羊手动导入(标记)
                com.setRemark(user.getRemark());
                //默认限制人员10
                if(user.getOrigin() == Constants.COMPANY_ORIGIN.lingyang){
                    int userNum = 10;
server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java
@@ -235,9 +235,9 @@
                        .eq("MATERIAL_ID",w.getMaterialId())
                        .eq("DEPART_ID",w.getDepartId())
                        .eq("DELETED",Constants.ZERO)
                        .eq("STATUS",Constants.ONE)
//                        .eq("STATUS",Constants.ONE)
                );
                w.setPapercode(b.getPapercode());
                w.setPapercode(b!=null ?b.getPapercode():null);
              /*  RouteProcedure currentRouteProcedure   = routeProcedureExtMapper.selectOne(new QueryWrapper<RouteProcedure>()
                        .eq("ROUTE_ID",b.getRouteId())
server/src/main/java/doumeemes/service/system/SystemLoginService.java
@@ -3,6 +3,7 @@
import com.iflytek.antelope.other.client.dto.resp.UserDTO;
import doumeemes.dao.business.dto.CompanyInitDataDTO;
import doumeemes.dao.system.dto.LoginDTO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -28,4 +29,6 @@
    String loginEdgpDemo(String token, HttpServletRequest request );
    String getDingdingCorpId(Integer companyId);
    String importLyAuth(MultipartFile file,HttpServletRequest request) ;
}
server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java
@@ -1,6 +1,7 @@
package doumeemes.service.system.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iflytek.antelope.other.client.dto.resp.UserDTO;
import doumeemes.biz.system.SystemDictDataBiz;
import doumeemes.config.shiro.ShiroToken;
@@ -13,10 +14,16 @@
import doumeemes.core.utils.dingding.LingyangUtil;
import doumeemes.core.utils.edpg.EdgpServerUtil;
import doumeemes.core.utils.edpg.bean.AppUserInfoModel;
import doumeemes.core.utils.excel.EasyExcelUtil;
import doumeemes.dao.business.BizLingyangMapper;
import doumeemes.dao.business.dto.AutoLoginUserDTO;
import doumeemes.dao.business.model.BizLingyang;
import doumeemes.dao.business.model.Company;
import doumeemes.dao.business.model.CompanyUser;
import doumeemes.dao.business.model.Material;
import doumeemes.dao.ext.CompanyExtMapper;
import doumeemes.dao.ext.CompanyUserExtMapper;
import doumeemes.dao.ext.dto.LingYangUserDto;
import doumeemes.dao.ext.dto.QueryCompanyUserExtDTO;
import doumeemes.dao.ext.vo.CompanyExtListVO;
import doumeemes.dao.ext.vo.CompanyUserExtListVO;
@@ -31,13 +38,18 @@
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Random;
@Slf4j
@Service
@@ -54,6 +66,8 @@
    @Autowired
    private CompanyUserExtMapper companyUserExtMapper;
    @Autowired
    private BizLingyangMapper bizLingyangMapper;
    @Autowired
    private CompanyExtMapper companyExtMapper;
@@ -173,6 +187,98 @@
            systemLoginLogService.create(loginLog);
            throw  ee;
        }
    }
//    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    @Override
    public String importLyAuth(MultipartFile file,HttpServletRequest request) {
        //解析excel
        List<AutoLoginUserDTO> materialList = EasyExcelUtil.importExcel(file, 0, 1, AutoLoginUserDTO.class);
        if (materialList == null || materialList.size() == 0) {
            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!");
        }
        int num = 0;
        for(AutoLoginUserDTO u : materialList){
            UserDTO user = new UserDTO();
            BeanUtils.copyProperties(u, user);
            user.setManager("1");
            user.setOrgName(user.getName());
            Date date = null;
            if(StringUtils.isBlank(user.getName())){
                continue;
            }
            try {
                  date = new Date(u.getDate().getTime()+ (long) Math.random()*60*1000);
            }catch (Exception e){
            }
            boolean r = logiglingyangModel(user,date,"lingyang_import",request,false);
            num = r?(num+1):num;
        }
        return  "成功导入【"+num+"】个,失败【"+(materialList.size()-num)+"】个";
    }
    public  boolean logiglingyangModel(UserDTO  user,Date date,String remark, HttpServletRequest request,boolean isDemo){
        SystemLoginLog loginLog = new SystemLoginLog();
        loginLog.setLoginUsername("lingyangAuto_"+JSONObject.toJSONString(user));
        loginLog.setLoginTime(date);
        loginLog.setOrgin(Constants.USER_LOGIN_ORIGIN.lingyang);
        loginLog.setSystemVersion(systemVersion);
        loginLog.setIp(Utils.User_Client.getIP(request));
        loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
        loginLog.setPlatform(Utils.User_Client.getPlatform(request));
        loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
        loginLog.setOsInfo(Utils.User_Client.getOS(request));
        loginLog.setServerIp(Utils.Server.getIP());
        String mobile = null;
        if(user == null){
           return false;
        }
        //查询企业信息
        Company qc = new Company();
        qc.setDeleted(Constants.ZERO);
        qc.setCreditCode(user.getCreditCode());
        qc.setOrigin(Constants.COMPANY_ORIGIN.lingyang);
        //根据行政区代码查询企业信息
        if(companyExtMapper.selectOne(new QueryWrapper<>(qc).last(" limit 1") )!=null){
            return false;
        }
        Company com =  companyExtService.createByLingyang(user,date,remark,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode());
        if(com == null){
            return false;
        }
        //企业用户信息
        CompanyUserExtListVO model =com.getUserModel();
        if(model != null && StringUtils.isNotBlank(model.getPhone())){
            mobile=model.getPhone();
        }else{
            //获取羚羊手机号
            mobile= user.getPhone();
        }
        loginLog.setLoginUsername(mobile);
        loginLog.setUserId(model.getUserId());
        loginLog.setCompanyId(com.getId());
        loginLog.setCompanyUserId(model.getId());
        loginLog.setSuccess(Boolean.TRUE);
        systemLoginLogService.create(loginLog);
        CompanyUser cu = new CompanyUser();
        cu.setLingyangUserid(user.getUserId());
        cu.setId(model.getId());
        cu.setName(user.getName());//同步羚羊的名字
        cu.setUpdateTime(new Date());
        //更新用户绑定的钉钉信息
        companyUserExtMapper.updateById(cu);
        BizLingyang biz = new BizLingyang();
        biz.setActionTimes(1);
        biz.setCreateTime(date);
        biz.setCreditCode(user.getCreditCode());
        biz.setCompanyId(com.getId());
        biz.setAppKey(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM,Constants.LINGYANG_APPKEY ).getCode());
        biz.setUserPhone(user.getPhone());
//        biz.setRemark(remark);
        bizLingyangMapper.insert(biz);
        return true;
    }
    @Override
    public   String getDingdingCorpId(Integer companyId){
@@ -434,7 +540,7 @@
                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
            }
            //查询企业信息
            Company com =  companyExtService.createByLingyang(user,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode());
            Company com =  companyExtService.createByLingyang(user,new  Date(),null,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode());
            if(com == null){
                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
            }