HsCodeService.java 3.31 KB
package com.erry.iclear.dateInterface.service;

import com.erry.iclear.dateInterface.api.response.ResultHsCode;
import com.erry.iclear.dateInterface.entity.HsCode;
import com.erry.iclear.dateInterface.repository.HsCodeRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;

/**
 * hscode service
 * mt
 * 2022年2月10日16:26:34
 */
@Service
@Slf4j
public class HsCodeService {
    @Autowired
    HsCodeRepository hsCodeRepository;
    /**
     * 根据hscode编码查询对应的hscode
     * @param hscode
     * @return
     */
    public ResultHsCode findHsCodeListByCode(String hscode){
        ResultHsCode resultHsCode = new ResultHsCode(Boolean.FALSE,"","",null);
        try{
            if(hscode.length() > 2000){
                resultHsCode.setCode("30102");
                resultHsCode.setMsg("参数:hscode编码字段长度超过2000");
                return resultHsCode;
            }
            String[] hscodeArrays = hscode.split(",");
            if(hscodeArrays.length > 100){
                resultHsCode.setCode("30100");
                resultHsCode.setMsg("hscode编码个数超过100个");
                return resultHsCode;
            }
            List<String> skuCodeList = Arrays.asList(hscodeArrays);
            List<HsCode> hsCodeList = this.hsCodeRepository.findHsCodeListByCode(skuCodeList);
            //如果未查找到对应的hscode则构造一条未找到数据返回
            skuCodeList.forEach(code ->{
                boolean exist = false;
                for (HsCode hsCode : hsCodeList) {
                    if(hsCode.getSkuCode().equals(code)){
                        exist = true;
                    }
                }
                //如果不存在则构造一条不存在数据
                if(!exist){
                    HsCode hsCode = new HsCode();
                    hsCode.setSkuCode(code);
                    hsCode.setRemark("未找到对应hscode数据");
                    hsCodeList.add(hsCode);
                }
            });
            resultHsCode.setSuccess(Boolean.TRUE);
            resultHsCode.setCode("0");
            resultHsCode.setMsg("操作成功");
            resultHsCode.setHsCodeResultList(hsCodeList);
        }catch(Exception ex){
            log.error(ex.getMessage(),ex);
            resultHsCode.setSuccess(Boolean.FALSE);
            resultHsCode.setCode("30101");
            resultHsCode.setMsg("数据查询异常");
        }
        return resultHsCode;
    }

    /**
     * 查询所有有效hscode
     * @return
     */
    public ResultHsCode findAllHsCodeList(){
        ResultHsCode resultHsCode = new ResultHsCode(Boolean.FALSE,"","",null);
        try{
            List<HsCode> hsCodeList = this.hsCodeRepository.findAllHsCodeList();
            resultHsCode.setSuccess(Boolean.TRUE);
            resultHsCode.setCode("0");
            resultHsCode.setMsg("操作成功");
            resultHsCode.setHsCodeResultList(hsCodeList);
        }catch(Exception ex){
            log.error(ex.getMessage(),ex);

            resultHsCode.setSuccess(Boolean.FALSE);
            resultHsCode.setCode("30101");
            resultHsCode.setMsg("数据查询异常");
        }
        return resultHsCode;
    }
}