BifronsV 3 лет назад
Родитель
Сommit
03849cb866
28 измененных файлов с 716 добавлено и 70 удалено
  1. 24 0
      src/main/java/com/ydtech/components/InsTaskHistoryComponents.java
  2. 72 0
      src/main/java/com/ydtech/components/ZhongmeiRequestApiComponents.java
  3. 1 1
      src/main/java/com/ydtech/config/MvcConfig.java
  4. 1 1
      src/main/java/com/ydtech/config/properties/WechatOpenProperties.java
  5. 39 0
      src/main/java/com/ydtech/config/properties/ZmApiConfigurationProperties.java
  6. 0 10
      src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java
  7. 0 3
      src/main/java/com/ydtech/modules/ins/model/ya/CarModelDTO.java
  8. 7 0
      src/main/java/com/ydtech/modules/order/controller/OrderTaskPoolsController.java
  9. 23 5
      src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java
  10. 33 0
      src/main/java/com/ydtech/modules/order/convert/SimpleStadarCarDTOConvert.java
  11. 0 1
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  12. 35 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/BaseHead.java
  13. 22 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/BaseRequest.java
  14. 33 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/BaseRequestHead.java
  15. 21 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/BaseResponse.java
  16. 43 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/BaseResponseHead.java
  17. 43 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/request/ModelsQueryRequest.java
  18. 12 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/request/QuotedPriceRequest.java
  19. 161 0
      src/main/java/com/ydtech/modules/order/entity/api/zm/response/ModelsQueryResponse.java
  20. 26 0
      src/main/java/com/ydtech/modules/order/entity/vo/TaskForwardingVo.java
  21. 11 0
      src/main/java/com/ydtech/modules/order/service/OrderTaskPoolsService.java
  22. 14 1
      src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java
  23. 5 0
      src/main/java/com/ydtech/modules/order/service/impl/OrderTaskImageServiceImpl.java
  24. 41 2
      src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java
  25. 30 39
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java
  26. 4 2
      src/main/java/com/ydtech/nai/controller/ChinaCoalInterface.java
  27. 8 5
      src/main/resources/application-prod.properties
  28. 7 0
      src/main/resources/application-test.properties

+ 24 - 0
src/main/java/com/ydtech/components/InsTaskHistoryComponents.java

@@ -1,9 +1,12 @@
 package com.ydtech.components;
 
 import com.ydtech.constants.InsTaskHistoryEnum;
+import com.ydtech.constants.enums.InsOrderStatus;
 import com.ydtech.modules.ins.model.InsOrder;
 import com.ydtech.modules.ins.model.InsTaskHistory;
 import com.ydtech.modules.ins.service.InsTaskHistoryService;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.InsOrders;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -36,4 +39,25 @@ public class InsTaskHistoryComponents {
         insTaskHistoryService.insert(history7);
     }
 
+    /**
+     * 修改历史状态
+     *
+     * @param insOrderStatus 订单状态
+     * @param insAreaCompany 子订单
+     * @param insOrder 总订单
+     */
+    public void modifyOrderStatus(InsOrderStatus insOrderStatus, InsAreaCompany insAreaCompany, InsOrders insOrder) {
+        InsTaskHistory history7 = new InsTaskHistory();
+        history7.setId(String.valueOf(new Date().getTime()));
+        history7.setCompany(insAreaCompany.getInscompany());
+        history7.setTaskid(insOrder.getOrderno());
+        history7.setOperatorid(insOrder.getUserid());
+        history7.setOperator(insOrder.getUsername());
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        history7.setCreatetime(simpleDateFormat.format(new Date()));
+        history7.setStatus(String.valueOf(insOrderStatus.getCode()));
+        history7.setRemark(insOrderStatus.getDesc());
+        insTaskHistoryService.insert(history7);
+    }
+
 }

+ 72 - 0
src/main/java/com/ydtech/components/ZhongmeiRequestApiComponents.java

