hfxc226 2 rokov pred
rodič
commit
7cf6824d73
16 zmenil súbory, kde vykonal 656 pridanie a 2 odobranie
  1. 1 0
      platform-common/src/main/java/com/platform/common/constant/CommonConstants.java
  2. 1 2
      platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java
  3. 21 0
      platform-common/src/main/java/com/platform/common/yongyou/request/BaseRequest.java
  4. 15 0
      platform-common/src/main/java/com/platform/common/yongyou/request/GetCurrentStockRequest.java
  5. 18 0
      platform-common/src/main/java/com/platform/common/yongyou/request/LoginRequest.java
  6. 16 0
      platform-common/src/main/java/com/platform/common/yongyou/response/BaseResponse.java
  7. 68 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java
  8. 14 0
      platform-common/src/main/java/com/platform/common/yongyou/response/LoginResponse.java
  9. 68 0
      platform-dao/src/main/java/com/platform/dao/dto/upms/ThirdInfoLogDTO.java
  10. 71 0
      platform-dao/src/main/java/com/platform/dao/entity/upms/ThirdInfoLog.java
  11. 27 0
      platform-dao/src/main/java/com/platform/dao/mapper/upms/ThirdInfoLogMapper.java
  12. 60 0
      platform-dao/src/main/java/com/platform/dao/vo/ThirdInfoLogVO.java
  13. 62 0
      platform-dao/src/main/resources/mapper/upms/ThirdInfoLogMapper.xml
  14. 32 0
      platform-service/src/main/java/com/platform/service/upms/ThirdInfoLogService.java
  15. 34 0
      platform-service/src/main/java/com/platform/service/upms/impl/ThirdInfoLogServiceImpl.java
  16. 148 0
      platform-service/src/main/java/handler/yongyou/BaseRequestHandler.java

