From 17810b3b68347e838f1d5966de25d206c0e63a83 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期一, 18 三月 2024 19:33:15 +0800 Subject: [PATCH] 优化出库数据同步 --- src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java | 197 ++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 154 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java index 9ed94d8..52d668d 100644 --- a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java +++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java @@ -1,21 +1,21 @@ package com.fzzy.async.fzzy40.impl; import com.fzzy.api.Constant; -import com.fzzy.api.entity.Api1105; -import com.fzzy.api.entity.Api1202; -import com.fzzy.api.entity.ApiLog; +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.view.repository.Api1202Rep; -import com.fzzy.api.view.repository.ApiLogRep; +import com.fzzy.api.view.repository.*; import com.fzzy.async.fzzy40.entity.Fz40InoutNoticeIn; 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.Fzzy40SyncInoutRecordItemRep; import com.fzzy.async.fzzy40.repository.Fzzy40SyncNoticeInRep; 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; @@ -36,11 +36,19 @@ @Autowired private Fzzy40Sync1202Rep fzzySync1202Rep; @Autowired + private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep; + @Autowired private Fzzy40SyncNoticeInRep fzzySyncNoticeInRep; @Autowired private ApiTriggerService apiTriggerService; @Autowired + private Api1201Rep api1201Rep; + @Autowired private Api1202Rep api1202Rep; + @Autowired + private Api1204Rep api1204Rep; + @Autowired + private Api1404Rep api1404Rep; @Autowired private ApiCommonService commonService; @Autowired @@ -77,15 +85,19 @@ Api1105 api1105; List<Fz40InoutNoticeIn> listInoutNotice; List<Api1202> api1202List; - String ywsj = ""; - String num = ""; - Map<String, Integer> map = new HashMap<>(); + List<Fz40InoutRecordItem> listInoutRecordItem; + List<Api1201> api1201List; + List<Api1204> api1204List; + List<Api1404> api1404List; for (Fz40InoutRecord sysData : list) { - if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){ + 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){ + if (null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0) { continue; } //鑾峰彇璐т綅淇℃伅 @@ -96,40 +108,46 @@ apiData = new Api1202(); apiData.setRkywdh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4)); - //鍒ゆ柇涓氬姟鏃堕棿涓庡崟鎹彿鏄惁鍖归厤 - ywsj = DateFormatUtils.format(sysData.getCompleteTime(),"yyMMdd"); - if(!ywsj.equals(sysData.getId().substring(4, 10))){ - if(null == map.get(ywsj)){ - map.put(ywsj, 10201); - } - num = String.valueOf(map.get(ywsj)).substring(1); - apiData.setRkywdh(Constant.INOUT_TYPE_14 + ywsj + num); - map.put(ywsj, map.get(ywsj) + 1); - } //璐т綅浠g爜 apiData.setHwdm(api1105.getHwdm()); apiData.setYwlx(Constant.INOUT_TYPE_2); - apiData.setYwrq(sysData.getCompleteTime()); + apiData.setYwrq(DateUtils.parseDate(sysData.getId().substring(2, 10), new String[]{"yyyyMMdd"})); apiData.setCyr(sysData.getUserName()); //榛樿涓�涓殢渚垮�� apiData.setLxdh(StringUtils.isEmpty(sysData.getUserContact()) ? "13012345678" : sysData.getUserContact().trim()); - apiData.setSfzh(null == sysData.getUserId() ? "410183200010100000" : sysData.getUserId().trim()); + if (StringUtils.isEmpty(sysData.getUserId()) || sysData.getUserId().length() != 18) { + sysData.setUserId("410183199003187055"); + } + apiData.setSfzh(sysData.getUserId()); - //鑾峰彇鍚堝悓鍙� + //鑾峰彇閫氱煡鍗曚俊鎭紝鏌ヨ鍚堝悓鍙峰拰璁″垝鏄庣粏鍙� listInoutNotice = fzzySyncNoticeInRep.listInoutNoticeInById(sysData.getNoticeId()); - if(null != listInoutNotice && listInoutNotice.size() >0){ - apiData.setHth(api1105.getHwdm().substring(0,18) + listInoutNotice.get(0).getContractId()); - }else { - apiData.setHth(api1105.getHwdm().substring(0,18) + apiData.getRkywdh()); + if (null != listInoutNotice && listInoutNotice.size() > 0) { + //鍚堝悓鍙� + if (StringUtils.isNotEmpty(listInoutNotice.get(0).getContractId())) { + api1201List = api1201Rep.getDataByBizId(listInoutNotice.get(0).getContractId()); + if (null != api1201List && api1201List.size() > 0) { + apiData.setHth(api1201List.get(0).getHth()); + } + } + if (StringUtils.isNotEmpty(listInoutNotice.get(0).getPlanId())) { + api1404List = api1404Rep.getDataByBizIdAndKqdm(listInoutNotice.get(0).getPlanId(), kqdm); + if (null != api1404List && api1404List.size() > 0) { + apiData.setJhmxh(api1404List.get(0).getJhmxdh()); + if (StringUtils.isEmpty(sysData.getFoodYear())) { + sysData.setFoodYear(api1404List.get(0).getShnd()); + } + } + } } - apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "璇︾粏鍦板潃":sysData.getUserAddress()); + apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "璇︾粏鍦板潃" : sysData.getUserAddress()); //杩愯緭宸ュ叿锛岃嫢涓虹┖锛屽垯榛樿缁�1-姹借溅 - apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1":sysData.getTransType()); + apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1" : sysData.getTransType()); //杞﹁埞鍙� apiData.setCch(sysData.getPlateNum().trim()); @@ -137,32 +155,47 @@ 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); //绮鎬ц川 mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, sysData.getFoodType()); apiData.setLsxzdm(mappingCode); - apiData.setShnd(StringUtils.isEmpty(sysData.getFoodYear())? DateFormatUtils.format(new Date(), "yyyy") :sysData.getFoodYear()); + apiData.setShnd(StringUtils.isEmpty(sysData.getFoodYear()) ? DateFormatUtils.format(sysData.getRegisterTime(), "yyyy") : sysData.getFoodYear()); //浜у湴浠g爜 - String cddm = commonService.getFoodLocationIdFromCache(sysData.getFoodLocation()); - apiData.setCddm(cddm); + mappingCode = commonService.getFoodLocationIdFromCache(sysData.getFoodLocation()); + if (StringUtils.isEmpty(mappingCode)) { + mappingCode = apiData.getHwdm().substring(2, 8); + } + apiData.setCddm(mappingCode); //妫�鏂ょ被鍨嬶紝榛樿0-绉伴噸鍏ュ簱 apiData.setJjlx("0"); //姣涢噸淇℃伅 apiData.setMz(sysData.getFullWeight()); + if (null == sysData.getFullWeightTime()) { + sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 25)); + } + 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()); - apiData.setZcy(sysData.getHandleUser()); + apiData.setZcy(null == sysData.getHandleUser() ? sysData.getFullWeightUser() : sysData.getHandleUser()); //鐨噸淇℃伅 apiData.setPz(sysData.getEmptyWeight()); + if (null == sysData.getEmptyWeightTime()) { + sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 60)); + } + 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()); @@ -170,12 +203,33 @@ //鎵i噸 鍖栭獙鎬绘墸閲� apiData.setZjklxj(sysData.getDeCheck()); + apiData.setBzwkl(0 - sysData.getDePackage()); + apiData.setBzbjs(sysData.getBzbjs()); + apiData.setCmsj(sysData.getCompleteTime()); + //缁撶畻鍗曞彿 + if(StringUtils.isNotEmpty(sysData.getSettleId())){ + apiData.setRkjsdh(kqdm + sysData.getSettleId()); + } + if(StringUtils.isNotEmpty(apiData.getHth())){ + api1204List = api1204Rep.getDataByHthAndHwdm(apiData.getHth(), apiData.getHwdm()); + if(null == api1204List || api1204List.isEmpty()){ + api1204List = api1204Rep.getDataByHth(apiData.getHth()); + if(null != api1204List && api1204List.size() > 0){ + apiData.setRkjsdh(api1204List.get(0).getRkjsdh()); + } + }else { + apiData.setRkjsdh(api1204List.get(0).getRkjsdh()); + } + } //鍏跺畠 - apiData.setQtkl( 0 - sysData.getDeOther()); + apiData.setQtkl(0 - sysData.getDeOther()); //鍊间粨 鐜板満鎵i噸 - apiData.setXckl( 0 - sysData.getDeHandle()); + 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()); //鎿嶄綔鏍囧織鍙婃渶鍚庢洿鏂版椂闂� @@ -185,15 +239,72 @@ 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()); + apiData.setBz(null == sysData.getRemarks() ? "澶囨敞" : sysData.getRemarks()); + apiData.setKlyy("鎵i噺鍘熷洜"); + + apiData.setCmqrmgryxm(StringUtils.isEmpty(sysData.getRegisterUser())?"鐧昏浜�":sysData.getRegisterUser()); + apiData.setDjmgryxm(StringUtils.isEmpty(sysData.getRegisterUser())?"鐧昏浜�":sysData.getRegisterUser()); + //01:琛ㄧず澶у瀷姹借溅鍙风墝,榛勫簳榛戝瓧锛� 02:琛ㄧず灏忓瀷姹借溅鍙风墝,钃濆簳鐧藉瓧锛� 03:琛ㄧず鏂拌兘婧愭苯杞﹀彿鐗�,缁垮簳榛� 瀛楋紱 + //04:琛ㄧず鍐滅敤杞﹁溅鐗屽彿锛岀豢搴曠櫧瀛楋紱 LS:琛ㄧず涓存椂铏氭嫙鍙风墝锛屼粎闄愪簬鍞� 绮溅鏃犲浐瀹氬彿鐗屾椂浣跨敤 + apiData.setCchlx("01"); + apiData.setLdd("瑁呯伯鍦扮偣"); + apiData.setQzbwslkl(0.0); + apiData.setQzzzzkl(0.0); + apiData.setQzgwcmkl(0.0); + apiData.setQzhhkl(0.0); + apiData.setQzbwslkl(0.0); + apiData.setQzhlmkl(0.0); + apiData.setQzsmlkl(0.0); + apiData.setQzzjmlkl(0.0); + apiData.setQzqtkl(0.0); + apiData.setZxzydw(api1105.getBgdw()); + if (sysData.getCompanyId().equals("5329")) { + apiData.setLqgsdwdm("91440604MA56D2AM1X"); } - //淇濆瓨鏁版嵁 - api1202Rep.save(apiData); + //鍒ゆ柇鏄惁涓鸿埞杩� + if (StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")) { + listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId()); + if (null == listInoutRecordItem || listInoutRecordItem.isEmpty()) { + api1202Rep.save(apiData); + continue; + } + + int idNum = Integer.valueOf(sysData.getId().substring(12)) * 100 + 10001; + for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) { + if ("DEL".equals(fz40InoutRecordItem.getRecordStatus())) { + continue; + } + if (fz40InoutRecordItem.getSettleWeight() <= 0) { + continue; + } + apiData.setRkywdh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4, 10) + String.valueOf(idNum).substring(1)); + apiData.setMz(fz40InoutRecordItem.getFullWeight()); + apiData.setPz(fz40InoutRecordItem.getEmptyWeight()); + apiData.setJz(fz40InoutRecordItem.getSettleWeight()); + apiData.setMzjlsj(fz40InoutRecordItem.getFullWeightTime()); + apiData.setPzjlsj(fz40InoutRecordItem.getEmptyWeightTime()); + apiData.setQtkl(0 - fz40InoutRecordItem.getDe()); + 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); + idNum++; + } + } else { + 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()); } } catch (Exception e) { -- Gitblit v1.9.3