فهرست منبع

完成商品编码持久化

sh4wmoo 3 سال پیش
والد
کامیت
9c1a0a8dc8
23فایلهای تغییر یافته به همراه374 افزوده شده و 49 حذف شده
  1. 12 0
      pom.xml
  2. 1 1
      src/main/java/com/dk/mnls_mp/MainApplication.java
  3. 3 3
      src/main/java/com/dk/mnls_mp/controller/mnls/IBOSSDataController.java
  4. 1 1
      src/main/java/com/dk/mnls_mp/controller/mnls/IBOSSGoodsCodeController.java
  5. 2 0
      src/main/java/com/dk/mnls_mp/infrastructure/base/ResponseCodeEnum.java
  6. 57 0
      src/main/java/com/dk/mnls_mp/infrastructure/convert/IBOSSGoodsCodeConvert.java
  7. 2 0
      src/main/java/com/dk/mnls_mp/infrastructure/util/HttpHelper.java
  8. 2 0
      src/main/java/com/dk/mnls_mp/mapper/basic/CodeFacRecordMapper.java
  9. 9 4
      src/main/java/com/dk/mnls_mp/mapper/basic/CodeFacRecordMapper.xml
  10. 1 1
      src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSDataMapper.java
  11. 1 1
      src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSDataMapper.xml
  12. 2 2
      src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSGoodsCodeMapper.java
  13. 2 4
      src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSGoodsCodeMapper.xml
  14. 67 0
      src/main/java/com/dk/mnls_mp/model/dto/FacCodeDetailDto.java
  15. 45 0
      src/main/java/com/dk/mnls_mp/model/dto/FacCodeDto.java
  16. 2 0
      src/main/java/com/dk/mnls_mp/model/dto/IBOSSDTO.java
  17. 30 0
      src/main/java/com/dk/mnls_mp/model/pojo/mnls/FacCodeQuery.java
  18. 1 1
      src/main/java/com/dk/mnls_mp/model/pojo/mnls/IBOSSGoodsCode.java
  19. 3 3
      src/main/java/com/dk/mnls_mp/service/mnls/IBOSSDataService.java
  20. 5 5
      src/main/java/com/dk/mnls_mp/service/mnls/IBOSSGoodsCodeService.java
  21. 115 21
      src/main/java/com/dk/mnls_mp/service/mnls/PullFacGoodsCodeService.java
  22. 2 2
      src/main/java/com/dk/mnls_mp/service/pullDetail/PullOrderDetailService.java
  23. 9 0
      src/main/java/com/dk/mnls_mp/test/ApiTest.java

+ 12 - 0
pom.xml

@@ -204,6 +204,18 @@
             <artifactId>spring-boot-starter-swagger</artifactId>
             <version>1.5.1.RELEASE</version>
         </dependency>
+        <!--MapStruct-->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>1.5.0.RC1</version>
+        </dependency>
+        <!--mapstruct编译-->
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>1.5.0.RC1</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
src/main/java/com/dk/mnls_mp/MainApplication.java

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @ComponentScan(basePackages = {"com.dk.mnls_mp.controller", "com.dk.mnls_mp.controller.*", "com.dk.mnls_mp.service", "com.dk.mnls_mp.infrastructure.web", "com.dk.mnls_mp.infrastructure.util",
-        "com.dongke.base.aspect", "com.dongke.base.config", "com.dk.mnls_mp.infrastructure.config"})
+        "com.dk.mnls_mp.infrastructure.convert","com.dongke.base.aspect", "com.dongke.base.config", "com.dk.mnls_mp.infrastructure.config"})
 @MapperScan(basePackages = {"com.dk.mnls_mp.mapper"})
 @SpringBootApplication
 @EnableScheduling

+ 3 - 3
src/main/java/com/dk/mnls_mp/controller/mnls/IbossDataController.java → src/main/java/com/dk/mnls_mp/controller/mnls/IBOSSDataController.java

