CZT
2023-11-20 b19a8901f4060dcfd4cc2477374da2a7da267336
src/main/java/com/fzzy/async/fzzy35/impl/Fzzy35Sync1109.java
@@ -2,10 +2,14 @@
import com.fzzy.api.Constant;
import com.fzzy.api.entity.Api1109;
import com.fzzy.api.entity.Api1202;
import com.fzzy.api.entity.Api1205;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.FileUtil;
import com.fzzy.api.utils.FileUtils;
import com.fzzy.api.view.repository.Api1109Rep;
import com.fzzy.api.view.repository.Api1202Rep;
import com.fzzy.api.view.repository.Api1205Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.async.fzzy35.entity.Fz35FileInfo;
import com.fzzy.async.fzzy35.entity.Fz35InoutRecord;
@@ -16,6 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 文件信息
@@ -43,6 +48,11 @@
    private final static String BIZ_TAG_WEIGHT_EMPTY = "WEIGHT_EMPTY";
    private final static String BIZ_TAG_REGISTER = "REGISTER";
    private final static String BIZ_TAG_HANDLE = "HANDLE";
    /**
     * 出入库类型
     */
    private final static String INOUT_TYPE_IN = "IN";
    private final static String INOUT_TYPE_OUT = "OUT";
    @Autowired
    private Fzzy35Sync1109Rep fzzySync1109Rep;
