CZT
2023-11-20 b19a8901f4060dcfd4cc2477374da2a7da267336
src/main/java/com/fzzy/async/fzzy35/impl/Fzzy35Sync1202.java
@@ -7,21 +7,21 @@
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.ApiLogRep;
import com.fzzy.async.fzzy35.entity.InoutNoticeIn;
import com.fzzy.async.fzzy35.entity.InoutRecord;
import com.fzzy.async.fzzy35.entity.Fz35InoutNoticeIn;
import com.fzzy.async.fzzy35.entity.Fz35InoutRecord;
import com.fzzy.async.fzzy35.repository.Fzzy35Sync1202Rep;
import com.fzzy.async.fzzy35.repository.Fzzy35SyncNoticeInRep;
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.util.Calendar;
import java.util.Date;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * 粮食入库信息
@@ -68,7 +68,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("-------------没有获取到粮食入库信息------------------");
@@ -77,9 +77,19 @@
            Api1202 apiData;
            Api1105 api1105;
            List<InoutNoticeIn> listInoutNotice;
            Calendar c = Calendar.getInstance();
            for (InoutRecord sysData : list) {
            List<Fz35InoutNoticeIn> listInoutNotice;
            List<Api1202> api1202List;
            for (Fz35InoutRecord sysData : list) {
                if (sysData.getRecordStatus().equals("DEL") || sysData.getRecordStatus().equals("ERROR")) {
                    continue;
                }
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                    sysData.setRecordWeight(sysData.getSettleWeight());
                }
                //判断净重是否大于0,等于0表示不合格,不进行同步上传
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                    continue;
                }
                //获取货位信息
                api1105 = commonService.getApi1105Cache(sysData.getDepotId());
                if (null == api1105) {
@@ -87,9 +97,17 @@
                }
                apiData = new Api1202();
                apiData.setId(sysData.getId());
                apiData.setRkywdh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
                Date time = dateFormat.parse(sysData.getId().substring(2, 10));
                int numDay = DateUtil.difDay(DateUtil.getCurZero(sysData.getCompleteTime()), DateUtil.getCurZero(time));
                if(numDay != 0){
                    sysData.setFullWeightTime(DateUtils.addDays(sysData.getFullWeightTime(), numDay));
                    sysData.setEmptyWeightTime(DateUtils.addDays(sysData.getEmptyWeightTime(), numDay));
                    sysData.setCompleteTime(DateUtils.addDays(sysData.getCompleteTime(), numDay));
                }
                //货位代码
                apiData.setHwdm(api1105.getHwdm());
@@ -100,7 +118,7 @@
                //默认一个随便值
                apiData.setLxdh(StringUtils.isEmpty(sysData.getUserContact()) ? "13012345678" : sysData.getUserContact());
                apiData.setSfzh(null == sysData.getUserId() ? "410183200010100000" : sysData.getUserId());
                apiData.setSfzh(null == sysData.getUserId() ? "410183199003187055" : sysData.getUserId().trim());
                //获取合同号
                listInoutNotice = fzzy35SyncNoticeInRep.listInoutNoticeInById(sysData.getNoticeId());
@@ -112,17 +130,15 @@
                apiData.setXxdz(sysData.getUserAddress());
                //运输工具,默认汽车,TODO>> 待调整为根据数据库获取
                apiData.setYsgj("1");
                //运输工具,若为空,则默认给1-汽车
                apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1":sysData.getTransType());
                //车船号
                apiData.setCch(sysData.getPlateNum());
                c.setTime(sysData.getRegisterTime());
                c.add(Calendar.MINUTE,-3);
                apiData.setDjsj(c.getTime());
                apiData.setDjsj(sysData.getRegisterTime());
                //粮食品种
                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);
                //粮食性质
@@ -140,6 +156,9 @@
                //毛重信息
                apiData.setMz(sysData.getFullWeight());
                if(!sysData.getFullWeightTime().after(sysData.getRegisterTime())){
                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 25));
                }
                apiData.setMzjlsj(sysData.getFullWeightTime());
                apiData.setMzjby(sysData.getFullWeightUser());
                apiData.setMzjly(sysData.getFullWeightUser());
@@ -148,6 +167,9 @@
                //皮重信息
                apiData.setPz(sysData.getEmptyWeight());
                if(!sysData.getEmptyWeightTime().after(sysData.getFullWeightTime())){
                    sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 60));
                }
                apiData.setPzjlsj(sysData.getEmptyWeightTime());
                apiData.setPzjby(sysData.getEmptyWeightUser());
                apiData.setPzjly(sysData.getEmptyWeightUser());
@@ -157,32 +179,36 @@
                apiData.setQzsfzkl(0 - sysData.getDeWet());
                apiData.setQzzzzkl(0 - sysData.getDeImpurity());
                //包装
               // apiData.setBzwkl(0 - sysData.getDePack());
                //其它
                if(null == sysData.getDeOther()){
                    sysData.setDeOther(0.0);
                }
                apiData.setQtkl( 0 - sysData.getDeOther());
                //值仓 现场扣重
                apiData.setXckl( 0 - sysData.getDeHandle());
                apiData.setJz(sysData.getRecordWeight());
                if(!sysData.getCompleteTime().after(sysData.getEmptyWeightTime())){
                    sysData.setCompleteTime(DateUtils.addMinutes(sysData.getEmptyWeightTime(), 10));
                }
                apiData.setCmsj(sysData.getCompleteTime());
                apiData.setJz(sysData.getSettleWeight());
                c.setTime(sysData.getCompleteTime());
                c.add(Calendar.MINUTE,3);
                apiData.setCmsj(c.getTime());
                //入库结算单号
                apiData.setRkjsdh(kqdm + sysData.getId().substring(2));
                //入库结算单号,默认统一结算,不设置结算单号
                //apiData.setRkjsdh(kqdm + sysData.getId().substring(2));
                //操作标志及最后更新时间
                apiData.setCzbz(Constant.CZBZ_I);
                apiData.setZhgxsj(c.getTime());
                apiData.setZhgxsj(sysData.getCompleteTime());
                //业务id、库区编码、同步时间
                apiData.setBizId(sysData.getId());
                apiData.setKqdm(kqdm);
                apiData.setSyncTime(new Date());
                api1202List = api1202Rep.getDataById(apiData.getRkywdh());
                if(null == api1202List || api1202List.isEmpty()){
                    apiData.setCzbz(Constant.CZBZ_I);
                }else {
                    apiData.setCzbz(api1202List.get(0).getCzbz());
                }
                //保存数据
                api1202Rep.save(apiData);
                log.info("1202---同步数据:{}", apiData.toString());