@@ -3,7 +3,7 @@ package com.dk.mnls_mp.controller.mnls;
 
 import com.dk.mnls_mp.infrastructure.base.UserRightCheck;
 import com.dk.mnls_mp.model.query.IbossDataQuery;
-import com.dk.mnls_mp.service.mnls.IbossDataService;
+import com.dk.mnls_mp.service.mnls.IBOSSDataService;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,10 +25,10 @@ import javax.validation.Valid;
  */
 @RestController
 @RequestMapping("/iboss_data")
-public class IbossDataController {
+public class IBOSSDataController {
 
     @Autowired
-    IbossDataService ibossDataService;
+    IBOSSDataService ibossDataService;
 
 
     /**

+ 1 - 1
src/main/java/com/dk/mnls_mp/controller/mnls/IbossGoodsCodeController.java → src/main/java/com/dk/mnls_mp/controller/mnls/IBOSSGoodsCodeController.java

@@ -15,6 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/iboss-goods-code")
-public class IbossGoodsCodeController {
+public class IBOSSGoodsCodeController {
 
 }

+ 2 - 0
src/main/java/com/dk/mnls_mp/infrastructure/base/ResponseCodeEnum.java

@@ -93,6 +93,8 @@ public enum ResponseCodeEnum {
 
     GET_TOKEN_FAIL(234, "调用后台获取TOKEN失败!"),
 
+    MY_GOODS_CODE_POST_FAIL(-1001, "调用美云商品编码接口失败!"),
+
 
 
 

+ 57 - 0
src/main/java/com/dk/mnls_mp/infrastructure/convert/IBOSSGoodsCodeConvert.java

@@ -0,0 +1,57 @@
+package com.dk.mnls_mp.infrastructure.convert;
+
+import com.dk.mnls_mp.model.dto.FacCodeDetailDto;
+import com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode;
+import org.apache.commons.lang.StringUtils;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+
+import java.util.List;
+
+/**
+ * @desc   : 商品编码转换类
+ * @author : 张潇木
+ * @date   : 2022/9/25 14:26
+ */
+@Mapper(componentModel = "spring")
+public interface IBOSSGoodsCodeConvert {
+
+    /**
+     * @desc : 节点DO转步骤DO
+     * @author : 张潇木
+     * @date : 2022-6-29 11:25
+     */
+    List<IBOSSGoodsCode> facDTO2IBOSSGoodsCodePO(List<FacCodeDetailDto> facCodeDetailDtoList);
+
+    @Mappings({
+            @Mapping(expression = "java(facCodeDetailDto.getItemId())", target = "itemId"),
+            @Mapping(expression = "java(facCodeDetailDto.getItemCode())", target = "onlyCode"),
+            @Mapping(expression = "java(facCodeDetailDto.getModel())", target = "code"),
+            @Mapping(expression = "java(facCodeDetailDto.getItemName())", target = "goodsName"),
+            @Mapping(expression = "java(facCodeDetailDto.getItemSpecs())", target = "specification"),
+            @Mapping(expression = "java(facCodeDetailDto.getPackageNum())", target = "packageNum"),
+            @Mapping(expression = "java(getKindName(facCodeDetailDto.getBigClassName()))", target = "kindName"),
+            @Mapping(expression = "java(facCodeDetailDto.getCatName())", target = "seriesName"),
+            @Mapping(expression = "java(getVarietyName(facCodeDetailDto.getMidClassName(),facCodeDetailDto.getSmallClassName()))", target = "varietyName"),
+    })
+    IBOSSGoodsCode facDTO2IBOSSGoodsCodePO (FacCodeDetailDto facCodeDetailDto);
+
+    default String getKindName(String big){
+        if(StringUtils.isNotEmpty(big)){
+            return big;
+        }
+        return "-";
+    }
+
+    default String getVarietyName(String mid,String small){
+        if(StringUtils.isNotEmpty(small)){
+            return small;
+        }
+        if(StringUtils.isNotEmpty(mid)){
+            return mid;
+        }
+        return "-";
+    }
+
+}

+ 2 - 0
src/main/java/com/dk/mnls_mp/infrastructure/util/HttpHelper.java

@@ -344,6 +344,7 @@ public class HttpHelper {
         String result = null;
         try {
             log.info("post_url-> " + urlInfo);
+            log.info("post_param-> \n" + JSONObject.toJSONString(param));
             URL url = new URL(urlInfo);
             connection = (HttpURLConnection) url.openConnection();
             connection.setRequestMethod("POST");
@@ -369,6 +370,7 @@ public class HttpHelper {
                     sbf.append("\r\n");
                 }
                 result = sbf.toString();
+                log.info("post_result-> \n" + result);
                 return ResponseResultUtil.success(result);
             }
             return ResponseResultUtil.error(connection.getResponseCode(), connection.getResponseMessage());

+ 2 - 0
src/main/java/com/dk/mnls_mp/mapper/basic/CodeFacRecordMapper.java

@@ -244,6 +244,8 @@ public interface CodeFacRecordMapper {
 
     int updateCodeHistoryCreateTimeByID(Map<String, Object> record);
 
+    int updateCodeHistoryStatusByID(Map<String, Object> record);
+
     int updateFacCodeByList(List<Map<String, Object>> record);
 
     int insertFacListByList(List<Map<String, Object>> record);

+ 9 - 4
src/main/java/com/dk/mnls_mp/mapper/basic/CodeFacRecordMapper.xml

@@ -99,6 +99,13 @@
         where t.SynchID = #{SynchID}
     </update>
 
+    <!--更新商品编码拉去履历状态-->
+    <update id="updateCodeHistoryStatusByID" parameterType="java.util.Map">
+        update t_mst_codehistory_fac t
+        set t.Status = #{Status}
+        where t.SynchID = #{SynchID}
+    </update>
+
     <!--根据唯一编码查询是否存在-->
     <select id="isExist" parameterType="java.util.Map" resultType="java.lang.Integer">
         select count(1)
@@ -246,16 +253,14 @@
 
     <!--商品编码抓取履历:查询日期-->
     <select id="selectCodeHistoryTime" resultMap="BaseResultMap">
-        select SynchID, DATE_FORMAT(max(CreateTime), '%m/%d/%Y %H:%i:%s') CreateTime
+        select SynchID, DATE_FORMAT(max(CreateTime), '%Y-%m-%d %H:%i:%s') CreateTime
         From t_mst_codehistory_fac
         where status = 1
     </select>
 
     <!--插入履历-->
     <insert id="insertHistory" useGeneratedKeys="true" keyProperty="SynchID" keyColumn="SynchID">
-        insert into t_mst_codehistory_fac
-            (CreateTime)
-        values (now())
+        insert into t_mst_codehistory_fac (CreateTime,Status) values (#{map.CreateTime},#{map.Status})
     </insert>
 
     <!--批量插入层级履历明细-->

+ 1 - 1
src/main/java/com/dk/mnls_mp/mapper/mnls/IbossDataMapper.java → src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSDataMapper.java

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Repository;
 *  iBOSS数据表 Mapper
 */
 @Repository
-public interface IbossDataMapper extends MPBaseMapper<IBOSSData>{
+public interface IBOSSDataMapper extends MPBaseMapper<IBOSSData>{
 	
 }
 

+ 1 - 1
src/main/java/com/dk/mnls_mp/mapper/mnls/IbossDataMapper.xml → src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSDataMapper.xml

@@ -1,6 +1,6 @@
 <?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.dk.mnls_mp.mapper.mnls.IbossDataMapper">
+<mapper namespace="com.dk.mnls_mp.mapper.mnls.IBOSSDataMapper">
 
     <!-- 通用设置 -->
     <!-- 通用查询列 -->

+ 2 - 2
src/main/java/com/dk/mnls_mp/mapper/mnls/IbossGoodsCodeMapper.java → src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSGoodsCodeMapper.java

@@ -1,6 +1,6 @@
 package com.dk.mnls_mp.mapper.mnls;
 
-import com.dk.mnls_mp.model.pojo.mnls.IbossGoodsCode;
+import com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode;
 import com.dk.mnls_mp.infrastructure.base.MPBaseMapper;
 import org.springframework.stereotype.Repository;
 
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Repository;
 *  iBOSS商品编码表 Mapper
 */
 @Repository
-public interface IbossGoodsCodeMapper extends MPBaseMapper<IbossGoodsCode>{
+public interface IBOSSGoodsCodeMapper extends MPBaseMapper<IBOSSGoodsCode>{
 	
 }
 

+ 2 - 4
src/main/java/com/dk/mnls_mp/mapper/mnls/IbossGoodsCodeMapper.xml → src/main/java/com/dk/mnls_mp/mapper/mnls/IBOSSGoodsCodeMapper.xml

@@ -1,6 +1,6 @@
 <?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.dk.mnls_mp.mapper.mnls.IbossGoodsCodeMapper">
+<mapper namespace="com.dk.mnls_mp.mapper.mnls.IBOSSGoodsCodeMapper">
 
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
@@ -9,7 +9,7 @@
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mnls_mp.model.pojo.mnls.IbossGoodsCode">
+    <resultMap id="BaseResultMap" type="com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode">
         <id column="id" property="id"/>
                 <result column="item_id" property="itemId"/>
                 <result column="only_code" property="onlyCode"/>
@@ -117,7 +117,6 @@
             kind_name,
             series_name,
             variety_name,
-            create_time,
         </trim>
         )
         values
@@ -133,7 +132,6 @@
                 #{item.kindName},
                 #{item.seriesName},
                 #{item.varietyName},
-                #{item.createTime},
             </trim>
             )
         </foreach>

+ 67 - 0
src/main/java/com/dk/mnls_mp/model/dto/FacCodeDetailDto.java

@@ -0,0 +1,67 @@
+package com.dk.mnls_mp.model.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc   : 厂家商品编码明细返回体
+ * @author : 张潇木
+ * @date   : 2022/9/25 10:41
+ */
+@Data
+@Accessors(chain = true)
+public class FacCodeDetailDto {
+
+    /**
+     * itemId
+     */
+    private Long itemId;
+
+    /**
+     * 商品编码=>(iBOSS-唯一编码)
+     */
+    private String itemCode;
+
+    /**
+     * 型号=>(iBOSS-商品编码)
+     */
+    private String model;
+
+    /**
+     * 商品名称=>(iBOSS-商品名称)
+     */
+    private String itemName;
+
+    /**
+     * 规格=>(iBOSS-规格)
+     */
+    private String itemSpecs;
+
+    /**
+     * 品种名称=>(iBOSS-系列)
+     */
+    private String catName;
+
+    /**
+     * 包装数=>(iBOSS-包装数)
+     */
+    private BigDecimal packageNum;
+
+    /**
+     * 商品大类名称=>(iBOSS-种类)
+     */
+    private String bigClassName;
+
+    /**
+     * 商品中类名称=>(iBOSS-品种)
+     */
+    private String midClassName;
+
+    /**
+     * 商品小类名称=>(iBOSS-品种)
+     */
+    private String smallClassName;
+
+}

+ 45 - 0
src/main/java/com/dk/mnls_mp/model/dto/FacCodeDto.java

@@ -0,0 +1,45 @@
+package com.dk.mnls_mp.model.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @desc   : 厂家商品编码接口返回体
+ * @author : 张潇木
+ * @date   : 2022/9/25 10:41
+ */
+@Data
+@Accessors(chain = true)
+public class FacCodeDto {
+    /**
+     * traceId
+     */
+    private String traceLogId;
+
+    /**
+     * 文字描述
+     */
+    private String chnDesc;
+
+    /**
+     * 状态码
+     */
+    private Integer code;
+
+    /**
+     * 编码数据总条数
+     */
+    private Integer total;
+
+    /**
+     * 全部页数
+     */
+    private Integer pages;
+
+    /**
+     * 厂家商品编码明细集合
+     */
+    private List<FacCodeDetailDto> records;
+}

+ 2 - 0
src/main/java/com/dk/mnls_mp/model/dto/IBOSSDTO.java

@@ -1,6 +1,7 @@
 package com.dk.mnls_mp.model.dto;
 
 import lombok.Data;
+import lombok.experimental.Accessors;
 
 /**
  * @desc   : IBOSS返回数据DTO
@@ -8,6 +9,7 @@ import lombok.Data;
  * @date   : 2022-9-19 17:15
  */
 @Data
+@Accessors(chain = true)
 public class IBOSSDTO {
     /**
      * 状态

+ 30 - 0
src/main/java/com/dk/mnls_mp/model/pojo/mnls/FacCodeQuery.java

@@ -0,0 +1,30 @@
+package com.dk.mnls_mp.model.pojo.mnls;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @desc   : 厂家商品编码查询请求体
+ * @author : 张潇木
+ * @date   : 2022/9/25 10:41
+ */
+@Data
+@Accessors(chain = true)
+public class FacCodeQuery {
+    /**
+     * 当前页码
+     */
+    private int pageIndex;
+
+    /**
+     * 每页数据条数
+     */
+    private int pageSize;
+
+    /**
+     * 其他查询条件
+     */
+    private JSONObject param;
+
+}

+ 1 - 1
src/main/java/com/dk/mnls_mp/model/pojo/mnls/IbossGoodsCode.java → src/main/java/com/dk/mnls_mp/model/pojo/mnls/IBOSSGoodsCode.java

@@ -20,7 +20,7 @@ import java.util.Date;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName(value = "t_iboss_goods_code", autoResultMap = true)
-public class IbossGoodsCode implements Serializable {
+public class IBOSSGoodsCode implements Serializable {
 
     /**
      * 主键id

+ 3 - 3
src/main/java/com/dk/mnls_mp/service/mnls/IbossDataService.java → src/main/java/com/dk/mnls_mp/service/mnls/IBOSSDataService.java

@@ -6,7 +6,7 @@ import com.dk.mnls_mp.infrastructure.base.ResponseCodeEnum;
 import com.dk.mnls_mp.mapper.basic.CustomerMapper;
 import com.dk.mnls_mp.model.pojo.basic.Customer;
 import com.dk.mnls_mp.model.pojo.mnls.IBOSSData;
-import com.dk.mnls_mp.mapper.mnls.IbossDataMapper;
+import com.dk.mnls_mp.mapper.mnls.IBOSSDataMapper;
 import com.dk.mnls_mp.infrastructure.base.MPBaseService;
 import com.dk.mnls_mp.infrastructure.base.MPBaseMapper;
 import com.dk.mnls_mp.model.query.IbossDataQuery;
@@ -18,7 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 @Service
 @Transactional
-public class IbossDataService extends MPBaseService<IBOSSData> {
+public class IBOSSDataService extends MPBaseService<IBOSSData> {
 
 	@Override
 	public MPBaseMapper<IBOSSData> getRepository() {
@@ -26,7 +26,7 @@ public class IbossDataService extends MPBaseService<IBOSSData> {
 	}
 
 	@Autowired
-	private IbossDataMapper ibossDataMapper;
+	private IBOSSDataMapper ibossDataMapper;
 
 	@Autowired
 	private CustomerMapper customerMapper;

+ 5 - 5
src/main/java/com/dk/mnls_mp/service/mnls/IbossGoodsCodeService.java → src/main/java/com/dk/mnls_mp/service/mnls/IBOSSGoodsCodeService.java

@@ -1,7 +1,7 @@
 package com.dk.mnls_mp.service.mnls;
 
-import com.dk.mnls_mp.model.pojo.mnls.IbossGoodsCode;
-import com.dk.mnls_mp.mapper.mnls.IbossGoodsCodeMapper;
+import com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode;
+import com.dk.mnls_mp.mapper.mnls.IBOSSGoodsCodeMapper;
 import com.dk.mnls_mp.infrastructure.base.MPBaseService;
 import com.dk.mnls_mp.infrastructure.base.MPBaseMapper;
 import org.springframework.stereotype.Service;
@@ -10,14 +10,14 @@ import org.springframework.transaction.annotation.Transactional;
 
 @Service
 @Transactional
-public class IbossGoodsCodeService extends MPBaseService<IbossGoodsCode> {
+public class IBOSSGoodsCodeService extends MPBaseService<IBOSSGoodsCode> {
 
 	@Override
-	public MPBaseMapper<IbossGoodsCode> getRepository() {
+	public MPBaseMapper<IBOSSGoodsCode> getRepository() {
 		return ibossGoodsCodeMapper;
 	}
 
 	@Autowired
-	private IbossGoodsCodeMapper ibossGoodsCodeMapper;
+	private IBOSSGoodsCodeMapper ibossGoodsCodeMapper;
 
 }

+ 115 - 21
src/main/java/com/dk/mnls_mp/service/mnls/PullFacGoodsCodeService.java

@@ -1,21 +1,30 @@
 package com.dk.mnls_mp.service.mnls;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dk.mnls_mp.infrastructure.base.ResponseCodeEnum;
 import com.dk.mnls_mp.infrastructure.config.Config;
+import com.dk.mnls_mp.infrastructure.convert.IBOSSGoodsCodeConvert;
 import com.dk.mnls_mp.infrastructure.util.HttpHelper;
 import com.dk.mnls_mp.mapper.basic.CodeFacRecordMapper;
+import com.dk.mnls_mp.model.dto.FacCodeDetailDto;
+import com.dk.mnls_mp.model.dto.FacCodeDto;
 import com.dk.mnls_mp.model.pojo.basic.*;
+import com.dk.mnls_mp.model.pojo.mnls.FacCodeQuery;
+import com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode;
+import com.dongke.base.exceptionHandler.BaseBusinessException;
 import com.dongke.base.exceptionHandler.ResponseResultUtil;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @desc   : 拉取厂家商品编码业务类
@@ -33,42 +42,127 @@ public class PullFacGoodsCodeService {
     @Autowired
     CodeFacRecordMapper pullFacCodeRecordMapper;
 
+    @Autowired
+    IBOSSGoodsCodeConvert convert;
+
+    @Autowired
+    IBOSSGoodsCodeService IBOSSGoodsCodeService;
+
+    @Autowired
+    CodeFacRecordMapper codeFacRecordMapper;
+
+    /**
+     * 厂家商品编码明细集合
+     */
+    List<FacCodeDetailDto> facCodeDetailDtoList;
+
+    /**
+     * 定义抓取履历
+     */
+    Map pullRecord=new HashMap();
+
     /**
      * @desc   : 拉取厂家商品编码
      * @author : 张潇木
      * @date   : 2022/9/23 16:54
      */
     public ResponseResultVO pullFacGoodsCode() {
+        //初始化商品编码结果集
+        facCodeDetailDtoList=new ArrayList<>();
+        //初始化抓取履历
+        pullRecord.put("CreateTime",DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));
+        pullRecord.put("Status",0);
         try {
-            //定义上次拉取成功时间
-            String historyDate= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
-            //查询上次拉取成功时间
-            List<CodeFacRecord> historyDateList = pullFacCodeRecordMapper.selectCodeHistoryTime();
-            //上次拉取成功时间赋值
-            if (historyDateList != null && historyDateList.size() > 0) {
-                historyDate = historyDateList.get(0).getCreateTime();
-            }
+            //todo 调用了接口但是异常了。status应该是0 而不是没有履历记录
+            int syncId=this.recordPullDetail(pullRecord);
+            //组装查询参数
+            FacCodeQuery facCodeQuery = this.packageQuery(null,null);
+            //定义开始时间
             Date startTime = new Date();
-            //todo
-            ResponseResultVO responseResultVO = HttpHelper.postMY(config.getMyGoodsCodeUrl(), null);
+            //调用getFacCode方法
+            this.getFacCode(facCodeQuery);
+            //定义结束时间
             Date endTime = new Date();
-            log.info("任务{},耗时{}毫秒(ms)", "厂家产品主信息", endTime.getTime() - startTime.getTime());
-
-            return ResponseResultUtil.success();
+            log.info("拉取厂家商品编码成功,耗时=>{}毫秒(ms)", endTime.getTime() - startTime.getTime());
+            //拉取到数据后,插入中台数据库
+            if(facCodeDetailDtoList.size()>0){
+                this.insertGoodsCode(facCodeDetailDtoList);
+            }
+            //将履历表状态修改为成功
+            codeFacRecordMapper.updateCodeHistoryStatusByID(new HashMap(){{put("Status",1);put("SynchID",syncId);}});
+            //处理返回值
+            return ResponseResultUtil.success(ResponseCodeEnum.SUCCESS.getCode(),"拉取厂家商品编码,并插入中台数据库成功");
         } catch (Exception ex) {
-            TransactionAspectSupport.currentTransactionStatus()
-                    .setRollbackOnly();
             log.error(ex.getMessage(), ex);
-            //返回错误数据
-            return ResponseResultUtil.error(666, "抓取并更新标准商品编码失败");
+            throw new BaseBusinessException(666,"拉取厂家商品编码失败");
+        }
+    }
+
+    /**
+     * @desc   : 插入商品编码
+     * @author : 张潇木
+     * @date   : 2022/9/25 13:44
+     */
+    public void insertGoodsCode(List<FacCodeDetailDto> list) {
+        List<IBOSSGoodsCode> ibossGoodsCodes = convert.facDTO2IBOSSGoodsCodePO(list);
+        IBOSSGoodsCodeService.insertBatch(ibossGoodsCodes);
+    }
+
+    /**
+     * @desc   : 组装查询参数
+     * @author : 张潇木
+     * @date   : 2022/9/25 10:40
+     */
+    public FacCodeQuery packageQuery(Integer pageIndex,Integer pageSize){
+        //pageIndex默认为1 pageSize默认为1000
+        FacCodeQuery facCodeQuery=new FacCodeQuery().setPageIndex(Optional.ofNullable(pageIndex).orElse(1)).setPageSize(Optional.ofNullable(pageSize).orElse(1000));
+        //查询上次拉取成功时间
+        List<CodeFacRecord> historyDateList = pullFacCodeRecordMapper.selectCodeHistoryTime();
+        //定义本次拉取成功时间
+        String endDate= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
+        //定义上次拉取成功时间赋值
+        String startDate = historyDateList != null && historyDateList.size() > 0?historyDateList.get(0).getCreateTime():endDate;
+        //设置查询条件
+        facCodeQuery.setParam(new JSONObject(){{put("startDate",startDate);put("endDate",endDate);}});
+        return facCodeQuery;
+    }
+
+
+    /**
+     * @desc   : 调用厂家商品编码接口,并整理返回体
+     * @author : 张潇木
+     * @date   : 2022/9/25 10:40
+     */
+    public void getFacCode(FacCodeQuery query){
+        ResponseResultVO resultVO = HttpHelper.postMY(config.getMyGoodsCodeUrl(), query);
+        if (ResponseCodeEnum.SUCCESS.getCode()==resultVO.getCode()) {
+            //返回值转换DTO
+            FacCodeDto facCodeDto= JSON.parseObject(resultVO.getData().toString(),FacCodeDto.class);
+            if(ResponseCodeEnum.SUCCESS.getCode().equals(facCodeDto.getCode())&&facCodeDto.getRecords()!=null){
+                facCodeDetailDtoList.addAll(facCodeDto.getRecords());
+            }else{
+                log.error("getFacCode 接口调用失败,接口返回code不等于200",JSON.toJSONString(resultVO));
+                throw new BaseBusinessException(ResponseCodeEnum.MY_GOODS_CODE_POST_FAIL.getCode(),ResponseCodeEnum.MY_GOODS_CODE_POST_FAIL.getMessage());
+            }
+            //如果不是最后一页,继续调用
+            if(facCodeDto.getPages()!=null&&facCodeDto.getPages()!=0&&query.getPageIndex()!=facCodeDto.getPages()){
+                //页码+1
+                this.getFacCode(query.setPageIndex(query.getPageIndex()+1));
+            }
+        }else{
+            log.error("getFacCode 接口调用失败,http状态不等于200",JSON.toJSONString(resultVO));
+            throw new BaseBusinessException(ResponseCodeEnum.MY_GOODS_CODE_POST_FAIL.getCode(),ResponseCodeEnum.MY_GOODS_CODE_POST_FAIL.getMessage());
         }
+
+
     }
+
     /**
      * @desc   : 记录拉取履历
      * @author : 张潇木
      * @date   : 2022/9/23 16:54
      */
-    public void recordPullDetail(){
-
+    public int recordPullDetail(Map pullRecord){
+        return codeFacRecordMapper.insertHistory(pullRecord);
     }
 }

+ 2 - 2
src/main/java/com/dk/mnls_mp/service/pullDetail/PullOrderDetailService.java

@@ -15,7 +15,7 @@ import com.dk.mnls_mp.model.dto.IBOSSDTO;
 import com.dk.mnls_mp.model.pojo.basic.*;
 import com.dk.mnls_mp.model.pojo.mnls.IBOSSData;
 import com.dk.mnls_mp.infrastructure.util.HttpHelper;
-import com.dk.mnls_mp.service.mnls.IbossDataService;
+import com.dk.mnls_mp.service.mnls.IBOSSDataService;
 import com.dongke.base.annotation.Pagination;
 import com.dongke.base.exceptionHandler.ResponseResultUtil;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
@@ -55,7 +55,7 @@ public class PullOrderDetailService {
     private PullOrderDetailMapper pullOrderDetailMapper;
 
     @Autowired
-    private IbossDataService ibossDataService;
+    private IBOSSDataService ibossDataService;
 
 
 

+ 9 - 0
src/main/java/com/dk/mnls_mp/test/ApiTest.java

@@ -5,6 +5,7 @@ import com.dk.mnls_mp.constant.Constant;
 import com.dk.mnls_mp.mapper.basic.CustomerMapper;
 import com.dk.mnls_mp.model.pojo.basic.Customer;
 import com.dk.mnls_mp.service.iboss.PullIbossDataService;
+import com.dk.mnls_mp.service.mnls.PullFacGoodsCodeService;
 import com.dk.mnls_mp.service.pullDetail.PullOrderDetailService;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
@@ -33,6 +34,9 @@ public class ApiTest {
     PullOrderDetailService pullOrderDetailService;
 
     @Autowired
+    PullFacGoodsCodeService pullFacGoodsCodeService;
+
+    @Autowired
     CustomerMapper customerMapper;
 
     @Test
@@ -50,4 +54,9 @@ public class ApiTest {
         pullOrderDetailService.testSyncCode();
     }
 
+    @Test
+    public void pullFacGoodsCode(){
+        pullFacGoodsCodeService.pullFacGoodsCode();
+    }
+
 }