+ 1 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -284,6 +284,7 @@ public interface CommonConstants {
     Integer TYPE_CALLER_VERIFY = 2;     //报修人审核
     Integer STATUS_VERIFY_PASS = 1; // 审核通过
     Integer STATUS_VERIFY_REFUSED = 2; // 审核驳回
+    String THIRD_PARTY_YONGYOU = "用友";
     /**
      * 龙岩维修 end
      */

+ 1 - 2
platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java

@@ -26,8 +26,7 @@ public enum DictTypeEnum {
     SYS_USER_IDENTITY_TYPE("SYS_USER_IDENTITY_TYPE", "用户身份"),
     SYS_USER_JOB_TYPE("SYS_USER_JOB_TYPE", "用户职务"),
     FILL_PROJECT_QUANTITY_UNIT("FILL_PROJECT_QUANTITY_UNIT", "项目单位"),
-
-    ;
+    THIRD_PARTY_YONGYOU("THIRD_PARTY_YONGYOU", "用友") ;
     private final String type;
     private final String typeName;
 

+ 21 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/BaseRequest.java

@@ -0,0 +1,21 @@
+package com.platform.common.yongyou.request;
+
+import com.platform.common.cache.DictCache;
+import com.platform.common.enums.DictTypeEnum;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class BaseRequest<T> implements Serializable {
+
+    /**
+     * token
+     */
+    private String token;
+
+    /**
+     * 业务参数体  JSON_OBJECT
+     */
+    private T body;
+}

+ 15 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/GetCurrentStockRequest.java

@@ -0,0 +1,15 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class GetCurrentStockRequest {
+    private String token;
+    private String Conn;
+    private String cAcc_ID;// 账套号
+    private String stcWhere;// 查询条件 cInvCode in('0341' ,'0301')
+
+}

+ 18 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/LoginRequest.java

@@ -0,0 +1,18 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 登录接口
+ * POST
+ * http://localhost:44333/api/v1.0/user/login
+ */
+@Data
+public class LoginRequest {
+    private String CSrv;
+    private String PUserId;
+    private String PPassword;
+    private String PAccId;
+    private String PDate;
+    private String PSubId;
+}

+ 16 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/BaseResponse.java

@@ -0,0 +1,16 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 查询响应
+ */
+@Data
+public class BaseResponse<T> implements Serializable {
+
+    private String result;
+    private String msg;
+    private T body;
+}

+ 68 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java

@@ -0,0 +1,68 @@
+package com.platform.common.yongyou.response;
+
+import com.sun.org.apache.xpath.internal.operations.Bool;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+;//
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class GetCurrentStockResponse {
+    private Integer PartId; ;// ;//  partid 86
+    private String cWhCode; ;// 仓库编码 "03"
+    private String cWhName; ;// 仓库名称 "半成品库"
+    private String cInvCode; ;// 存货编码"01019002069"
+    private String cInvName; ;// 存货名称"电源"
+    private String cInvStd; ;// 规格型号 "亿泰鑫 2U/550W/冗余电源/550W-E-102"
+    private String cInvAddCode; ;// 存货代码null
+    private String cComUnitName; ;// 主计量单位 "PCS"
+    private String cBatch; ;// 批号null
+    private BigDecimal iQuantity; ;// 数量-50,
+    private BigDecimal iNum; ;// 件数0
+    private String cFree1; ;// 自由项1
+    private String cFree2; ;// 自由项2
+    private BigDecimal fOutQuantity; ;// 待发货数量0
+    private BigDecimal fOutNum; ;// 待发货辅计量数量0
+    private BigDecimal fInQuantity; ;// 待入库数量50
+    private BigDecimal fInNum; ;// 待入库辅计量数量0
+    private String cFree3; ;// 自由项3
+    private String cFree4; ;// 自由项
+    private String cFree5; ;// 自由项
+    private String cFree6; ;// 自由项
+    private String cFree7; ;// 自由项
+    private String cFree8; ;// 自由项
+    private String cFree9; ;// 自由项
+    private String cFree10; ;// 自由项
+    private LocalDate dVDate; ;// 失效日期null
+    private Boolean bStopFlag; ;// 库存是否冻结false
+    private BigDecimal fTransInQuantity; ;// 调拨在途数量0
+    private LocalDate dMdate; ;// 生产日期 null
+    private BigDecimal fTransInNum; ;// 调拨在途辅计量数0
+    private BigDecimal fTransOutQuantity; ;// 调拨待发数量0
+    private BigDecimal fTransOutNum; ;// 调拨待发辅计量数量0
+    private Integer iMassDate; ;// 保质期天数null
+    private String cMassUnit; ;// 保质期单位null
+    private String fStopQuantity; ;// 冻结数量0
+    private String fStopNum; ;// 冻结件数0
+    private LocalDate dLastYearCheckDate; ;// 最后检验日期null
+    private LocalDate iExpiratDateCalcu; ;// 有效期推算方式null
+    private String cExpirationdate; ;// 有效期至null
+    private String dExpirationdate; ;// 有效期计算项null
+    private BigDecimal ipeqty; ;// pe预留数量0
+    private BigDecimal ipenum; ;// pe预留件数0
+    private String cBatchProperty1; ;// 批次属性1
+    private String cBatchProperty2; ;// 批次属性
+    private String cBatchProperty3; ;// 批次属性
+    private String cBatchProperty4; ;// 批次属性
+    private String cBatchProperty5; ;// 批次属性
+    private String cBatchProperty6; ;// 批次属性
+    private String cBatchProperty7; ;// 批次属性
+    private String cBatchProperty8; ;// 批次属性
+    private String cBatchProperty9; ;// 批次属性
+    private String cBatchProperty10; ;// 批次属性
+}

+ 14 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/LoginResponse.java

@@ -0,0 +1,14 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class LoginResponse {
+    private String cAcc_ID;
+    private String Conn;
+    private String Token;
+
+}

+ 68 - 0
platform-dao/src/main/java/com/platform/dao/dto/upms/ThirdInfoLogDTO.java

@@ -0,0 +1,68 @@
+package com.platform.dao.dto.upms;
+
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 定时任务
+ * </p>
+ *
+ * @Author liangshiqian
+ * @Date 2021/9/16
+ * @Version Copyright (c) 2019,安徽广泽 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ThirdInfoLogDTO extends BaseDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主动请求交易中心TYPE_REQUEST和 TYPE_RESPONSE 交易中心请求本系统
+     */
+    public static final Integer TYPE_REQUEST = 1;
+    public static final Integer TYPE_RESPONSE = 2;
+
+    private String id;
+
+    /** 接口类型 */
+    private String serviceType;
+
+    /** 请求内容 */
+    private String content;
+
+    /** 请求类型: 1,请求对方 2,接收对方 */
+    private Integer type;
+
+    /**
+     * 订单号
+     */
+    private String applicationId;
+    /**
+     * 接收内容
+     */
+    private String responseContent;
+
+    /**
+     * 三方结构
+     */
+    private String thirdName;
+
+    /**
+     * 响应状态 0 成功  1 失败
+     */
+    private Integer errorStatus;
+
+    /**
+     * 失败的错误信息
+     */
+    private String errorMsg;
+
+    private String createdTimeStart;
+
+    private String createdTimeEnd;
+}

+ 71 - 0
platform-dao/src/main/java/com/platform/dao/entity/upms/ThirdInfoLog.java

@@ -0,0 +1,71 @@
+package com.platform.dao.entity.upms;
+
+import com.platform.common.bean.DataScope;
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 第三方接口日志表
+ * @Author liangshiqian
+ * @Date 2021-09-16 11:21:46
+ * @Version Copyright (c) 2019,安徽广泽 All rights reserved.
+ */
+@Table(name = "t_third_info_log")
+@Data
+public class ThirdInfoLog implements Serializable {
+
+    /**
+     * 编号
+     */
+    @Id
+    private String id;
+
+    /** 接口类型 */
+    private String serviceType;
+
+    /** 请求内容 */
+    private String content;
+
+    /** 请求类型: 1,请求方 2,接收方 */
+    private Integer type;
+
+    /**
+     * 订单号--流水号
+     */
+    private String applicationId;
+    /**
+     * 接收内容
+     */
+    private String responseContent;
+
+    /**
+     * 三方结构
+     */
+    private String thirdName;
+
+    /**
+     * 添加时间
+     */
+    private LocalDateTime createdTime;
+
+    /**
+     * 响应状态 0 成功  1 失败
+     */
+    private Integer errorStatus;
+
+    /**
+     * 失败的错误信息
+     */
+    private String errorMsg;
+
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+}

+ 27 - 0
platform-dao/src/main/java/com/platform/dao/mapper/upms/ThirdInfoLogMapper.java

@@ -0,0 +1,27 @@
+package com.platform.dao.mapper.upms;
+
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.dto.upms.ThirdInfoLogDTO;
+import com.platform.dao.entity.upms.ThirdInfoLog;
+import com.platform.dao.vo.ThirdInfoLogVO;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+/**
+ * @Description 第三方接口日志
+ * @Author liangshiqian
+ * @Date 2021-09-16 11:21:46
+ * @Version Copyright (c) 2019,安徽广泽 All rights reserved.
+ */
+@Component
+public interface ThirdInfoLogMapper extends MyMapper<ThirdInfoLog> {
+
+    /**
+     * 分页查询
+     * @param dto :
+     * @return :
+     */
+    List<ThirdInfoLogVO> selectList(ThirdInfoLogDTO dto);
+}

+ 60 - 0
platform-dao/src/main/java/com/platform/dao/vo/ThirdInfoLogVO.java

@@ -0,0 +1,60 @@
+package com.platform.dao.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description
+ * @Author chenli
+ * @Date 2019/8/5
+ * @Version Copyright (c) 2019,安徽广泽 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ThirdInfoLogVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /** 接口类型 */
+    private String serviceType;
+
+    /** 请求内容 */
+    private String content;
+
+    /** 请求类型: 1,请求对方 2,接收对方 */
+    private Integer type;
+
+    /**
+     * 订单号
+     */
+    private String applicationId;
+    /**
+     * 接收内容
+     */
+    private String responseContent;
+
+    /**
+     * 三方结构
+     */
+    private String thirdName;
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdTime;
+
+    /**
+     * 响应状态 0 成功  1 失败
+     */
+    private Integer errorStatus;
+
+    /**
+     * 失败的错误信息
+     */
+    private String errorMsg;
+
+}