@@ -0,0 +1,72 @@
+package com.ydtech.components;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ydtech.config.properties.ZmApiConfigurationProperties;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.entity.api.zm.BaseRequest;
+import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
+import com.ydtech.modules.order.entity.api.zm.BaseResponse;
+import com.ydtech.modules.order.entity.api.zm.request.ModelsQueryRequest;
+import com.ydtech.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.client.RestTemplate;
+
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 中煤 APi 请求
+ * @date 2023/4/21 9:08
+ */
+@Slf4j
+@Component
+public class ZhongmeiRequestApiComponents {
+
+    private final ZmApiConfigurationProperties zmApiConfigurationProperties;
+
+    private final RestTemplate restTemplate;
+
+    public ZhongmeiRequestApiComponents(ZmApiConfigurationProperties zmApiConfigurationProperties, RestTemplate restTemplate) {
+        this.zmApiConfigurationProperties = zmApiConfigurationProperties;
+        this.restTemplate = restTemplate;
+    }
+
+    public <K extends BaseRequest, T extends  BaseResponse> T post(K k, String url, Class<T> tClass) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<K> yaQuoteInfoVoHttpEntity = new HttpEntity<>(k, httpHeaders);
+        ResponseEntity<String> response = restTemplate.postForEntity(url, yaQuoteInfoVoHttpEntity, String.class);
+
+        T t = JSONObject.parseObject(response.getBody(), tClass);
+
+        if(ObjectUtils.isEmpty(t)){
+            throw new SystemException("请求失败");
+        }
+
+        if("-1".equals(t.getHead().getReturnCode())){
+            throw new SystemException(t.getHead().getReturnMessage());
+        }
+
+        return t;
+    }
+
+    /**
+     * 车型查询
+     * @param request 请求呢通
+     * @param tClass 响应类型
+     * @return 响应内容
+     * @param <T> 请求体
+     */
+    public <T extends  BaseResponse> T modelQuery(ModelsQueryRequest request, Class<T> tClass) {
+        String transCode = "ModelsQuery";
+        String url = zmApiConfigurationProperties.getUrl() + transCode + ".do";
+        BaseRequestHead head = zmApiConfigurationProperties.getHead(transCode);
+        request.setHead(head);
+        return post(request, url, tClass);
+    }
+
+
+}

+ 1 - 1
src/main/java/com/ydtech/config/MvcConfig.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.ydtech.aop.RequestStringParamHandlerMethodArgumentResolver;
+import com.ydtech.config.properties.WechatOpenProperties;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
 import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
@@ -11,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.format.FormatterRegistry;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.client.RestTemplate;

+ 1 - 1
src/main/java/com/ydtech/config/WechatOpenProperties.java → src/main/java/com/ydtech/config/properties/WechatOpenProperties.java

@@ -1,4 +1,4 @@
-package com.ydtech.config;
+package com.ydtech.config.properties;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;

+ 39 - 0
src/main/java/com/ydtech/config/properties/ZmApiConfigurationProperties.java

@@ -0,0 +1,39 @@
+package com.ydtech.config.properties;
+
+import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description TODO
+ * @date 2023/4/20 18:01
+ */
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "zm.api")
+public class ZmApiConfigurationProperties {
+
+    private String source;
+
+    private String token;
+
+    private String url;
+
+    private String imageUrl;
+
+    private String smsUrl;
+
+    /**
+     * 中煤请求 head 的参数
+     * @param transCode
+     * @return
+     */
+    public BaseRequestHead getHead(String transCode){
+        return new BaseRequestHead(transCode, "Req", token, source );
+    }
+
+}

+ 0 - 10
src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java

@@ -1,15 +1,10 @@
 package com.ydtech.modules.admin.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import com.google.code.kaptcha.Constants;
 import com.google.code.kaptcha.Producer;
 import com.ydtech.config.MasterPasswordConfig;
-import com.ydtech.config.WechatOpenProperties;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysMsgLog;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysMsgLogService;
-import com.ydtech.modules.esm.model.EsmUserInternal;
 import com.ydtech.modules.esm.service.EsmUserInternalService;
 import com.ydtech.security.JwtAuthenticatioToken;
 import com.ydtech.security.utils.PasswordUtils;
@@ -21,11 +16,6 @@ import com.ydtech.utils.IPUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.mp.api.WxMpService;
-import net.jodah.expiringmap.ExpirationPolicy;
-import net.jodah.expiringmap.ExpiringMap;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;

+ 0 - 3
src/main/java/com/ydtech/modules/ins/model/ya/CarModelDTO.java

