Browse Source

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 6 months ago
parent
commit
c64963ed45

+ 1 - 6
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java

@@ -102,12 +102,7 @@ public class WorkerLogic {
                 workerReminds.add(workerRemind);
             }
 
-            if (websitUser.getExamineStatus().equals(ExamineWorkerStatusEnum.WAIT_WORKER.getKey()) &&
-                    workerPolicyService.lambdaQuery().eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
-                            .in(WorkerPolicy::getStatus,"DSX","BZZ")
-                            .eq(WorkerPolicy::getPolicyType,"AC")
-                            .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
-                            .count() > 0) {
+            if (websitUser.getExamineStatus().equals(ExamineWorkerStatusEnum.WAIT.getKey())) {
 
                 AdminWebsit adminWebsit = adminWebsitService.getById(websitUser.getWebsitId());
 

+ 1 - 0
mall-server-api/src/main/java/com/gree/mall/manager/constant/Constant.java

@@ -110,6 +110,7 @@ public class Constant {
         public static final String PARTS_REFUND = "jsm:sxb:lock:parts:refund";
         public static final String FDD_BATCH_SIGN_NOTIFY = "jsm:sxb:fdd:batch:sign:notify:";
         public static final String TOKEN_GREE = "SETTLE:TOKEN:GREE";
+        public final static String TOKEN_GREE_V3 ="SETTLE:TOKEN:GREE:V3";
     }
     public class ChatMessage {
         public final static String MSG_TYPE_DOC = "docmsg";

+ 620 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/common/GreeLogic.java

@@ -0,0 +1,620 @@
+/*
+package com.gree.mall.manager.controller.common;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.utils.StringUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gree.mall.manager.constant.Constant;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.utils.RedisUtil;
+import com.gree.mall.manager.utils.http.HttpUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+*/
+/**
+ * 格力总部接口
+ *//*
+
+@Slf4j
+@Service
+public class GreeLogic {
+
+    @Value("${gree.V3.gettoken}")
+    private String tokenUrl;
+    @Value("${gree.check.barcode}")
+    private String checkBarcodeUrl;
+    @Value("${gree.repair.settle.get}")
+    private String getRepairSettleUrl;
+    @Value("${gree.repair.settle.do}")
+    private String doRepairSettleUrl;
+    @Value("${gree.client.id}")
+    private String clientId;
+    @Value("${gree.V3.client.secert}")
+    private String clientSecert;
+    @Value("${gree.api.url}")
+    private String apiUrl;
+    @Value("${gree.gz.appid}")
+    private String gzAppId;
+    @Value("${gree.gz.appkey}")
+    private String gzAppKey;
+    @Value("${gree.fs.appid}")
+    private String fsAppId;
+    @Value("${gree.fs.appkey}")
+    private String fsAppKey;
+//    @Value("${gree.cloud.api.url}")
+//    private String cloudApiUrl;
+    @Value("${gree.V3.api.url}")
+    private String v3ApiUrl;
+    @Value("${gree.V3.gettoken}")
+    private String v3TokenUrl;
+    @Value("${gree.V3.client.secert}")
+    private String v3ClientSecert;
+    @Value("${gree.url}")
+    private String apiUrlFeedBack;
+
+    @Autowired
+    RedisUtil redisUtil;
+    @Autowired
+    CommonLogic commonLogic;
+
+    public String getAppId(Integer belongType){
+        if(belongType == 1){
+            return gzAppId;
+        }else{
+            return fsAppId;
+        }
+    }
+
+    public String getAppKey(Integer belongType){
+        if(belongType == 1){
+            return gzAppKey;
+        }else{
+            return fsAppKey;
+        }
+    }
+
+    */
+/**
+     * 获取总部接口的请求token
+     * @return
+     * @throws RemoteServiceException
+     *//*
+
+    public String getAccessToken() throws RemoteServiceException {
+        String redisKey = Constant.RedisPrefix.TOKEN_GREE;
+        String token = (String)redisUtil.get(redisKey);
+        if(token != null){
+            return token;
+        }
+        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+
+        forms.put("client_id", Collections.singletonList(clientId));
+        forms.put("client_secret", Collections.singletonList(clientSecert));
+        forms.put("grant_type", Collections.singletonList("client_credentials"));
+        String s = HttpUtils.requestXwww(tokenUrl, forms);
+        //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
+        log.info("【获取总部token】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        String accessToken = jsonObject.getString("access_token");
+        if(StringUtils.isNotEmpty(accessToken)) {
+            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE, accessToken, 2 * 60 * 60);
+        }
+        return accessToken;
+    }
+
+    */
+/**
+     * 获取总部接口的请求token
+     * @return
+     * @throws RemoteServiceException
+     *//*
+
+    public String getAccessTokenV3() throws RemoteServiceException {
+        String redisKey = Constant.RedisPrefix.TOKEN_GREE_V3;
+        String token = (String)redisUtil.get(redisKey);
+//        if(token != null){
+//            return token;
+//        }
+        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+
+        forms.put("client_id", Collections.singletonList(clientId));
+        forms.put("client_secret", Collections.singletonList(v3ClientSecert));
+
+        forms.put("grant_type", Collections.singletonList("client_credentials"));
+        String s = HttpUtils.requestXwww(v3TokenUrl, forms);
+        //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
+        log.info("【获取总部token】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        String accessToken = jsonObject.getString("access_token");
+        if(StringUtils.isNotEmpty(accessToken)) {
+            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE_V3, accessToken, 2 * 60 * 60);
+        }
+        return accessToken;
+    }
+
+    */
+/**
+     *   获取机型名称
+     * @param objCode 内积条码 或者 外机条码
+     * @param mainNumber 大类id
+     * @return
+     * @throws RemoteServiceException
+     *//*
+
+*/
+/*
+    public CheckBarcodeBean getProductName(String objCode,Integer mainNumber){
+        try {
+            Map<String, Object> map = new HashMap<>();
+            map.put("clientid", clientId);
+            map.put("barcode", objCode);
+            map.put("spid", mainNumber);
+            JSONObject jsonObject = this.post(checkBarcodeUrl, map);
+            CheckBarcodeBean data = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("data")), CheckBarcodeBean.class);
+            return data;
+        }catch(Exception e){
+            log.error("获取总部机型失败:"+e.getMessage());
+            return null;
+        }
+    }
+*//*
+
+
+
+    */
+/**
+     *   获取销司结算标准
+     * @param jxbh 机型编号,条码前五位
+     * @param wxxmh 维修项目号
+     * @param gmrg 购买日期(yyyy-MM-dd)
+     * @param wxlx 维修类型
+     * @param spid 大类
+     *//*
+
+    public String getRepairSettle(String jxbh,String wxxmh,String gmrg,String wxlx,String spid){
+        try {
+            Map<String, Object> map = new HashMap<>();
+            map.put("jxbh", jxbh);
+            map.put("wxxmh", wxxmh);
+            map.put("gmrg", gmrg);
+            map.put("wxlx", wxlx);
+            map.put("spid", spid);
+            map.put("clientid", clientId);
+
+            JSONObject jsonObject = this.post(getRepairSettleUrl, map);
+            return JSONObject.toJSONString(jsonObject.get("data"));
+        }catch(Exception e){
+            log.error("获取销司结算标准失败",e);
+            return "";
+        }
+
+    }
+
+
+    */
+/**
+     *   批量转结算
+     * @param ids 多个逗号隔开
+     *//*
+
+    public String doRepairSettle(String ids){
+        try {
+
+            Map<String,Object> map = new HashMap<>();
+            map.put("wxjsguids",ids);
+            map.put("clientid",clientId);
+
+            JSONObject jsonObject = this.post(doRepairSettleUrl, map);
+            return JSONObject.toJSONString(jsonObject.get("data"));
+        }catch(Exception e){
+            log.error("【对接总部】批量转结算失败",e.getMessage());
+        }
+        return null;
+    }
+
+    */
+/**
+     * 请求总部接口
+     * @return
+     *//*
+
+  */
+/*  public String post(String apiPath,Map<String,Object> bizContent,Integer belongType) throws Exception {
+        CommonParam commonParam = new CommonParam();
+        commonParam.setAppId(this.getAppId(belongType));
+        commonParam.setAppKey(this.getAppKey(belongType));
+        commonParam.setAppPath(apiPath);
+        commonParam.setJson(JSONObject.toJSONString(bizContent));
+        OutAppDefaultReq outAppDefaultReq = commonLogic.supplyParam(commonParam);
+        Map<String,String> header = new HashMap<>();
+        header.put("authorization","Bearer "+this.getAccessToken());
+        //log.info("accessToken:{}", "Bearer "+this.getAccessToken());
+
+        log.info("【请求总部接口】request:{}",JSONObject.toJSONString(outAppDefaultReq));
+        String s = HttpUtils.requestPostBody(apiUrl, JSONObject.toJSONString(outAppDefaultReq), header);
+        log.info("【请求总部接口】response:{}",s);
+        GreeResponseHelper greeResponseHelper = JSONObject.parseObject(s, GreeResponseHelper.class);
+        if(greeResponseHelper.getStatus() != 200){
+            throw new RemoteServiceException("对接失败总部接口失败:"+greeResponseHelper.getMsg());
+        }
+        return (String)greeResponseHelper.getData();
+    }
+    *//*
+
+    public JSONObject post(String url,List param){
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",  JSON.toJSONString(param));
+        String s = HttpUtils.requestPostBody(url, JSON.toJSONString(param), header);
+        log.info("【总部接口对接】response:{}",s);
+
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    */
+/**
+     * post请求,用3.0的token
+     * @param url
+     * @param param
+     * @return
+     *//*
+
+    public JSONObject postV3(String url,List param){
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",  JSON.toJSONString(param));
+        String s = HttpUtils.requestPostBody(url, JSON.toJSONString(param), header);
+        log.info("【总部接口对接】response:{}",s);
+
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    private JSONObject post(String url,Map<String,Object> map){
+        Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = HttpUtils.requestPostBody(url, JSONObject.toJSONString(map), header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("statusCode");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    public JSONObject postPub(String url,Map<String,Object> map) throws IOException {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        JSONObject jsonObject = new JSONObject();
+    	String s = com.gree.settlement.api.utils.HttpUtils.requestPostBodyIO(url, JSONObject.toJSONString(map), header);
+        log.info("【总部接口对接】response:{}",s);
+        jsonObject = JSONObject.parseObject(s);
+
+        Integer statusCode = (jsonObject.containsKey("status") && null != jsonObject.get("status") ) ?
+        		jsonObject.getInteger("status") : jsonObject.getInteger("statusCode");
+        jsonObject.put("status", statusCode);
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+        }
+        return jsonObject;
+    }
+
+
+    public JSONObject postPubV3(String url,Map<String,Object> map) throws IOException {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        JSONObject jsonObject = new JSONObject();
+    	String s = com.gree.settlement.api.utils.HttpUtils.requestPostBodyIO(url, JSONObject.toJSONString(map), header);
+        log.info("【总部接口对接】response:{}",s);
+        jsonObject = JSONObject.parseObject(s);
+
+        Integer statusCode = (jsonObject.containsKey("status") && null != jsonObject.get("status") ) ?
+        		jsonObject.getInteger("status") : jsonObject.getInteger("statusCode");
+        jsonObject.put("status", statusCode);
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+        }
+        return jsonObject;
+    }
+
+    public Object get(String url,Map<String,String> map) throws JsonMappingException, JsonProcessingException {
+    	final String apiPath = v3ApiUrl;
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+//        String s = HttpUtils.requestPostBody(url, JSONObject.toJSONString(map), header);
+        String s = com.gree.settlement.api.utils.HttpUtils.requestGet(apiPath+url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        ObjectMapper mapper = new ObjectMapper();
+		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        ResponseExHelper responseHelper = mapper.readValue(s, ResponseExHelper.class);
+        if(responseHelper.getStatusCode() != 200){
+            throw new RemoteServiceException("对接失败总部接口失败:"+responseHelper.getMessage());
+        }
+        return responseHelper.getData();
+    }
+
+    public JSONObject getPub(String url,Map<String,String> map) {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = com.gree.settlement.api.utils.HttpUtils.requestGet(url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+
+    public JSONObject getPubV3(String url,Map<String,String> map) {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = com.gree.settlement.api.utils.HttpUtils.requestGet(url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    */
+/**
+     * 同步总部机型名称和单价
+     * @param outCode
+     * @param mainNumber
+     *//*
+
+    public void syncProduct(String insideCode,String outCode,String mainNumber,Rule rule){
+        try {
+            CheckBarcodeBean checkBarcodeBean = null;
+            if (StringUtils.isNotEmpty(insideCode)) {
+                String insideShortCode = insideCode.substring(0, 5);
+                Integer count = ruleService.lambdaQuery().eq(Rule::getInsideShortCode, insideShortCode).count();
+                if(count > 0){
+                    return;
+                }
+                checkBarcodeBean = this.getProductName(insideCode, Integer.parseInt(mainNumber));
+
+                this.saveProduct(mainNumber,insideShortCode,checkBarcodeBean);
+            }
+            CheckBarcodeBean checkBarcodeBean2 = null;
+            if (StringUtils.isNotEmpty(outCode)) {
+                checkBarcodeBean2 = this.getProductName(outCode, Integer.parseInt(mainNumber));
+            }
+            log.info("【同步总部机型】,code:{},mainNumber:{},返回结果:{}", insideCode, mainNumber, JSONObject.toJSONString(checkBarcodeBean));
+            if ((checkBarcodeBean != null  && mainNumber.equals(Constant.MAIN_NUMBER_101))
+                    || !mainNumber.equals(Constant.MAIN_NUMBER_101)) {
+
+                //生成新的结算规则
+                if(rule == null) {
+                   rule = new Rule();
+                }
+                if (checkBarcodeBean != null) {
+                    rule.setPrice(checkBarcodeBean.getJsdj());
+                    rule.setEnginPrice(checkBarcodeBean.getJsdj());
+                    rule.setInsideShortCode(checkBarcodeBean.getJxbh());
+                    rule.setInsideName(checkBarcodeBean.getJxmc());
+                }
+                if (checkBarcodeBean2 != null) {
+                    if (rule.getPrice() == null || rule.getPrice().doubleValue() == 0) {
+                        rule.setPrice(checkBarcodeBean2.getJsdj());
+                        rule.setEnginPrice(checkBarcodeBean2.getJsdj());
+                    }
+                    rule.setOutShortCode(checkBarcodeBean2.getJxbh());
+                    rule.setOutName(checkBarcodeBean2.getJxmc());
+                }
+                rule.setMainId(Integer.parseInt(mainNumber));
+                rule.setMainNumber(mainNumber);
+                rule.setInsideCode(insideCode);
+                rule.setOutCode(outCode);
+                rule.setCreateTime(new Date());
+                if(rule.getStlRuleId() != null){
+                    rule.updateById();
+                }else {
+                    rule.insert();
+                }
+            }
+        }catch(Exception e){
+            log.error("同步总部机型失败",e.getMessage());
+        }
+    }
+
+
+    public void saveProduct(String mainNumber,String insideShortCode,CheckBarcodeBean checkBarcodeBean){
+        if(StringUtils.isEmpty(mainNumber) || !mainNumber.equals(Constant.MAIN_NUMBER_101)){
+            return;
+        }
+        Integer count = productService.lambdaQuery().eq(Product::getProductCode, insideShortCode).count();
+        if(count > 0){
+            return;
+        }
+
+        Product product = new Product();
+        product.setMainNumber(mainNumber);
+        //product.setMainName(checkBarcodeBean.get);
+        product.setMaterialCode(checkBarcodeBean.getZjdm());
+        product.setMaterialName(checkBarcodeBean.getZjmc());
+        product.setNwbs("内机");
+        product.setPrice(checkBarcodeBean.getJsdj());
+        product.setProductCode(insideShortCode);
+        product.setCreateTime(new Date());
+        product.insert();
+
+    }
+
+    public void initProduct(){
+        log.info("【初始化套机数据】开始:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+        List<Rule> list = ruleService.lambdaQuery().ne(Rule::getInsideShortCode, "").eq(Rule::getMainNumber,Constant.MAIN_NUMBER_101).list();
+        for(Rule rule : list){
+            CheckBarcodeBean checkBarcodeBean = this.getProductName(rule.getInsideCode(), Integer.parseInt(rule.getMainNumber()));
+            if(checkBarcodeBean == null){
+                continue;
+            }
+            this.saveProduct(Constant.MAIN_NUMBER_101,rule.getInsideShortCode(),checkBarcodeBean);
+        }
+        log.info("【初始化套机数据】结束:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+    }
+
+
+    */
+/**
+     * 初始化机型名称
+     *//*
+
+    public void init(){
+        List<ProductNew> list = productNewService.list();
+        for(ProductNew productNew : list){
+            String mainNumber = productNew.getMainNumber();
+            String insideCode = productNew.getInsideCode();
+
+            CheckBarcodeBean checkBarcodeBean = this.getProductName(insideCode, Integer.parseInt(mainNumber));
+            if(checkBarcodeBean == null){
+                productNew.setRemark("调取总部接口获取机型失败");
+                continue;
+            }
+            BeanUtils.copyProperties(checkBarcodeBean,productNew);
+            productNew.setProductName(checkBarcodeBean.getJxmc());
+            productNew.setPrice(checkBarcodeBean.getJsdj());
+        }
+        productNewService.updateBatchById(list);
+    }
+
+    */
+/**
+     * 请求总部接口
+     * @return
+     *//*
+
+    public GreeResponseHelper greePost(String apiPath,Map<String,Object> bizContent,Integer belongType) throws Exception {
+        CommonParam commonParam = new CommonParam();
+        commonParam.setAppId(this.getAppId(belongType));
+        commonParam.setAppKey(this.getAppKey(belongType));
+        commonParam.setAppPath(apiPath);
+        commonParam.setJson(JSONObject.toJSONString(bizContent));
+        OutAppDefaultReq outAppDefaultReq = commonLogic.supplyParam(commonParam);
+        Map<String,String> header = new HashMap<>();
+        header.put("authorization","Bearer "+this.getAccessToken());
+
+        log.info("【请求总部接口】request:{}",JSONObject.toJSONString(outAppDefaultReq));
+//        String s = HttpUtils.post(apiUrl, JSONObject.toJSONString(outAppDefaultReq), header);
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+
+        for(String str : header.keySet()){
+            headers.set(str,header.get(str));
+        }
+
+        RestTemplate restTemplate = new RestTemplate();
+        HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(outAppDefaultReq), headers);
+        //获取返回数据
+        try {
+            String body = restTemplate.postForObject(apiUrl, httpEntity, String.class);
+            log.info("【请求总部接口】response:{}",body);
+            return JSONObject.parseObject(body, GreeResponseHelper.class);
+        }catch(HttpStatusCodeException ex) {
+        	log.error("rawStatusCode = {}",ex.getRawStatusCode());
+        	GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+        	greeResponseHelper.setStatus(ex.getRawStatusCode());
+//        	greeResponseHelper.setMsg(GreeResponseCodeEnum.valueOf(ex.getRawStatusCode()));
+        	greeResponseHelper.setMsg(ex.getMessage().substring(0,100));
+        	ex.printStackTrace();
+        	return greeResponseHelper;
+        }catch(Exception e){
+        	GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+        	greeResponseHelper.setStatus(ResponseHelper.ResponseCode_COMMON);
+        	greeResponseHelper.setMsg("非法请求");
+        	e.printStackTrace();
+        	return greeResponseHelper;
+        }
+    }
+
+    */
+/**
+     * 请求总部接口
+     * @return
+     *//*
+
+    public GreeResponseHelper greePostDecryptFeed(String apiPath, DecryptFeedbackBean bean) throws Exception {
+        Map<String,String> header = new HashMap<>();
+        header.put("authorization","Bearer "+this.getAccessToken());
+
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+
+        for(String str : header.keySet()){
+            headers.set(str,header.get(str));
+        }
+
+        RestTemplate restTemplate = new RestTemplate();
+        HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(bean), headers);
+        log.info("【请求总部接口】request:{}",JSONObject.toJSONString(bean));
+
+        //获取返回数据
+        try {
+            String body = restTemplate.postForObject(apiUrlFeedBack+apiPath, httpEntity, String.class);
+            log.info("【请求总部接口】response:{}",body);
+            return JSONObject.parseObject(body, GreeResponseHelper.class);
+        }catch(HttpStatusCodeException ex) {
+            log.error("rawStatusCode = {}",ex.getRawStatusCode());
+            GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+            greeResponseHelper.setStatus(ex.getRawStatusCode());
+            greeResponseHelper.setMsg(ex.getMessage().substring(0,100));
+            ex.printStackTrace();
+            return greeResponseHelper;
+        }catch(Exception e){
+            GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+            greeResponseHelper.setStatus(ResponseHelper.ResponseCode_COMMON);
+            greeResponseHelper.setMsg("非法请求");
+            e.printStackTrace();
+            return greeResponseHelper;
+        }
+    }
+
+}
+*/

+ 12 - 1
mall-server-api/src/main/java/com/gree/mall/manager/controller/policy/PolicyOrderController.java

@@ -91,6 +91,17 @@ public class PolicyOrderController {
         FieldUtils.exportData(policyOrderVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
     }
 
+
+    @PostMapping("/importEm")
+    @ApiOperation(value = "雇主险导入")
+    public ResponseHelper importEm(
+            @RequestParam MultipartFile file
+    ) throws RemoteServiceException, IOException {
+        List<Object> objects = ExcelUtils.importExcel(file);
+        policyOrderLogic.importEm(objects);
+        return ResponseHelper.success();
+    }
+
     @PostMapping("/detail")
     @ApiOperation("保险险订单详情")
     public ResponseHelper<PolicyOrder> detail(
@@ -141,7 +152,7 @@ public class PolicyOrderController {
 
 
     @PostMapping("/import")
-    @ApiOperation(value = "工伤保险导入购买")
+    @ApiOperation(value = "工伤保险导入")
     public ResponseHelper wait2Del(
             @RequestParam MultipartFile file
     ) throws RemoteServiceException, IOException {

+ 5 - 5
mall-server-api/src/main/java/com/gree/mall/manager/logic/SyncOrderInfoLogic.java

@@ -33,7 +33,6 @@ import java.util.*;
 @RequiredArgsConstructor
 public class SyncOrderInfoLogic {
 
-/*
     @Value("${gree.V3.gettoken}")
     private String tokenUrl;
     @Value("${gree.check.barcode}")
@@ -65,7 +64,7 @@ public class SyncOrderInfoLogic {
     @Value("${gree.V3.client.secert}")
     private String v3ClientSecert;
     @Value("${gree.url}")
-    private String apiUrlFeedBack;*/
+    private String apiUrlFeedBack;
 
     @Autowired
     ItfGreeSynRuleService itfGreeSynRuleService;
@@ -85,8 +84,11 @@ public class SyncOrderInfoLogic {
 
         Long time = itfGreeSynRule.getLastSynTime().getTime()/1000;
 
+        String accessToken = this.getAccessToken();
 
-        String body = HttpRequest.get(greeUrl+ Constant.gree.GET_UPDATE_ORDERS+"/"+Constant.gree.GUANGZHOUXIAOSI+"/"+time).execute().body();
+
+        String body = HttpRequest.get(greeUrl+ Constant.gree.GET_UPDATE_ORDERS+"/"+Constant.gree.GUANGZHOUXIAOSI+"/"+time)
+                .header("authorization","Bearer " + accessToken).execute().body();
 
         Map<String,Object> bodyMap = JSON.parseObject(body);
 
@@ -116,7 +118,6 @@ public class SyncOrderInfoLogic {
      * @return
 
      */
-/*
     public String getAccessToken() throws RemoteServiceException {
         String redisKey = Constant.RedisPrefix.TOKEN_GREE;
         String token = (String)redisUtil.get(redisKey);
@@ -138,7 +139,6 @@ public class SyncOrderInfoLogic {
         }
         return accessToken;
     }
-*/
 
     public void syncFo() {
     }

+ 109 - 11
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/PolicyOrderLogic.java

@@ -2,6 +2,7 @@ package com.gree.mall.manager.logic.policy;
 
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.policy.PolicyOrderEmVO;
@@ -9,15 +10,21 @@ import com.gree.mall.manager.bean.policy.PolicyOrderInVO;
 import com.gree.mall.manager.bean.policy.PolicyOrderVO;
 import com.gree.mall.manager.bean.policy.PolicyVo;
 import com.gree.mall.manager.commonmapper.PolicyCMapper;
+import com.gree.mall.manager.enums.IsYesNoEnum;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.plus.entity.AdminWebsit;
 import com.gree.mall.manager.plus.entity.PolicyOrder;
+import com.gree.mall.manager.plus.entity.WebsitUser;
 import com.gree.mall.manager.plus.entity.WorkerPolicy;
+import com.gree.mall.manager.plus.service.AdminWebsitService;
 import com.gree.mall.manager.plus.service.PolicyOrderService;
+import com.gree.mall.manager.plus.service.WebsitUserService;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -34,15 +41,21 @@ public class PolicyOrderLogic {
     @Autowired
     PolicyOrderService policyOrderService;
 
+    @Autowired
+    AdminWebsitService adminWebsitService;
+
+    @Autowired
+    WebsitUserService websitUserService;
+
     public IPage<PolicyOrderVO> listPolicyOrder(Page page, ZfireParamBean zfireParam) {
         //获取当前登录企业id
         AdminUserCom adminUser = commonLogic.getAdminUser();
 
         List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
         //1.组装查询条件
-        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderVO.class,adminUser);
+        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderVO.class, adminUser);
 
-        IPage<PolicyOrderVO> policyOrderVOIPage = policyCMapper.listPolicyOrder(page, zfireParam,adminCompanyIds);
+        IPage<PolicyOrderVO> policyOrderVOIPage = policyCMapper.listPolicyOrder(page, zfireParam, adminCompanyIds);
         return policyOrderVOIPage;
     }
 
@@ -53,9 +66,9 @@ public class PolicyOrderLogic {
 
         List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
         //1.组装查询条件
-        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderEmVO.class,adminUser);
+        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderEmVO.class, adminUser);
 
-        IPage<PolicyOrderEmVO> policyOrderVOIPage = policyCMapper.listEm(page, zfireParam,adminCompanyIds);
+        IPage<PolicyOrderEmVO> policyOrderVOIPage = policyCMapper.listEm(page, zfireParam, adminCompanyIds);
 
         return policyOrderVOIPage;
     }
@@ -68,9 +81,9 @@ public class PolicyOrderLogic {
 
         List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
         //1.组装查询条件
-        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderInVO.class,adminUser);
+        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyOrderInVO.class, adminUser);
 
-        IPage<PolicyOrderInVO> policyOrderVOIPage = policyCMapper.listIn(page, zfireParam,adminCompanyIds);
+        IPage<PolicyOrderInVO> policyOrderVOIPage = policyCMapper.listIn(page, zfireParam, adminCompanyIds);
 
         return policyOrderVOIPage;
     }
@@ -97,7 +110,7 @@ public class PolicyOrderLogic {
                     .eq(PolicyOrder::getPolicyOrderStatus, "DGM").one();
 
 
-            if (policyOrder != null){
+            if (policyOrder != null) {
                 WorkerPolicy workerPolicy = new WorkerPolicy();
                 workerPolicy.setWorkerId(policyOrder.getWorkerNumber());
                 workerPolicy.setType("IN");
@@ -106,8 +119,8 @@ public class PolicyOrderLogic {
                 workerPolicy.setCompany(policyOrder.getBelongCompany());
                 workerPolicy.setPolicyOrder(policyOrder.getPolicyNumber());
                 workerPolicy.setPolicyType("IN");
-                workerPolicy.setStartTime(DateUtil.parse((String) row.get(9),"yyyy-MM-dd"));
-                workerPolicy.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10),"yyyy-MM-dd")));
+                workerPolicy.setStartTime(DateUtil.parse((String) row.get(9), "yyyy-MM-dd"));
+                workerPolicy.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10), "yyyy-MM-dd")));
                 workerPolicy.setWebsitUserId(policyOrder.getId());
                 workerPolicy.setWebsitId(policyOrder.getWebsitId());
                 workerPolicy.setWebsitName(policyOrder.getWebsitName());
@@ -123,8 +136,8 @@ public class PolicyOrderLogic {
                 workerPolicy.insert();
             }
 
-            policyOrder.setStartTime(DateUtil.parse((String) row.get(9),"yyyy-MM-dd"));
-            policyOrder.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10),"yyyy-MM-dd")));
+            policyOrder.setStartTime(DateUtil.parse((String) row.get(9), "yyyy-MM-dd"));
+            policyOrder.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10), "yyyy-MM-dd")));
             policyOrder.setClassWebsitId((String) row.get(11));
             policyOrder.setClassWebsitId((String) row.get(12));
 