+ 62 - 0
platform-dao/src/main/resources/mapper/upms/ThirdInfoLogMapper.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.upms.ThirdInfoLogMapper">
+    <sql id="Base_Column_List">
+                             infoLog.id,
+                             infoLog.service_type,
+                             infoLog.content,
+                             infoLog.type,
+                             infoLog.application_id,
+                             infoLog.response_content,
+                             infoLog.third_name,
+                             infoLog.created_time,
+                             infoLog.error_status,
+                             infoLog.error_msg
+    </sql>
+
+    <sql id="List_Condition">
+        <if test="id != null">
+            and infoLog.id = #{id}
+        </if>
+        <if test="serviceType != null and serviceType != ''">
+                    and infoLog.service_type like concat('%',#{serviceType,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="content != null and content != ''">
+                    and infoLog.content = #{content}
+        </if>
+        <if test="type != null">
+            and infoLog.type = #{type}
+        </if>
+        <if test="applicationId != null and applicationId != ''">
+                    and infoLog.application_id = #{applicationId}
+        </if>
+        <if test="responseContent != null and responseContent != ''">
+                    and infoLog.response_content = #{responseContent}
+        </if>
+        <if test="thirdName != null and thirdName != ''">
+            and infoLog.third_name = #{thirdName}
+        </if>
+        <if test="createdTime != null">
+                    and infoLog.created_time = #{createdTime}
+        </if>
+        <if test="errorStatus != null">
+            and infoLog.error_status = #{errorStatus}
+        </if>
+        <if test="errorMsg != null and errorMsg != ''">
+            and infoLog.error_msg = #{errorMsg}
+        </if>
+        <if test="createdTimeStart != null and createdTimeStart!= ''">
+            and infoLog.created_time <![CDATA[>=]]> #{createdTimeStart}
+        </if>
+        <if test="createdTimeEnd != null and createdTimeEnd != ''">
+            and infoLog.created_time <![CDATA[<=]]> #{createdTimeEnd}
+        </if>
+    </sql>
+
+    <select id="selectList" parameterType="com.platform.dao.dto.upms.ThirdInfoLogDTO" resultType="com.platform.dao.vo.ThirdInfoLogVO">
+        select infoLog.* from t_third_info_log as infoLog
+        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 32 - 0
platform-service/src/main/java/com/platform/service/upms/ThirdInfoLogService.java

@@ -0,0 +1,32 @@
+package com.platform.service.upms;
+
+import com.platform.dao.bean.MyVOPage;
+import com.platform.dao.dto.upms.ThirdInfoLogDTO;
+import com.platform.dao.entity.upms.ThirdInfoLog;
+import com.platform.dao.vo.ThirdInfoLogVO;
+import com.platform.service.base.IBaseService;
+
+public interface ThirdInfoLogService extends IBaseService<ThirdInfoLog, ThirdInfoLogDTO> {
+
+    /**
+     * 分页查询
+     * @param record :
+     * @param pageNum :
+     * @param pageSize :
+     * @return :
+     */
+    MyVOPage<ThirdInfoLogVO> selectPageList(ThirdInfoLogDTO record, int pageNum, int pageSize);
+
+    /**
+     * 重写存储方法,判断session的userInfo干扰
+     * @param record
+     * @return
+     */
+    ThirdInfoLog saveByDTO(ThirdInfoLogDTO record);
+
+    /**
+     * 手动再次推送
+     * @param id
+     */
+    void pushAgain(String id);
+}

+ 34 - 0
platform-service/src/main/java/com/platform/service/upms/impl/ThirdInfoLogServiceImpl.java

@@ -0,0 +1,34 @@
+package com.platform.service.upms.impl;
+
+import com.platform.dao.bean.MyVOPage;
+import com.platform.dao.dto.upms.ThirdInfoLogDTO;
+import com.platform.dao.entity.upms.ThirdInfoLog;
+import com.platform.dao.mapper.upms.ThirdInfoLogMapper;
+import com.platform.dao.vo.ThirdInfoLogVO;
+import com.platform.service.base.impl.BaseServiceImpl;
+import com.platform.service.upms.ThirdInfoLogService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * @Description 三方日志 service 实现类
+ * @Author liangshiqian
+ */
+@Service("thirdInfoLogService")
+public class ThirdInfoLogServiceImpl extends BaseServiceImpl<ThirdInfoLogMapper, ThirdInfoLog, ThirdInfoLogDTO> implements ThirdInfoLogService {
+
+    @Override
+    public MyVOPage<ThirdInfoLogVO> selectPageList(ThirdInfoLogDTO record, int pageNum, int pageSize) {
+        return null;
+    }
+
+    @Override
+    public ThirdInfoLog saveByDTO(ThirdInfoLogDTO record) {
+        return null;
+    }
+
+    @Override
+    public void pushAgain(String id) {
+
+    }
+}

+ 148 - 0
platform-service/src/main/java/handler/yongyou/BaseRequestHandler.java

@@ -0,0 +1,148 @@
+package handler.yongyou;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.platform.common.cache.DictCache;
+import com.platform.common.constant.CommonConstants;
+import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.util.BeanUtils;
+import com.platform.common.util.HttpUtil;
+import com.platform.common.util.JsonUtils;
+import com.platform.common.util.R;
+import com.platform.common.yongyou.request.BaseRequest;
+import com.platform.common.yongyou.response.BaseResponse;
+import com.platform.dao.dto.upms.ThirdInfoLogDTO;
+import com.platform.dao.entity.upms.ThirdInfoLog;
+import com.platform.service.upms.ThirdInfoLogService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Map;
+
+/**
+ * 1:给用友发送消息
+ * 1: 封装消息
+ * 2:发送请求
+ * 3:
+ */
+@Slf4j
+public abstract class BaseRequestHandler {
+    private BaseRequest request;
+
+    private ThirdInfoLogService infoService;
+
+    /**
+     * service name
+     */
+    private String serviceType;
+
+    public void setRequest(BaseRequest request){
+        this.request = request;
+    }
+
+    /**
+     * gain the thirdLogService bean,just prevent many bean
+     * @return
+     */
+    public synchronized ThirdInfoLogService getLogService(){
+        if(this.infoService == null){
+            this.infoService = (ThirdInfoLogService) BeanUtils.getBean("thirdInfoLogService");
+        }
+        return this.infoService;
+    }
+    /**
+     * handle post request,this method is used to our system request xindian System
+     * 我们请求新点数据处理
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public R handler() {
+        R r = new R();
+        BaseResponse response = null;
+        String logId = generateLogRequest(request,this.serviceType);
+        // post请求返回值 the request return value
+        String responseStr = "";
+        try {
+            responseStr = sendRequest(request);
+        } catch (Exception e) {
+            log.info("请求异常 request exception:" + e.getMessage() + e.getCause());
+            e.printStackTrace();
+        }
+        log.info("返回结果 result:" + responseStr);
+        try {
+            response = JSONObject.parseObject(responseStr, BaseResponse.class);
+            r.setData(response);
+            ThirdInfoLog log = new ThirdInfoLog();
+            log.setId(logId);
+            if(!"true".equals(response.getResult())){
+                log.setErrorMsg(response.getMsg());
+                log.setErrorStatus(1);
+            }else{
+                log.setErrorStatus(0);
+                successResponse(request);
+            }
+            getLogService().modModelByPrimaryKey(log);
+        } catch (Exception e) {
+            log.info("返回结果异常");
+            e.printStackTrace();
+        }
+        return r;
+    }
+
+    /**
+     * 生成request log
+     *
+     * @param request
+     */
+    private String generateLogRequest(BaseRequest request,String serviceType) {
+        if (request != null) {
+            ThirdInfoLogDTO dto = new ThirdInfoLogDTO();
+            String requestJson = "";
+            // 保函文件传送,日志不存储文件内容,太大了
+            requestJson = JSONObject.toJSONString(request);
+            dto.setContent(requestJson);
+            dto.setType(ThirdInfoLogDTO.TYPE_REQUEST);
+            dto.setThirdName(CommonConstants.THIRD_PARTY_YONGYOU);
+            //dto.setApplicationId(request.getApplyno());
+            dto.setServiceType(serviceType);
+            dto.setErrorStatus(1);
+            return addInfoLog(dto);
+        }
+        return null;
+    }
+
+    /**
+     * 保存日志
+     * @param dto
+     */
+    private String addInfoLog(ThirdInfoLogDTO dto) {
+        return getLogService().saveByDTO(dto).getId();
+    }
+
+    /**
+     * @return
+     * @throws Exception
+     */
+    public String sendRequest(BaseRequest request) throws Exception {
+        // 获取推送的接口地址
+        String url = DictCache.getValueByCode(DictTypeEnum.THIRD_PARTY_YONGYOU.getType(), this.serviceType);
+        log.info("请求URL----------------"+url);
+        // 获取请求体
+        String bodyString = JSON.toJSONString(request.getBody());
+        Map<String, String> bodyMap = JsonUtils.jsonToMap(bodyString);
+        String resStr = HttpUtil.post(url, JsonUtils.objectToJson(bodyMap));
+        try {
+            log.info("用友中心响应数据---"+resStr);
+        } catch (Exception e) {
+            throw new Exception("响应失败:" + e);
+        }
+        return resStr;
+    }
+
+    /**
+     * 推送给金融支撑平台成功后,本地操作
+     * 子类自行实现
+     * @param req
+     */
+    public abstract void successResponse(BaseRequest req);
+
+}