@@ -29,11 +29,8 @@ public class CarModelDTO {
     private String gearboxType;//变速箱类型
     private String remark;//
     private String fuelType;//能源种类
-
     private String fuelTypeCode;//能源类别
-
     private String energyTypes; // 能源种类
-
     private String wholeWeight;//
     private String powerScale;//
     private VehicleJingyou vehicleJingyo;

+ 7 - 0
src/main/java/com/ydtech/modules/order/controller/OrderTaskPoolsController.java

@@ -6,6 +6,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.OrderTaskPoolsVo;
+import com.ydtech.modules.order.entity.vo.TaskForwardingVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.OrderTaskPoolsService;
@@ -41,6 +42,12 @@ public class OrderTaskPoolsController {
         return orderTaskPoolsService.query(orderTaskPoolsVo);
     }
 
+    @PostMapping(value = "/forwarding")
+    @ApiOperation(value = "任务转发")
+    public HttpResult forwarding(@RequestBody TaskForwardingVo taskForwardingVo){
+        return orderTaskPoolsService.forwarding(taskForwardingVo);
+    }
+
     @PostMapping("/queryOrderInfo")
     @ApiOperation(value = "通过主订单ID查询子订单")
     public HttpResult queryInsAreaCompany(@RequestSingleParam(value = "orderNo") String orderNo) {

+ 23 - 5
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java

@@ -2,8 +2,14 @@ package com.ydtech.modules.order.controller;
 
 
 import com.ydtech.aop.request.RequestSingleParam;
+import com.ydtech.config.properties.ZmApiConfigurationProperties;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.InsTaskImage;
+import com.ydtech.modules.order.components.InsOrdersComponents;
+import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,10 +30,25 @@ public class ZhongMeiOrderApiController {
     @Autowired
     private ZhongMeiOrderApiService zhongMeiOrderApiService;
 
+    @Autowired
+    private InsOrdersComponents insOrdersComponents;
+
     @PostMapping(value = "/modelsQuery")
     @ApiOperation(value = "车型查询接口")
-    public HttpResult ModelsQuery(@RequestSingleParam(value = "modelName") String modelName, HttpServletRequest request) {
-        return zhongMeiOrderApiService.modelsQuery(modelName, request);
+    public HttpResult ModelsQuery(@RequestSingleParam(value = "modelName") String modelName) {
+        return this.zhongMeiOrderApiService.modelsQuery(modelName);
+    }
+
+    @Autowired
+    private ZmApiConfigurationProperties zmApiConfigurationProperties;
+
+    @PostMapping("/quote")
+    @ApiOperation("报价")
+    public HttpResult quote(@RequestBody BaseQuoteVo<AccidentalDrivingVo> zmQuoteVo) {
+
+        return HttpResult.ok(zmApiConfigurationProperties.getUrl());
+//        BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(zmQuoteVo.getOrderNo());
+//        return this.zhongMeiOrderApiService.quote(quoteInfo, zmQuoteVo);
     }
 
     @PostMapping("/getPolicyPrint")
@@ -43,7 +64,4 @@ public class ZhongMeiOrderApiController {
     }
 
 
-
-
-
 }

+ 33 - 0
src/main/java/com/ydtech/modules/order/convert/SimpleStadarCarDTOConvert.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.order.convert;
+
+import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.ins.model.zm.ZmCarModel;
+import com.ydtech.modules.order.entity.api.zm.response.ModelsQueryResponse;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface SimpleStadarCarDTOConvert {
+
+
+    SimpleStadarCarDTOConvert INSTANCE = Mappers.getMapper(SimpleStadarCarDTOConvert.class);
+
+    List<CarModelDTO> map(List<ModelsQueryResponse.SimpleStadarCarDTO> zmCarModels);
+
+    @Mapping(source = "localModelCode", target = "modelCode")
+    @Mapping(source = "brand", target = "modelName")
+    @Mapping(source = "brand", target = "brandCN")
+    @Mapping(source = "series", target = "series")
+    @Mapping(source = "approvedLoad", target = "ratedPassengerCapacity")
+    @Mapping(source = "displacement", target = "displacement")
+    @Mapping(source = "lfDate", target = "marketYear")
+    @Mapping(source = "purchasePrice", target = "replacementValue")
+    @Mapping(source = "vehicleDescription", target = "remark")
+    @Mapping(source = "energyTypes", target = "fuelType")
+    @Mapping(source = "energyTypes", target = "energyTypes")
+    CarModelDTO zhongmeiCar2YonganCar(ModelsQueryResponse.SimpleStadarCarDTO renbaoCarModel);
+
+}

+ 0 - 1
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -170,7 +170,6 @@ public class InsOrders implements Serializable {
     @TableField(value = "king", typeHandler = FastjsonTypeHandler.class)
     private JSONArray king;
 
-
     @TableField(exist = false)
     private List<InsAreaCompany> insAreaCompanyList; //子级集合
 

+ 35 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/BaseHead.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.entity.api.zm;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description TODO
+ * @date 2023/4/21 10:29
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseHead implements Serializable {
+
+    private static final long serialVersionUID = -7679506306975715100L;
+
+    /**
+     *交互代码,用来指定该报文所要交互的接口
+     */
+    private String transCode;
+    /**
+     *交互类型,用来指定该报文是入参(Req)
+     */
+    private String transType;
+    /**
+     *信息来源,用来指定该报文的来源
+     */
+    private String token;
+    
+}

+ 22 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/BaseRequest.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.entity.api.zm;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 请求基类
+ * @date 2023/4/21 9:00
+ */
+@Data
+public class BaseRequest implements Serializable {
+
+    private static final long serialVersionUID = -7025152016723698268L;
+
+    @JsonProperty(value = "head")
+    private BaseRequestHead head;
+
+}

+ 33 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/BaseRequestHead.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.order.entity.api.zm;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 请求head
+ * @date 2023/4/21 8:51
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class BaseRequestHead extends BaseHead{
+
+
+    private static final long serialVersionUID = 2622087391799417772L;
+
+    /**
+     *该用户的唯一标识符,默认值为:
+     */
+    private String source;
+
+    public BaseRequestHead(String transCode, String transType, String token, String source) {
+        super(transCode, transType, token);
+        this.source = source;
+    }
+
+}

+ 21 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/BaseResponse.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.order.entity.api.zm;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 中煤响应返回
+ * @date 2023/4/21 10:26
+ */
+@Data
+public class BaseResponse implements Serializable {
+
+    private static final long serialVersionUID = 8207943692209619441L;
+    @JsonProperty(value = "head")
+    private BaseResponseHead head;
+
+}

+ 43 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/BaseResponseHead.java

@@ -0,0 +1,43 @@
+package com.ydtech.modules.order.entity.api.zm;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 返回响应
+ * @date 2023/4/21 10:22
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class BaseResponseHead extends BaseHead {
+
+    private static final long serialVersionUID = -6934418276959271266L;
+
+    /**
+     * 错误编码
+     */
+    private String errorCode;
+
+    /**
+     * 日志编码
+     */
+    @JsonProperty(value = "logid")
+    private String logId;
+
+    /**
+     * 响应代码(-1:失败/0:成功/1:警告)
+     */
+    private String returnCode;
+
+    /**
+     * 响应信息(成功/失败原因)
+     */
+    private String returnMessage;
+
+
+}

+ 43 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/request/ModelsQueryRequest.java

@@ -0,0 +1,43 @@
+package com.ydtech.modules.order.entity.api.zm.request;
+
+import com.ydtech.modules.order.entity.api.zm.BaseRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 车型查询
+ * @date 2023/4/21 9:02
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ModelsQueryRequest extends BaseRequest {
+
+    private static final long serialVersionUID = -2895797100567649166L;
+    /**
+     * 每页行数
+     */
+    private Integer rows = 50;
+
+    /**
+     * 每页行数
+     */
+    private Integer pageNo = 1;
+
+    /**
+     * 每页行数
+     */
+    private String modelName;
+
+    /**
+     * 每页行数
+     */
+    private String brand;
+
+    /**
+     * 每页行数
+     */
+    private String modelCode;
+
+}

+ 12 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/request/QuotedPriceRequest.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.order.entity.api.zm.request;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description TODO
+ * @date 2023/4/21 15:29
+ */
+public class QuotedPriceRequest {
+
+
+}

+ 161 - 0
src/main/java/com/ydtech/modules/order/entity/api/zm/response/ModelsQueryResponse.java

@@ -0,0 +1,161 @@
+package com.ydtech.modules.order.entity.api.zm.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zm.BaseResponse;
+import com.ydtech.modules.order.entity.api.zm.BaseResponseHead;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description TODO
+ * @date 2023/4/21 10:50
+ */
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+@Data
+public class ModelsQueryResponse extends BaseResponse  {
+
+    private static final long serialVersionUID = 1024555914514192650L;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("simpleStadarCar")
+    private List<SimpleStadarCarDTO> simpleStadarCar;
+
+    @JsonProperty("totalRow")
+    private Integer totalRow;
+
+    @NoArgsConstructor
+    @Data
+    public static class SimpleStadarCarDTO implements Serializable {
+
+        private static final long serialVersionUID = 6983519785684153330L;
+
+        /**
+         * 核定载质量
+         */
+        @JsonProperty("approvedLoad")
+        private Integer approvedLoad;
+        /**
+         * 核定载客
+         */
+        @JsonProperty("approvedPassengersCapacity")
+        private Integer approvedPassengersCapacity;
+
+        /**
+         * 品牌名称
+         */
+        @JsonProperty("brand")
+        private String brand;
+
+        /**
+         * 品牌编码
+         */
+        @JsonProperty("brandCode")
+        private String brandCode;
+
+        /**
+         * 排量(ml)
+         */
+        @JsonProperty("displacement")
+        private Double displacement;
+
+        /**
+         * 能源种类
+         */
+        @JsonProperty("energyTypes")
+        private String energyTypes;
+
+        /**
+         * 总质量
+         */
+        @JsonProperty("grossMass")
+        private Integer grossMass;
+
+        /**
+         * 出厂日期
+         */
+        @JsonProperty("lfDate")
+        private String lfDate;
+
+        /**
+         * 本地车型代
+         */
+        @JsonProperty("localModelCode")
+        private String localModelCode;
+
+        /**
+         * 原始新车购置价
+         */
+        @JsonProperty("originalPurchasePrice")
+        private Integer originalPurchasePrice;
+
+        /**
+         * 功率(kw)
+         */
+        @JsonProperty("power")
+        private Integer power;
+
+        /**
+         * 价格浮动区间止
+         */
+        @JsonProperty("priceEnd")
+        private Integer priceEnd;
+
+        /**
+         * 价格浮动区间起
+         */
+        @JsonProperty("priceStart")
+        private Integer priceStart;
+
+        /**
+         * 新车购置价
+         */
+        @JsonProperty("purchasePrice")
+        private Integer purchasePrice;
+
+        /**
+         * 车系名称
+         */
+        @JsonProperty("series")
+        private String series;
+
+        /**
+         * 车系编码
+         */
+        @JsonProperty("seriesCode")
+        private String seriesCode;
+
+        /**
+         *  准牵引总质量
+         */
+        @JsonProperty("tractionMass")
+        private Integer tractionMass;
+
+        /**
+         * 变速箱
+         */
+        @JsonProperty("transmissionType")
+        private String transmissionType;
+
+        /**
+         * 整备质量
+         */
+        @JsonProperty("unladenMass")
+        private Double unladenMass;
+
+        /**
+         * 车辆描述
+         */
+        @JsonProperty("vehicleDescription")
+        private String vehicleDescription;
+    }
+
+}

+ 26 - 0
src/main/java/com/ydtech/modules/order/entity/vo/TaskForwardingVo.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.order.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wenks
+ * @version 0.0.2
+ * @description 任务转发Vo
+ * @date 2023/4/20 11:19
+ */
+@Data
+@ApiModel("任务转发")
+public class TaskForwardingVo {
+
+    @ApiModelProperty(value = "受理人工号")
+    private String auditId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "任务操作者")
+    private String operatorId;
+
+}

+ 11 - 0
src/main/java/com/ydtech/modules/order/service/OrderTaskPoolsService.java

@@ -2,7 +2,18 @@ package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.vo.OrderTaskPoolsVo;
+import com.ydtech.modules.order.entity.vo.TaskForwardingVo;
 
 public interface OrderTaskPoolsService {
+
+
     HttpResult query(OrderTaskPoolsVo orderTaskPoolsVo);
+
+
+    /**
+     * 任务转发
+     * @param taskForwardingVo 任务转发对象
+     * @return 响应内容
+     */
+    HttpResult forwarding(TaskForwardingVo taskForwardingVo);
 }

+ 14 - 1
src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java

@@ -1,21 +1,34 @@
 package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 
 import javax.servlet.http.HttpServletRequest;
 
 public interface ZhongMeiOrderApiService {
 
-    HttpResult modelsQuery(String modelName, HttpServletRequest request);
+    HttpResult modelsQuery(String modelName);
 
 
     HttpResult uploadImage(String orderNo);
 
+    /**
+     * 报价
+     *
+     * @param quoteInfo 报价实体
+     * @param zmQuoteVo 驾意险
+     * @return 响应实体
+     */
+    HttpResult quote(BaseQuoteInfoVo quoteInfo, BaseQuoteVo<AccidentalDrivingVo> zmQuoteVo);
 
     /**
      * 中煤保单下载
+     *
      * @param companyId 子订单号
      * @return 响应
      */
     HttpResult getPolicyPrint(String companyId);
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/OrderTaskImageServiceImpl.java

@@ -47,4 +47,9 @@ public class OrderTaskImageServiceImpl implements OrderTaskImageService {
 
         throw new SystemException("上传失败");
     }
+
+
+
+
+
 }

+ 41 - 2
src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java

@@ -5,31 +5,46 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.BaseController;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.ins.model.InsTaskHistory;
+import com.ydtech.modules.ins.service.InsTaskHistoryService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.OrderTaskPoolsVo;
+import com.ydtech.modules.order.entity.vo.TaskForwardingVo;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.OrderTaskPoolsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 @Service
-public class OrderTaskPoolsServiceImpl implements OrderTaskPoolsService {
+public class OrderTaskPoolsServiceImpl extends BaseController implements OrderTaskPoolsService {
 
     @Autowired
     private InsOrdersService insOrdersService;
 
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private InsTaskHistoryService insTaskHistoryService;
+
     @Override
     public HttpResult query(OrderTaskPoolsVo orderTaskPoolsVo) {
         BaseMapper<InsOrders> baseMapper = insOrdersService.getBaseMapper();
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(!StringUtils.isEmpty(orderTaskPoolsVo.getOrderNo()), InsOrders::getOrderno, orderTaskPoolsVo.getOrderNo())
                 .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getQuoteNo()), InsOrders::getQuoteno, orderTaskPoolsVo.getQuoteNo())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getOrderStatus()), InsOrders::getOrderno, orderTaskPoolsVo.getOrderStatus())
+                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getOrderStatus()), InsOrders::getOrderstatus, orderTaskPoolsVo.getOrderStatus())
                 .like(!StringUtils.isEmpty(orderTaskPoolsVo.getLicenseNo()), InsOrders::getLicenseno, orderTaskPoolsVo.getLicenseNo())
                 .like(!StringUtils.isEmpty(orderTaskPoolsVo.getFrameNo()), InsOrders::getFrameno, orderTaskPoolsVo.getFrameNo())
                 .like(!StringUtils.isEmpty(orderTaskPoolsVo.getEngineNo()), InsOrders::getCarinfo, orderTaskPoolsVo.getEngineNo())
