czt
2025-09-22 11430ae628f098654579811131abc522d679e870
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
@@ -17,6 +17,7 @@
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;
@@ -95,22 +96,22 @@
            for (Fz40InoutRecord sysData : list) {
                listIds = new ArrayList<>();
                //判断是否为船运
                if(StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")){
                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;
                    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 ++;
                            listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4, 10) + String.valueOf(idNum).substring(1));
                            idNum++;
                        }
                    }else {
                    } else {
                        listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                    }
                }else {
                } else {
                    listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                }
@@ -124,7 +125,7 @@
                for (String listId : listIds) {
                    //查询粮食入库信息,若为空则不进行同步上传
                    api1102List = api1202Rep.getDataById(listId);
                    if(null == api1102List || api1102List.isEmpty()){
                    if (null == api1102List || api1102List.isEmpty()) {
                        continue;
                    }
@@ -134,19 +135,25 @@
                    //货位代码
                    apiData.setHwdm(api1102List.get(0).getHwdm());
                    apiData.setRkywdh(api1102List.get(0).getRkywdh());
                    if(null == sysData.getFullWeightTime()){
                    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));
                    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.difDay1(sysData.getRegisterTime(), sysData.getCheckTime());
                            apiData.setRkjydh("14" + isCheckTime + String.format("%02d", difDay) + api1102List.get(0).getRkywdh().substring(10));
                        }
                    }
                    apiData.setQysj(sysData.getRegisterTime());
                    //船运使用入库单据号做质检单号
                    if (StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")) {
                        apiData.setRkjydh(api1102List.get(0).getRkywdh());
                    }
                    apiData.setQyrxm(sysData.getCheckUser());
                    //扦样方式 2-智能随机
                    apiData.setQyfs("2");
@@ -170,26 +177,39 @@
                        zkj += ",0.0";
                        zkl += ",0.0";
                    }
                    if(jyxm.length() > 0){
                    if (jyxm.length() > 0) {
                        jyxm = jyxm.substring(1);
                    }
                    if(jyz.length() > 0){
                    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.setZkj(StringUtils.isEmpty(zkj) ? "" : zkj.substring(1));
                    apiData.setZkl(StringUtils.isEmpty(zkl) ? "" : zkl.substring(1));
                    if ("UNPASS".equals(sysData.getCheckStatus())) {
                        apiData.setJyjg("0");
                    }else {
                    } else {
                        apiData.setJyjg("1");
                    }
                    apiData.setJyrxm(sysData.getCheckUser());
                    apiData.setJysj(DateUtils.addMinutes(sysData.getRegisterTime(), 30));
                    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().substring(0,3));
                    String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                    apiData.setLspzdm(mappingCode);
                    //保管员复核
@@ -209,9 +229,9 @@
                    apiData.setSyncTime(new Date());
                    api1203List = api1203Rep.getDataById(apiData.getRkjydh());
                    if(null == api1203List || api1203List.isEmpty()){
                    if (null == api1203List || api1203List.isEmpty()) {
                        apiData.setCzbz(Constant.CZBZ_I);
                    }else {
                    } else {
                        apiData.setCzbz(api1203List.get(0).getCzbz());
                    }
@@ -225,4 +245,18 @@
            apiLogRep.save(apiLog);
        }
    }
    public static void main(String[] args) {
        //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
        String id = "142508200001";
        String time = id.substring(2, 8);
        String isCheckTime = "250821";
        if (!isCheckTime.equals(time)) {
            int difDay = 2;
            String idd = "14" + isCheckTime + difDay + id.substring(9);
            System.out.println(idd);
        }
    }
}