CZT
2023-07-18 254da24705ba4daa8bf289a2c10b912fb8c53ad2
src/main/java/com/fzzy/async/fzzy35/impl/Fzzy35Sync1208.java
@@ -8,13 +8,12 @@
import com.fzzy.api.view.repository.Api1102Rep;
import com.fzzy.api.view.repository.Api1208Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.async.fzzy35.entity.Depot;
import com.fzzy.async.fzzy35.entity.Fz35Depot;
import com.fzzy.async.fzzy35.repository.Fzzy35Sync1208Rep;
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.util.Date;
import java.util.List;
@@ -47,6 +46,18 @@
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
//        //修改库存数据为每天2点同步,每天只同步一条
//        Date nowTime = new Date();
//        int hour = ContextUtil.getHourOfDay(nowTime);
//        if (!String.valueOf(hour).equals("2")) {
//            log.info("-------------当前时间不在2点钟,1208库存接口数据接口不同步------------------");
//            return;
//        }
//        int minute = ContextUtil.getMinuteOfHour(nowTime);
//        if (!String.valueOf(minute).equals("00")) {
//            log.info("-------------当前时间不在2点钟0分,1208库存接口数据接口不同步------------------");
//            return;
//        }
        log.info("-------------1208接口数据开始同步------------------");
        //同步数据,只记录失败的信息
@@ -58,7 +69,7 @@
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Depot> list = fzzySync1208Rep.listDepot(deptId);
            List<Fz35Depot> list = fzzySync1208Rep.listDepot(deptId);
            if (null == list || list.isEmpty()) {
@@ -72,69 +83,80 @@
            Api1208 apiData;
            Api1105 api1105;
          //  List<GbArea> gbAreaList;
            for (Depot depot : list) {
            for (Fz35Depot fz35Depot : list) {
                //获取货位信息
                api1105 = commonService.getApi1105Cache(depot.getId());
                api1105 = commonService.getApi1105Cache(fz35Depot.getId());
                if (null == api1105) {
                    continue;
                }
                apiData = api1208Rep.getOne(api1105.getHwdm());
                if (apiData == null){
                    apiData = new Api1208();
                    apiData.setCzbz(Constant.CZBZ_I);
                }else{
                    //操作标志及最后更新时间
                }
                apiData = new Api1208();
                apiData.setHwdm(api1105.getHwdm());
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, depot.getFoodVariety());
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, fz35Depot.getFoodVariety());
                apiData.setLspzdm(mappingCode);
                //粮食性质
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, depot.getFoodType());
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, fz35Depot.getFoodType());
                apiData.setLsxzdm(mappingCode);
                //粮食等级
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, depot.getFoodLevel());
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, fz35Depot.getFoodLevel());
                apiData.setLsdjdm(mappingCode);
                apiData.setShnd(depot.getFoodYear());
                apiData.setShnd(fz35Depot.getFoodYear());
                //产地代码
                String cd = commonService.getFoodLocationIdFromCache(depot.getFoodLocation());
                String cd = commonService.getFoodLocationIdFromCache(fz35Depot.getFoodLocation());
                apiData.setCd(cd);
                apiData.setBgy(depot.getStoreKeeperName());
                apiData.setBgy(fz35Depot.getStoreKeeperName());
                //粮权归属单位
                apiData.setLqgsdwdm(api1102.getDwdm());
                //粮权行政区划代码
                apiData.setLqxzqhdm(api1102.getDwdm().substring(2, 8));
                //管理方式-默认直储
                apiData.setGlfs("01");
                //收储地点-默认库内
                apiData.setScdd("1");
                //储粮方式
                apiData.setClfs(fz35Depot.getStoreType());
                //货位状态
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_HWZT, depot.getDepotStatus());
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_HWZT, fz35Depot.getDepotStatus());
                apiData.setHwzt(mappingCode);
                //国别
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_GB, depot.getFoodLocation());
                if(StringUtils.isNotEmpty(mappingCode)){
                    apiData.setGb(mappingCode);
                }else{
                    apiData.setGb("156");
                if(null == fz35Depot.getStoreDate()){
                    fz35Depot.setStoreDate(new Date());
                }
                apiData.setRcsj(depot.getStoreDate());
                apiData.setSjsl(depot.getStorageReal());
                apiData.setJjsl(depot.getStorageReal());
                //入仓时间
                apiData.setRcsj(fz35Depot.getStoreDate());
                //封仓日期
                if("3".equals(apiData.getHwzt())){
                    apiData.setFcrq(DateUtils.addDays(fz35Depot.getStoreDate(), 10));
                }
                //出仓完成时间
                if("1".equals(apiData.getHwzt())){
                    apiData.setCcwcsj(DateUtils.addDays(fz35Depot.getStoreDate(), 5));
                }
                //国别
                apiData.setGb("156");
                apiData.setSjsl(fz35Depot.getStorageReal());
                apiData.setJjsl(fz35Depot.getStorageReal());
                apiData.setSjzlxg(6);
                apiData.setLdtj(10000);
                apiData.setZhgxsj(new Date());
                //业务id、库区编码、同步时间
                apiData.setBizId(depot.getId());
                apiData.setBizId(fz35Depot.getId());
                apiData.setKqdm(kqdm);
                apiData.setSyncTime(new Date());
                apiData.setId(api1105.getHwdm());
                //保存数据
                //库存每次新增
                apiData.setCzbz(Constant.CZBZ_I);
                apiData.setId(ContextUtil.getCurTimeMillis());
                //保存数据
                api1208Rep.save(apiData);
            }