@@ -47,4 +62,28 @@ public class OrderTaskPoolsServiceImpl implements OrderTaskPoolsService {
         return HttpResult.ok(insOrders);
     }
 
+
+
+    @Override
+    @Transactional
+    public HttpResult forwarding(TaskForwardingVo taskForwardingVo) {
+        SysUser sysUser = sysUserService.selectByPk(taskForwardingVo.getAuditId());
+        InsOrders insOrders = insOrdersService.existOrder(taskForwardingVo.getOrderNo());
+        //插入轨迹表
+        InsTaskHistory history = new InsTaskHistory();
+        history.setId(String.valueOf(new Date().getTime()));
+//        history.setCompany(insOrders.getInscompany());
+        history.setTaskid(insOrders.getOrderno());
+        history.setOperatorid(taskForwardingVo.getOperatorId());
+        history.setOperator(getUserName());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        history.setCreatetime(sdf.format(new Date()));
+        history.setStatus(insOrders.getOrderstatus());
+        history.setRemark("任务转发给:" + sysUser.getName() );
+        insTaskHistoryService.insert(history);
+        insOrders.setUserid(sysUser.getId());
+        insOrders.setUsername(sysUser.getName());
+        insOrdersService.updateById(insOrders);
+        return HttpResult.ok("保存成功");
+    }
 }

