CZT
2024-01-13 237c2bc25b16fa1705335173cd0c3592fd688ae0
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
@@ -4,19 +4,24 @@
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.DateUtil;
import com.fzzy.api.view.repository.Api1202Rep;
import com.fzzy.api.view.repository.Api1203Rep;
import com.fzzy.api.view.repository.ApiLogRep;
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.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -33,6 +38,8 @@
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
    @Autowired
    private Fzzy40Sync1203Rep fzzySync1203Rep;
    @Autowired
@@ -83,11 +90,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));
                }
                //获取入库质检信息
@@ -97,82 +121,98 @@
                    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));
                }
                apiData.setQysj(sysData.getFullWeightTime());
                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";
                    //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                    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()) {
                            continue;
                        }
                        if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
                            continue;
                        }
                        jyxm += gbCheckList.get(0).getCode() + ",";
                        jyz += fz40CheckItem.getValue() + ",";
                        zkj += ",0.0";
                        zkl += ",0.0";
                    }
                    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());
                    apiData.setJysj(DateUtils.addMinutes(sysData.getRegisterTime(), 30));
                    //粮食品种
                    String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety().substring(0,3));
                    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.getFullWeightTime(), 5));
                //粮食品种
                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);