@@ -140,6 +153,91 @@ public class PolicyOrderLogic {
             policyOrder.updateById();
 
 
+        }
+    }
+
+    public void importEm(List<Object> objects) {
+
+        for (Object o : objects) {
+            List<Object> row = (List<Object>) o;
+
+            AdminWebsit adminWebsit = adminWebsitService.lambdaQuery().eq(AdminWebsit::getWebsitNumber, (String) row.get(1)).one();
+
+            WebsitUser websitUser = websitUserService.lambdaQuery().eq(WebsitUser::getWebsitId, (String) row.get(1))
+                    .eq(WebsitUser::getWorkerNumber, (String) row.get(3)).one();
+
+            PolicyOrder policyOrder = new PolicyOrder();
+            policyOrder.setId("PW"+ IdWorker.getIdStr());
+
+            policyOrder.setPolicyName("雇主险");
+            policyOrder.setPolicyId(policyOrder.getId());
+            policyOrder.setPolicyNumber(policyOrder.getId());
+
+            policyOrder.setWebsitUserId(websitUser.getId());
+
+            policyOrder.setStartTime(DateUtil.parse((String) row.get(6), "yyyy-MM-dd"));
+            policyOrder.setEndTime(DateUtil.parse((String) row.get(7), "yyyy-MM-dd"));
+
+            policyOrder.setIsSend(IsYesNoEnum.NO.getKey());
+            policyOrder.setIsReceipt(IsYesNoEnum.NO.getKey());
+
+
+            policyOrder.setBelongCompany(adminWebsit.getBelongCompany());
+            policyOrder.setBelongCompanyCode(adminWebsit.getBelongCompanyCode());
+
+            policyOrder.setCompanyWechatId(adminWebsit.getCompanyWechatId());
+            policyOrder.setCompanyWechatName(adminWebsit.getCompanyWechatName());
+
+            policyOrder.setWebsitId(adminWebsit.getWebsitId());
+            policyOrder.setWebsitName(adminWebsit.getName());
+
+            policyOrder.setWorkerIdcard((String) row.get(4));
+            policyOrder.setWorkerMobile((String) row.get(5));
+            policyOrder.setWorkerName((String) row.get(2));
+            policyOrder.setWorkerNumber((String) row.get(3));
+
+            policyOrder.setType("EM");
+
+
+
+            if (new Date().after(policyOrder.getStartTime()) && new Date().before(policyOrder.getEndTime()))
+                policyOrder.setPolicyOrderStatus("BZZ");
+            else if (new Date().after(policyOrder.getEndTime()))
+                policyOrder.setPolicyOrderStatus("YSX");
+            else {
+                policyOrder.setPolicyOrderStatus("DSX");
+            }
+
+            policyOrder.insert();
+
+
+            WorkerPolicy workerPolicy = new WorkerPolicy();
+            workerPolicy.setWorkerId(websitUser.getWorkerNumber());
+            workerPolicy.setType("EM");
+            workerPolicy.setOrderId(policyOrder.getId());
+            workerPolicy.setPolicyName(policyOrder.getPolicyName());
+            workerPolicy.setCompany(policyOrder.getBelongCompany());
+            workerPolicy.setPolicyOrder(policyOrder.getPolicyNumber());
+            workerPolicy.setPolicyType("LINE");
+            workerPolicy.setStartTime(DateUtil.parse((String) row.get(9), "yyyy-MM-dd"));
+            workerPolicy.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10), "yyyy-MM-dd")));
+            workerPolicy.setWebsitUserId(policyOrder.getId());
+            workerPolicy.setWebsitId(policyOrder.getWebsitId());
+            workerPolicy.setWebsitName(policyOrder.getWebsitName());
+            workerPolicy.setWorkerName(policyOrder.getWorkerName());
+
+            if (new Date().after(workerPolicy.getStartTime()) && new Date().before(workerPolicy.getEndTime()))
+                workerPolicy.setStatus("BZZ");
+            else if (new Date().after(policyOrder.getEndTime()))
+                workerPolicy.setStatus("YSX");
+            else {
+                workerPolicy.setStatus("DSX");
+            }
+            workerPolicy.insert();
+
+
+
+
 
         }
     }

BIN
mall-server-api/src/main/resources/template/雇主险导入.xlsx