+ 30 - 39
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -1,13 +1,19 @@
 package com.ydtech.modules.order.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
+import com.ydtech.components.ZhongmeiRequestApiComponents;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.esm.service.InsTaskImageService;
-import com.ydtech.modules.ins.model.InsOrder;
+import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.api.zm.request.ModelsQueryRequest;
+import com.ydtech.modules.order.entity.api.zm.response.ModelsQueryResponse;
+import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
@@ -16,13 +22,9 @@ import com.ydtech.utils.HttpsPostUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 
 @Service
@@ -38,46 +40,35 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     @Value("${ZMIMGUrl}")
     private String ZMIMGUrl;
 
-    @Autowired
-    private InsOrdersService insOrdersService;
+    private final InsOrdersService insOrdersService;
 
-    @Autowired
-    private InsAreaCompanyService insAreaCompanyService;
+    private final InsAreaCompanyService insAreaCompanyService;
 
-    @Autowired
-    private InsTaskImageService insTaskImageService;
+    private final InsTaskImageService insTaskImageService;
 
     @Autowired
-    private StringRedisTemplate redisTemplate;
+    private ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
 
+    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImageService insTaskImageService) {
+        this.insOrdersService = insOrdersService;
+        this.insAreaCompanyService = insAreaCompanyService;
+        this.insTaskImageService = insTaskImageService;
+    }
 
     @Override
