CZT
2023-10-11 fafc8d352aa1a4f943dd9e79d14e8e93ee12ce1f
src/main/java/com/fzzy/async/fzzy35/impl/Fzzy35Sync1203.java
@@ -1,24 +1,27 @@
package com.fzzy.async.fzzy35.impl;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.Api1105;
import com.fzzy.api.entity.Api1203;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.entity.GbCheckItem;
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiCommonService;
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.fzzy35.entity.InoutRecord;
import com.fzzy.async.fzzy35.entity.CheckItem;
import com.fzzy.async.fzzy35.entity.Fz35InoutRecord;
import com.fzzy.async.fzzy35.entity.Fz35CheckItem;
import com.fzzy.async.fzzy35.repository.Fzzy35Sync1202Rep;
import com.fzzy.async.fzzy35.repository.Fzzy35Sync1203Rep;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -38,9 +41,10 @@
    private Fzzy35Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy35Sync1203Rep fzzySync1203Rep;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private Api1202Rep api1202Rep;
    @Autowired
    private Api1203Rep api1203Rep;
    @Autowired
@@ -71,7 +75,7 @@
        apiLog.setId(ContextUtil.getUUID());
        try {
            //获取粮食入库记录信息
            List<InoutRecord> list = fzzySync1202Rep.listInoutRecord(deptId, INOUT_TYPE_IN, start, end);
            List<Fz35InoutRecord> list = fzzySync1202Rep.listInoutRecord(deptId, INOUT_TYPE_IN, start, end);
            if (null == list || list.isEmpty()) {
                log.info("-------------没有获取到粮食入库信息------------------");
@@ -80,36 +84,47 @@
            Api1203 apiData;
            Api1105 api1105;
            List<CheckItem> checkItems;
            List<Fz35CheckItem> fz35CheckItems;
            List<GbCheckItem> gbCheckList;
            String jyxm;
            String jyz;
            String zkj;
            String zkl;
            for (InoutRecord sysData : list) {
            List<Api1203> api1203List;
            List<Api1202> api1102List;
            for (Fz35InoutRecord sysData : list) {
                //查询粮食入库信息,若为空则不进行同步上传
                api1102List = api1202Rep.getDataByBizId(sysData.getId());
                if(null == api1102List || api1102List.isEmpty()){
                    continue;
                }
                //获取入库质检信息
                checkItems = fzzySync1203Rep.listInoutCheckItem(sysData.getCheckId());
                if (null == checkItems || checkItems.isEmpty()) {
                fz35CheckItems = fzzySync1203Rep.listInoutCheckItem(sysData.getCheckId(), deptId.substring(0, 4));
                if (null == fz35CheckItems || fz35CheckItems.isEmpty()) {
                    log.info("-------------没有获取到当前入库质检信息--------------");
                    continue;
                }
                //获取货位信息
                api1105 = commonService.getApi1105Cache(sysData.getDepotId());
                if (null == api1105) {
                    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 = new Api1203();
                apiData.setId(sysData.getId());
                //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                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.setRkjydh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                //货位代码
                apiData.setHwdm(api1105.getHwdm());
                apiData.setRkywdh(apiData.getRkjydh());
                apiData.setQysj(sysData.getFullWeightTime());
                apiData.setQysj(sysData.getRegisterTime());
                apiData.setQyrxm(sysData.getCheckUser());
                //扦样方式 2-智能随机
                apiData.setQyfs("2");
@@ -119,37 +134,46 @@
                jyz = "";
                zkj = "";
                zkl = "";
                for (CheckItem checkItem : checkItems) {
                    gbCheckList = gbCheckItemRep.findByBizCode(checkItem.getStandardId());
                for (Fz35CheckItem fz35CheckItem : fz35CheckItems) {
                    gbCheckList = gbCheckItemRep.findByBizCode(fz35CheckItem.getStandardId());
                    if (gbCheckList == null || gbCheckList.isEmpty()) {
                        continue;
                    }
                    if (StringUtils.isEmpty(fz35CheckItem.getValue())) {
                        continue;
                    }
                    jyxm += gbCheckList.get(0).getCode() + ",";
                    jyz += checkItem.getValue() + ",";
                    zkj += "0,";
                    zkl += "0,";
                    jyz += fz35CheckItem.getValue() + ",";
                    zkj += ",0.0";
                    zkl += ",0.0";
                }
                apiData.setJyxm(jyxm);
                apiData.setJyz(jyz);
                apiData.setZkj(zkj);
                apiData.setZkl(zkl);
                apiData.setJyjg("0");
                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(sysData.getFullWeightTime());
                //apiData.setJyjg("");
                apiData.setJysj(DateUtils.addMinutes(sysData.getRegisterTime(), 90));
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety().substring(0,3));
                apiData.setLspzdm(mappingCode);
                //保管员复核
                apiData.setBgyfh(apiData.getJyjg());
                //粮食等级
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
                apiData.setLsdd(mappingCode);
                //操作标志及最后更新时间
                apiData.setCzbz(Constant.CZBZ_I);
                apiData.setZhgxsj(sysData.getCompleteTime());
                //业务id、库区编码、同步时间
@@ -157,6 +181,13 @@
                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());