@@ -51,9 +61,13 @@
    @Autowired
    private Api1109Rep api1109Rep;
    @Autowired
    private Api1202Rep api1202Rep;
    @Autowired
    private Api1205Rep api1205Rep;
    @Autowired
    private ApiLogRep apiLogRep;
    @Autowired
    private FileUtil fileUtil;
    private FileUtils fileUtil;
    /**
     * 同步文件接口
@@ -75,7 +89,7 @@
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Fz35FileInfo> list = fzzySync1109Rep.listFileInfo(start, end);
            List<Fz35InoutRecord> list = fzzySync1202Rep.listInAndOutRecord(deptId, INOUT_TYPE_IN, INOUT_TYPE_OUT, start, end);
            if (null == list || list.isEmpty()) {
                log.info("-------------没有获取到文件信息------------------");
@@ -87,74 +101,93 @@
            String wjlx;
            String wjmc;
            List<Api1109> api1109List;
            List<Fz35InoutRecord> listInout;
            for (Fz35FileInfo sysData : list) {
                if (StringUtils.isEmpty(sysData.getBizId())) {
            List<Api1202> api1202List;
            List<Api1205> api1205List;
            String str = "";
            List<Fz35FileInfo> fileList; //文件信息
            List<String> ids;
            for (Fz35InoutRecord inoutData : list) {
                if (inoutData.getRecordStatus().equals("DEL") || inoutData.getRecordStatus().equals("ERROR")) {
                    continue;
                }
                ids = new ArrayList<>();
                wjlx = "";
                //根据图片id查询对应出入库信息
                listInout = fzzySync1202Rep.listInoutRecordById(sysData.getBizId());
                if(null == listInout || listInout.isEmpty()){
                    continue;
                }
                //若出入库信息为删除或者错误状态,则不同步
                if("DEL".equals(listInout.get(0).getRecordStatus()) || "ERROR".equals(listInout.get(0).getRecordStatus())){
                    continue;
                }
                //若出入库信息中入库重量为空或为0,则不同步
                if(null == listInout.get(0).getRecordWeight() || listInout.get(0).getRecordWeight() == 0){
                    continue;
                }
                //只同步称重
                if(BIZ_TAG_WEIGHT_FULL.equals(sysData.getBizTag()) || BIZ_TAG_WEIGHT_EMPTY.equals(sysData.getBizTag())){
                    wjlx = "";
                    wjmc = kqdm;
                    //入库抓拍图
                    if (sysData.getBizId().startsWith(IMG_START_R)) {
                        wjlx = IMG_TYPE_2;
                        wjmc += "_" + Constant.INOUT_TYPE_14 + sysData.getBizId().substring(4);
                    }
                    //出库抓拍图
                    if (sysData.getBizId().startsWith(IMG_START_C)) {
                        wjlx = IMG_TYPE_3;
                        wjmc += "_" + Constant.INOUT_TYPE_15 + sysData.getBizId().substring(4);
                    }
                    //若文件类型为空,则跳过
                    if(StringUtils.isEmpty(wjlx)){
                if(inoutData.getType().startsWith(INOUT_TYPE_IN)){
                    wjlx = IMG_TYPE_2;
                    api1202List = api1202Rep.getDataByBizId(inoutData.getId());
                    if (null == api1202List || api1202List.isEmpty()) {
                        continue;
                    }
                    apiData = new Api1109();
                    //主键id
                    apiData.setId(UUID.randomUUID().toString());
                    //文件路径
                    apiData.setWjdz(fileUtil.getInoutFilePath(sysData.getCreateTime()) + sysData.getFileName());
                    //文件名称
                    wjmc = getImgNameType(wjmc, sysData.getBizTag(), sysData.getBizId(), sysData.getFileName(), map);
                    apiData.setWjmc(wjmc);
                    //文件类型
                    apiData.setWjlx(wjlx);
                    //操作标志及最后更新时间
                    apiData.setZhgxsj(new Date());
                    //业务id、库区编码、同步时间
                    apiData.setBizId(sysData.getFileId());
                    apiData.setKqdm(kqdm);
                    apiData.setSyncTime(new Date());
                    api1109List = api1109Rep.getDataByBizId(apiData.getBizId());
                    if(null == api1109List || api1109List.isEmpty()){
                        apiData.setCzbz(Constant.CZBZ_I);
                    }else {
                        apiData.setCzbz(api1109List.get(0).getCzbz());
                    ids = api1202List.stream().map(Api1202::getRkywdh).collect(Collectors.toList());
                }
                if (inoutData.getType().equals(INOUT_TYPE_OUT)) {
                    wjlx = IMG_TYPE_3;
                    api1205List = api1205Rep.getDataByBizId(inoutData.getId());
                    if (null == api1205List || api1205List.isEmpty()) {
                        continue;
                    }
                    ids = api1205List.stream().map(Api1205::getCkywdh).collect(Collectors.toList());
                }
                //若文件类型为空,则跳过
                if (StringUtils.isEmpty(wjlx)) {
                    continue;
                }
                //根据出入库单号获取对应文件信息
                fileList = fzzySync1109Rep.listFileInfoByBizId(inoutData.getId());
                if (null == fileList || fileList.isEmpty()) {
                    continue;
                }
                int num = 1;
                int idsNum = 0;
                for (Fz35FileInfo sysData : fileList) {
                    //只同步称重
                    if(BIZ_TAG_WEIGHT_FULL.equals(sysData.getBizTag()) || BIZ_TAG_WEIGHT_EMPTY.equals(sysData.getBizTag())){
                        if(num > 6){
                            num = 1;
                            idsNum ++;
                        }
                        if(idsNum == ids.size()){
                            break;
                        }
                        str = ids.get(idsNum);
                    //保存数据
                    api1109Rep.save(apiData);
                    log.info("1109---同步数据:{}", apiData.toString());
                        wjmc = kqdm + "_" + str;
                        apiData = new Api1109();
                        //主键id
                        apiData.setId(UUID.randomUUID().toString());
                        //文件路径
                        apiData.setWjdz(fileUtil.getInoutFilePath(sysData.getCreateTime()) + sysData.getFileName());
                        //文件名称
                        wjmc = getImgNameType(wjmc, sysData.getBizTag(), str, sysData.getFileName(), map);
                        apiData.setWjmc(wjmc);
                        //文件类型
                        apiData.setWjlx(wjlx);
                        //操作标志及最后更新时间
                        apiData.setZhgxsj(new Date());
                        //业务id、库区编码、同步时间
                        apiData.setBizId(sysData.getFileId());
                        apiData.setKqdm(kqdm);
                        apiData.setSyncTime(new Date());
                        api1109List = api1109Rep.getDataByBizId(apiData.getBizId());
                        if(null == api1109List || api1109List.isEmpty()){
                            apiData.setCzbz(Constant.CZBZ_I);
                        }else {
                            apiData.setCzbz(api1109List.get(0).getCzbz());
                        }
                        //保存数据
                        api1109Rep.save(apiData);
                        num ++;
                        log.info("1109---同步数据:{}", apiData.toString());
                    }
                }
            }
        } catch (Exception e) {