-    public HttpResult modelsQuery(String modelName, HttpServletRequest request) {
-        List<SimpleStadarCarVO> list = null;
-        //获取请求方法名称
-        String file = request.getRequestURI();
-        String method = file.substring(file.lastIndexOf("/") + 1);
-        //获取请求地址
-        String zmUrl = ZMUrl;
-        String url = zmUrl + "ModelsQuery.do";
-        log.info("请求地址为:" + url);
-        ModelsQueryHeadVO record = new ModelsQueryHeadVO();
-        record.setModelName(modelName);
-        HeadVO head = head(method, ZMToken);
-        head.setToken(ZMToken);
-        record.setHead(head);
-        String json = JSON.toJSONString(record);
-        log.info("请求参数为:" + json);
-        String post = HttpsPostUtil.sendPost(url, json);
-        if (!StringUtils.isEmpty(post)) {
-            JSONObject jsonObject = null;
-            jsonObject = JSONObject.parseObject(post);
-            Map<String, Object> map = jsonObject;
-            String simpleStadarCar = map.get("simpleStadarCar").toString();
-            list = JSONObject.parseArray(simpleStadarCar, SimpleStadarCarVO.class);
-            log.info("======车型查询接口返回为===============" + list);
-        }
-        return HttpResult.ok(list);
+    public HttpResult modelsQuery(String modelName) {
+        ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
+        modelsQueryResponse.setModelName(modelName);
+        ModelsQueryResponse response = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
+        List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCar = response.getSimpleStadarCar();
+        List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(simpleStadarCar);
+        return HttpResult.ok(map);
+    }
+
+    @Override
+    public HttpResult quote(BaseQuoteInfoVo quoteInfo, BaseQuoteVo<AccidentalDrivingVo> zmQuoteVo) {
+
+        return null;
     }
 
     @Override

+ 4 - 2
src/main/java/com/ydtech/nai/controller/ChinaCoalInterface.java

@@ -236,7 +236,7 @@ public class ChinaCoalInterface {
         policyCar.setPlateNo(carInfo.getLicenseNo());
         policyCar.setVIN(carInfo.getVinNo());
         policyCar.setEcdemicVehicleFlag(false);
-        if (Integer.toString(carInfo.getTransferFlag()) != null && !Integer.toString(carInfo.getTransferFlag()).equals("")) {
+        if (!Integer.toString(carInfo.getTransferFlag()).equals("")) {
             int transferFlag = carInfo.getTransferFlag();
             if (transferFlag == 1) {
                 policyCar.setChgOwnerFlag("01");
@@ -396,6 +396,7 @@ public class ChinaCoalInterface {
                         lists.add(mapsv);
 
                     }
+
                     //乘客责任险
                     if (kindList.get(j).getKindCode().equals("D4")) {
                         Map mapsq = new HashMap();
@@ -411,6 +412,7 @@ public class ChinaCoalInterface {
                         lists.add(mapsq);
 
                     }
+
                     //机动车损失险
                     if (kindList.get(j).getKindCode().equals("A")) {
                         Map mapsa = new HashMap();
@@ -423,6 +425,7 @@ public class ChinaCoalInterface {
                         mapsa.put("kindName", kindList.get(j).getKindName());
                         lists.add(mapsa);
                     }
+
                     //司机责任险
                     if (kindList.get(j).getKindCode().equals("D3")) {
                         Map mapsd = new HashMap();
@@ -431,7 +434,6 @@ public class ChinaCoalInterface {
                         mapsd.put("deductibleRate", setScale);
                         mapsd.put("quantity", "1");
                         mapsd.put("deductible", "0.0");
-
                         mapsd.put("relatedInd", "1");
                         mapsd.put("kindCode", "041");
                         mapsd.put("kindName", kindList.get(j).getKindName());

+ 8 - 5
src/main/resources/application-prod.properties

@@ -74,11 +74,8 @@ spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat
 ZMUrl=https://www.echinacoal.com/singlePlatform/
 ZMIMGUrl=https://www.echinacoal.com/singlePlatform/others/
 ZMSMSUrl=https://www.echinacoal.com/singlePlatform/prpall/
-#ZMToken=THIRDSCOuloft2020052818346904zmYBSXQYTQ
+ZMToken=THIRDSCOuloft2020052818346904zmYBSXXHTQ
 
-#\uFFFD\uFFFD\uFFFD\uFFFD(\u027D\uFFFD\uFFFD\uFFFD\uFFFD\u0534\uFFFD\uFFFD\uFFFD\uFFFD)THIRDSCOuloft2020052818346904zmYBSXQYTQ
-#\uFFFD\uFFFD\uFFFD\uFFFD(\u027D\uFFFD\uFFFD\uFFFD\uFFFD\u052B\uFFFD\uFFFD\uFFFD\uFFFD)THIRDSCOuloft2020052818346904zmYBSXXHTQ
-ZMToken=THIRDSCOuloft2020052818346904zmYBSXQYTQ
 
 CallbackUrl=http://39.101.143.165:8080/zm/Underwriting
 RGCallbackUrl=http://39.101.143.165:8080/zm/ArtificialUnderwriting
@@ -216,7 +213,7 @@ rb.quote.url=http://172.24.144.213:8088/rb/bfjs
 rb.audit.url=http://172.24.144.213:8088/rb/jiaofei
 rb.car.search.url=http://172.24.144.213:8088/rb/carsearch
 rb.brand.search.url=http://172.24.144.213:8088/rb/brandsearch
-#\u4E2D\u7164\u63A5\u53E3
+#\u4E2D\u7164\u63A5\u53E3 spider
 zm.domain=http://172.24.144.213:8888/zm
 zm.quote.url=${zm.domain}/quotedPrice
 zm.audit.url=${zm.domain}/audit
@@ -227,6 +224,12 @@ zm.modelQuery.url=${zm.domain}/modelQuery
 zm.vinSearch.url=${zm.domain}/vinSearch
 zm.ascription.url=${zm.domain}/ascription
 zm.manualUnderwriting.url=${zm.domain}/manualUnderwriting
+# \u4E2D\u7164\u63A5\u53E3 api
+zm.api.source=326
+zm.api.token=THIRDSCOuloft2020052818346904zmYBSXXHTQ
+zm.api.url=https://www.echinacoal.com/singlePlatform/
+zm.api.imageUrl=https://www.echinacoal.com/singlePlatform/others/
+zm.api.smsUrl=https://www.echinacoal.com/singlePlatform/prpall/
 #\u534E\u519Cvin\u7801\u67E5\u8BE2
 hn.vin.search.url=http://172.24.144.213:8088/hn/vinsearch
 #\u5E73\u5B89vin\u7801\u67E5\u8BE2

+ 7 - 0
src/main/resources/application-test.properties

@@ -198,6 +198,13 @@ zm.modelQuery.url=${zm.domain}/modelQuery
 zm.vinSearch.url=${zm.domain}/vinSearch
 zm.ascription.url=${zm.domain}/ascription
 zm.manualUnderwriting.url=${zm.domain}/manualUnderwriting
+# \u4E2D\u7164\u63A5\u53E3 api
+zm.api.source=326
+zm.api.token=THIRDSCOuloft2020052818346904zmYBSXXHTQ
+zm.api.url=https://www.echinacoal.com/singlePlatform/
+zm.api.imageUrl=https://www.echinacoal.com/singlePlatform/others/
+zm.api.smsUrl=https://www.echinacoal.com/singlePlatform/prpall/
+
 #\u534E\u519Cvin\u7801\u67E5\u8BE2
 hn.vin.search.url=http://47.92.254.66:8088/hn/vinsearch
 #\u5E73\u5B89vin\u7801\u67E5\u8BE2