YYC
2025-08-17 d52072155b4bc241b9efc0ad56a20c76c91c737d
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
@@ -11,10 +11,13 @@
import com.fzzy.api.view.repository.GbCheckItemRep;
import com.fzzy.async.fzzy40.entity.Fz40CheckItem;
import com.fzzy.async.fzzy40.entity.Fz40InoutRecord;
import com.fzzy.async.fzzy40.entity.Fz40InoutRecordItem;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1202Rep;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1203Rep;
import com.fzzy.async.fzzy40.repository.Fzzy40SyncInoutRecordItemRep;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -36,6 +39,8 @@
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
    @Autowired
    private Fzzy40Sync1203Rep fzzySync1203Rep;
    @Autowired
@@ -86,11 +91,28 @@
            String zkl;
            List<Api1203> api1203List;
            List<Api1202> api1102List;
            List<Fz40InoutRecordItem> listInoutRecordItem;
            List<String> listIds;
            for (Fz40InoutRecord sysData : list) {
                //查询粮食入库信息,若为空则不进行同步上传
                api1102List = api1202Rep.getDataByBizId(sysData.getId());
                if(null == api1102List || api1102List.isEmpty()){
                    continue;
                listIds = new ArrayList<>();
                //判断是否为船运
                if (StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")) {
                    listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId());
                    if (null != listInoutRecordItem && listInoutRecordItem.size() > 0) {
                        int idNum = Integer.valueOf(sysData.getId().substring(12)) * 100 + 10001;
                        for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) {
                            if ("DEL".equals(fz40InoutRecordItem.getRecordStatus())) {
                                continue;
                            }
                            listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4, 10) + String.valueOf(idNum).substring(1));
                            idNum++;
                        }
                    } else {
                        listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                    }
                } else {
                    listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                }
                //获取入库质检信息
@@ -100,91 +122,116 @@
                    continue;
                }
                apiData = new Api1203();
                apiData.setRkjydh(api1102List.get(0).getRkywdh());
                //货位代码
                apiData.setHwdm(api1102List.get(0).getHwdm());
                apiData.setRkywdh(api1102List.get(0).getRkywdh());
                if(null == sysData.getFullWeightTime()){
                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 5));
                }
                //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
                Date time = dateFormat.parse(apiData.getRkjydh().substring(2, 8));
                int numDay = DateUtil.difDay(DateUtil.getCurZero(sysData.getRegisterTime()), DateUtil.getCurZero(time));
                if(numDay != 0){
                    sysData.setRegisterTime(DateUtils.addDays(sysData.getRegisterTime(), numDay));
                }
                apiData.setQysj(sysData.getRegisterTime());
                apiData.setQyrxm(sysData.getCheckUser());
                //扦样方式 2-智能随机
                apiData.setQyfs("2");
                //检测项,检测值,增扣价及增扣量
                jyxm = "";
                jyz = "";
                zkj = "";
                zkl = "";
                for (Fz40CheckItem fz40CheckItem : fz40CheckItems) {
                    gbCheckList = gbCheckItemRep.findByBizCode(fz40CheckItem.getStandardId());
                    if (gbCheckList == null || gbCheckList.isEmpty()) {
                for (String listId : listIds) {
                    //查询粮食入库信息,若为空则不进行同步上传
                    api1102List = api1202Rep.getDataById(listId);
                    if (null == api1102List || api1102List.isEmpty()) {
                        continue;
                    }
                    if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
                        continue;
                    apiData = new Api1203();
                    apiData.setRkjydh(api1102List.get(0).getRkywdh());
                    //货位代码
                    apiData.setHwdm(api1102List.get(0).getHwdm());
                    apiData.setRkywdh(api1102List.get(0).getRkywdh());
                    if (null == sysData.getFullWeightTime()) {
                        sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 5));
                    }
                    jyxm += gbCheckList.get(0).getCode() + ",";
                    jyz += fz40CheckItem.getValue() + ",";
                    zkj += ",0.0";
                    zkl += ",0.0";
                    //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                    String time = apiData.getRkjydh().substring(2, 8);
                    if (sysData.getCheckTime() != null) {
                        String isCheckTime = DateFormatUtils.format(sysData.getCheckTime(), "yyMMdd");
                        if (!isCheckTime.equals(time)) {
                            int difDay = DateUtil.difDay(sysData.getRegisterTime(), sysData.getCheckTime());
                            apiData.setRkjydh("14" + isCheckTime + difDay + api1102List.get(0).getRkywdh().substring(9));
                        }
                    }
                    apiData.setQyrxm(sysData.getCheckUser());
                    //扦样方式 2-智能随机
                    apiData.setQyfs("2");
                    //检测项,检测值,增扣价及增扣量
                    jyxm = "";
                    jyz = "";
                    zkj = "";
                    zkl = "";
                    for (Fz40CheckItem fz40CheckItem : fz40CheckItems) {
                        gbCheckList = gbCheckItemRep.findByBizCode(fz40CheckItem.getStandardId());
                        if (gbCheckList == null || gbCheckList.isEmpty()) {
                            continue;
                        }
                        if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
                            continue;
                        }
                        jyxm += "," + gbCheckList.get(0).getCode();
                        jyz += "," + fz40CheckItem.getValue();
                        zkj += ",0.0";
                        zkl += ",0.0";
                    }
                    if (jyxm.length() > 0) {
                        jyxm = jyxm.substring(1);
                    }
                    if (jyz.length() > 0) {
                        jyz = jyz.substring(1);
                    }
                    apiData.setJyxm(jyxm);
                    apiData.setJyz(jyz);
                    apiData.setZkj(StringUtils.isEmpty(zkj) ? "" : zkj.substring(1));
                    apiData.setZkl(StringUtils.isEmpty(zkl) ? "" : zkl.substring(1));
                    if ("UNPASS".equals(sysData.getCheckStatus())) {
                        apiData.setJyjg("0");
                    } else {
                        apiData.setJyjg("1");
                    }
                    apiData.setJyrxm(sysData.getCheckUser());
                    if (null == sysData.getCheckTime()) {
                        sysData.setCheckTime(DateUtils.addMinutes(sysData.getFullWeightTime(), -5));
                    }
                    if (sysData.getCheckTime().after(sysData.getEmptyWeightTime())) {
                        sysData.setCheckTime(DateUtils.addMinutes(sysData.getFullWeightTime(), -5));
                    }
                    apiData.setJysj(sysData.getCheckTime());
                    if (null == sysData.getSampleTime()) {
                        sysData.setSampleTime(DateUtils.addMinutes(sysData.getCheckTime(), -1));
                    }
                    if (sysData.getSampleTime().after(sysData.getCheckTime())) {
                        sysData.setSampleTime(DateUtils.addMinutes(sysData.getCheckTime(), -1));
                    }
                    apiData.setQysj(sysData.getSampleTime());
                    //粮食品种
                    String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                    apiData.setLspzdm(mappingCode);
                    //保管员复核
                    apiData.setBgyfh(apiData.getJyjg());
                    apiData.setSpaqzbsfhg("1");
                    //粮食等级
                    mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
                    apiData.setLsdd(mappingCode);
                    //操作标志及最后更新时间
                    apiData.setZhgxsj(sysData.getCompleteTime());
                    //业务id、库区编码、同步时间
                    apiData.setBizId(sysData.getId());
                    apiData.setKqdm(kqdm);
                    apiData.setSyncTime(new Date());
                    api1203List = api1203Rep.getDataById(apiData.getRkjydh());
                    if (null == api1203List || api1203List.isEmpty()) {
                        apiData.setCzbz(Constant.CZBZ_I);
                    } else {
                        apiData.setCzbz(api1203List.get(0).getCzbz());
                    }
                    api1203Rep.save(apiData);
                    log.info("1203---同步数据:{}", apiData.toString());
                }
                apiData.setJyxm(jyxm);
                apiData.setJyz(jyz);
                apiData.setZkj(zkj.substring(1));
                apiData.setZkl(zkl.substring(1));
                if("UNPASS".equals(sysData.getCheckStatus())){
                    apiData.setJyjg("0");
                }
                if("PASS".equals(sysData.getCheckStatus())){
                    apiData.setJyjg("1");
                }
                apiData.setJyrxm(sysData.getCheckUser());
                apiData.setJysj(DateUtils.addMinutes(sysData.getRegisterTime(), 30));
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                apiData.setLspzdm(mappingCode);
                //保管员复核
                apiData.setBgyfh(apiData.getJyjg());
                //粮食等级
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
                apiData.setLsdd(mappingCode);
                //操作标志及最后更新时间
                apiData.setZhgxsj(sysData.getCompleteTime());
                //业务id、库区编码、同步时间
                apiData.setBizId(sysData.getId());
                apiData.setKqdm(kqdm);
                apiData.setSyncTime(new Date());
                api1203List = api1203Rep.getDataById(apiData.getRkjydh());
                if(null == api1203List || api1203List.isEmpty()){
                    apiData.setCzbz(Constant.CZBZ_I);
                }else {
                    apiData.setCzbz(api1203List.get(0).getCzbz());
                }
                //保存数据
                api1203Rep.save(apiData);
                log.info("1203---同步数据:{}", apiData.toString());
            }
        } catch (Exception e) {
            log.error("---同步失败----{}", e);