|
@@ -5,27 +5,29 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
|
+import com.fasterxml.jackson.databind.JsonMappingException;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.zfire.jiasm.syncdata.base.BaseService;
|
|
|
import com.zfire.jiasm.syncdata.constant.Constant;
|
|
|
-import com.zfire.jiasm.syncdata.constant.DictTypeEnum;
|
|
|
+import com.zfire.jiasm.syncdata.constant.GreeSynStatusEnum;
|
|
|
import com.zfire.jiasm.syncdata.constant.OrderTypeEnum;
|
|
|
import com.zfire.jiasm.syncdata.gree.GreeLogic;
|
|
|
+import com.zfire.jiasm.syncdata.gree.helper.GreeResponseHelper;
|
|
|
import com.zfire.jiasm.syncdata.gree.recycle.GreeLogicT;
|
|
|
import com.zfire.jiasm.syncdata.helper.GreeFileResponseHelper;
|
|
|
import com.zfire.jiasm.syncdata.helper.GreeFileSaveHelper;
|
|
|
import com.zfire.jiasm.syncdata.http.PostObjectSample;
|
|
|
import com.zfire.jiasm.syncdata.plus.entity.*;
|
|
|
import com.zfire.jiasm.syncdata.plus.service.*;
|
|
|
+import com.zfire.jiasm.syncdata.request.oldfornew.TradeNewForOldStockBarcodeInfoUploadBean;
|
|
|
import com.zfire.jiasm.syncdata.request.oldfornew.TradeNewForOldUploadAttachmentBean;
|
|
|
import com.zfire.jiasm.syncdata.request.oldfornew.TradeNewForOldUploadBean;
|
|
|
import com.zfire.jiasm.syncdata.response.ResultData;
|
|
|
-import com.zfire.jiasm.syncdata.response.WebsitFWS;
|
|
|
import com.zfire.jiasm.syncdata.response.WebsitSH;
|
|
|
import com.zfire.jiasm.syncdata.response.WorderInfo;
|
|
|
import com.zfire.jiasm.syncdata.service.PublicService;
|
|
|
-import com.zfire.jiasm.syncdata.test;
|
|
|
import com.zfire.jiasm.syncdata.utils.oss.OSSUtil;
|
|
|
import io.jsonwebtoken.lang.Collections;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -39,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
@@ -77,6 +80,9 @@ public class OldForNewUploadLogic {
|
|
|
OSSUtil ossUtil;
|
|
|
@Autowired
|
|
|
ItfTblTradeNewForOldRejectJddDownloadService itfTblTradeNewForOldRejectJddDownloadService;
|
|
|
+ @Autowired
|
|
|
+ ItfTblRecycleStockBarcodeInfoUploadService barcodeInfoUploadService;
|
|
|
+
|
|
|
|
|
|
private ObjectMapper mapper;
|
|
|
|
|
@@ -176,7 +182,7 @@ public class OldForNewUploadLogic {
|
|
|
}
|
|
|
bean.setJddfj(jddfjList);
|
|
|
|
|
|
- // 同步数据
|
|
|
+ // 同步数据 + 新增一条待入库条码上传记录
|
|
|
synData(jdd, yjhxJddUpload, bean);
|
|
|
|
|
|
processSave(yjhxJddUpload, yjhxJddFjUploadList,toGreeUpload,jdd);
|
|
@@ -721,11 +727,26 @@ public class OldForNewUploadLogic {
|
|
|
List<ItfTblTradeNewForOldRejectJddDownload> tradeNewForOldRejectJddDownloadList = JSONArray.parseArray(this.mapper.writeValueAsString(response.get("data")),
|
|
|
ItfTblTradeNewForOldRejectJddDownload.class);
|
|
|
if(CollectionUtils.isNotEmpty(tradeNewForOldRejectJddDownloadList)) {
|
|
|
- tradeNewForOldRejectJddDownloadList.stream().forEach(reject->{
|
|
|
+ Map<String,List<ItfTblTradeNewForOldRejectJddDownload>> jddsMap= new HashMap<>();
|
|
|
+ // 提取同步无批次号的数据
|
|
|
+ List<ItfTblTradeNewForOldRejectJddDownload> jdds = itfTblTradeNewForOldRejectJddDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblTradeNewForOldRejectJddDownload::getFlag,1).list();
|
|
|
+ if (CollectionUtils.isNotEmpty(jdds)){
|
|
|
+ jddsMap = jdds.stream().collect(Collectors.groupingBy(ItfTblTradeNewForOldRejectJddDownload::getPgguid));
|
|
|
+ }
|
|
|
+ for (ItfTblTradeNewForOldRejectJddDownload reject: tradeNewForOldRejectJddDownloadList){
|
|
|
reject.setSynReqTime(new Date());
|
|
|
reject.setSynStatus(Constant.SynStatus.UN_SYN.getCode());
|
|
|
reject.setSynTimes(1);
|
|
|
- });
|
|
|
+ if (StringUtils.isEmpty(reject.getDownloadTaskNo())){
|
|
|
+ if (jddsMap.containsKey(reject.getPgguid())){
|
|
|
+ reject.setDownloadTaskNo(jddsMap.get(reject.getPgguid()).get(0).getDownloadTaskNo());
|
|
|
+ } else {
|
|
|
+ reject.setDownloadTaskNo(UUID.randomUUID().toString());
|
|
|
+ reject.setFlag(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
itfTblTradeNewForOldRejectJddDownloadService.saveOrUpdateBatch(tradeNewForOldRejectJddDownloadList);
|
|
|
}else {
|
|
|
log.info("TradeOldForNewLogic.queryRejectJdd接口返回记录数为空");
|
|
@@ -743,7 +764,7 @@ public class OldForNewUploadLogic {
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
- // 修改鉴定单状态为驳回状态
|
|
|
+ // 修改鉴定单状态为驳回状态+更新同步数据状态
|
|
|
public String processBusiness() {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
@@ -769,6 +790,7 @@ public class OldForNewUploadLogic {
|
|
|
orderBaseIds.add(OrderBase.getId());
|
|
|
});
|
|
|
|
|
|
+ // 提取以旧换新鉴定单数据
|
|
|
List<YjhxJdd> jddList = new ArrayList<>();
|
|
|
List<YjhxJdd> newAddJddList = new ArrayList<>();
|
|
|
if(!orderBaseIds.isEmpty()) {
|
|
@@ -840,4 +862,292 @@ public class OldForNewUploadLogic {
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
+ public void stockBarcodeInfoDonwlodToUpload() {
|
|
|
+ // 提取待入库条码上传记录表数据
|
|
|
+ List<ItfTblTradeNewForOldStockInfoUploadTask> tradeNewForOldStockInfoUploadTaskList = itfTblTradeNewForOldStockInfoUploadTaskService.lambdaQuery()
|
|
|
+ .eq(ItfTblTradeNewForOldStockInfoUploadTask::getSynStatus, Constant.SynStatus.UN_SYN.getCode())
|
|
|
+ .orderByAsc(ItfTblTradeNewForOldStockInfoUploadTask::getSynReqId).list();
|
|
|
+ //测试,用状态为77 无数据不处理
|
|
|
+ if( Collections.isEmpty(tradeNewForOldStockInfoUploadTaskList)) {
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ List<ItfTblRecycleStockBarcodeInfoUpload> tradeNewForOldStockBarcodeInfoUploadList = new ArrayList<>();
|
|
|
+ for(ItfTblTradeNewForOldStockInfoUploadTask item : tradeNewForOldStockInfoUploadTaskList) {
|
|
|
+ // 相同 pgguid 上一条未同步或同步失败本记录不再同步
|
|
|
+ if (checkUpload(item)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据pgguid获取以旧换新鉴定单数据 无鉴定数据不处理
|
|
|
+ final List<YjhxJdd> yjhxJddList = yjhxJddService.lambdaQuery()
|
|
|
+ .eq(YjhxJdd::getPgguid, item.getPgguid()).list();
|
|
|
+ if(Collections.isEmpty(yjhxJddList)) {
|
|
|
+ item.setSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ item.setSynErrMsg("没有鉴定单数据, pgguid="+item.getPgguid());
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //一个pgguid只对应一条YjhxJdd数据
|
|
|
+ YjhxJdd yjhxJdd = yjhxJddList.get(0);
|
|
|
+ OrderBase order = orderBaseService.lambdaQuery()
|
|
|
+ .eq(OrderBase::getPgguid, yjhxJdd.getPgguid()).one();
|
|
|
+ if(Objects.isNull(order)) {
|
|
|
+ item.setSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ item.setSynErrMsg("没有工单数据, pgguid="+item.getPgguid());
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询old_for_new_product 旧机信息表,获取大类
|
|
|
+ final List<OldForNewProduct> tradeNewForOldList = oldForNewProductService.lambdaQuery()
|
|
|
+ .eq(OldForNewProduct::getOrderBaseId, yjhxJdd.getOrderBaseId()).list();
|
|
|
+ OldForNewProduct product = (Collections.isEmpty(tradeNewForOldList)) ? null : tradeNewForOldList.get(0);
|
|
|
+ //内外机条码,以#分割
|
|
|
+ if(StringUtils.isEmpty(yjhxJdd.getTempBarcode())) {
|
|
|
+ item.setSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ item.setSynErrMsg("没有内外机条码信息, pgguid="+item.getPgguid());
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ WebsitSH websitSH = publicService.ptshwdToshshwd(yjhxJdd.getWebsitId(), order.getMainId());
|
|
|
+ WorderInfo worderInfo = publicService.getWorkerInfo(order.getWorkerId(),
|
|
|
+ websitSH.getWdId(), order.getGroupCompanyId());
|
|
|
+
|
|
|
+ String taskNo = java.util.UUID.randomUUID().toString();
|
|
|
+ // 生成内机条码上传数据
|
|
|
+ if(!StringUtils.isEmpty(yjhxJdd.getNjtm())) {
|
|
|
+ getItfTblRecycleStockBarcodeInfoUploadNjtm(tradeNewForOldStockBarcodeInfoUploadList, yjhxJdd, order, product, websitSH, worderInfo, taskNo);
|
|
|
+ }
|
|
|
+ // 生成外机条码上传数据
|
|
|
+ if(!StringUtils.isEmpty(yjhxJdd.getWjtm())) {
|
|
|
+ getItfTblRecycleStockBarcodeInfoUploadWjtm(tradeNewForOldStockBarcodeInfoUploadList, yjhxJdd, order, product, websitSH, worderInfo, taskNo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ item.setSynStatus(Constant.SynStatus.SYN.getCode());
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改同步待入库条码上传记录表状态
|
|
|
+ itfTblTradeNewForOldStockInfoUploadTaskService.saveOrUpdateBatch(tradeNewForOldStockInfoUploadTaskList);
|
|
|
+ // 生成条码信息上传表数据
|
|
|
+ if(!Collections.isEmpty(tradeNewForOldStockBarcodeInfoUploadList)) {
|
|
|
+ barcodeInfoUploadService.saveOrUpdateBatch(tradeNewForOldStockBarcodeInfoUploadList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean checkUpload(ItfTblTradeNewForOldStockInfoUploadTask item) {
|
|
|
+ //提取小于当前id的数据 含有上一条失败,本条不上传
|
|
|
+ List<ItfTblTradeNewForOldStockInfoUploadTask> lastTaskList = itfTblTradeNewForOldStockInfoUploadTaskService.lambdaQuery().
|
|
|
+ in(ItfTblTradeNewForOldStockInfoUploadTask::getSynStatus,
|
|
|
+ new Integer[] { Constant.SynStatus.FAIL.getCode(), Constant.SynStatus.UN_SYN.getCode()}).
|
|
|
+ lt(ItfTblTradeNewForOldStockInfoUploadTask::getSynReqId, item.getSynReqId()).
|
|
|
+ eq(ItfTblTradeNewForOldStockInfoUploadTask::getPgguid, item.getPgguid()).
|
|
|
+ orderByDesc(ItfTblTradeNewForOldStockInfoUploadTask::getSynReqId).list();
|
|
|
+ if(!Collections.isEmpty(lastTaskList)) {
|
|
|
+ ItfTblTradeNewForOldStockInfoUploadTask lastTask = lastTaskList.get(0);
|
|
|
+ // 若上一条未同步,则本条跳过
|
|
|
+ if( Constant.SynStatus.UN_SYN.getCode().intValue() == lastTask.getSynStatus() ) {
|
|
|
+ return true;
|
|
|
+ }else {
|
|
|
+ // 若上一条失败,则本条也不允许上传
|
|
|
+ item.setSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ item.setSynErrMsg("上一条数据没上传成功,本条数据不上传, pguuid="+ item.getPgguid());
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getItfTblRecycleStockBarcodeInfoUploadWjtm(List<ItfTblRecycleStockBarcodeInfoUpload> tradeNewForOldStockBarcodeInfoUploadList, YjhxJdd yjhxJdd, OrderBase order, OldForNewProduct product, WebsitSH websitSH, WorderInfo worderInfo, String taskNo) {
|
|
|
+ ItfTblRecycleStockBarcodeInfoUpload barcodeInfoUpload = new ItfTblRecycleStockBarcodeInfoUpload();
|
|
|
+ barcodeInfoUpload.setPgguid(yjhxJdd.getPgguid());
|
|
|
+ barcodeInfoUpload.setUploadTaskNo(taskNo);
|
|
|
+ barcodeInfoUpload.setJqtm(yjhxJdd.getWjtm());
|
|
|
+ barcodeInfoUpload.setTmlx(1);
|
|
|
+ barcodeInfoUpload.setSpid(Integer.valueOf(product.getMainId()));
|
|
|
+ //大类名字,现在暂时只有空调,spid=101
|
|
|
+ barcodeInfoUpload.setSpmc( (Objects.isNull(product) || Objects.isNull(product.getMainId()) ) ? null : (product.getMainId().equals("101") ? "空调" : ""));
|
|
|
+ barcodeInfoUpload.setPinp(StringUtils.isEmpty(yjhxJdd.getRealBrand()) ? yjhxJdd.getOldMachineBrand() : yjhxJdd.getRealBrand());
|
|
|
+ barcodeInfoUpload.setJqlx( StringUtils.isEmpty(yjhxJdd.getRealType()) ? yjhxJdd.getOldMachineType() : yjhxJdd.getRealType());
|
|
|
+ //匹数要传数字型,1点5匹,就填1.50 ,用数字填
|
|
|
+ barcodeInfoUpload.setPshu( new BigDecimal(yjhxJdd.getCpps() ).floatValue() );
|
|
|
+ barcodeInfoUpload.setWdno(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setDqcfid(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setDqcfmc(websitSH.getWdmc());
|
|
|
+ barcodeInfoUpload.setYddh(worderInfo.getMobile());
|
|
|
+ //工单类型:1:以旧换新;2:回收工单
|
|
|
+ barcodeInfoUpload.setSrclx(1);
|
|
|
+ barcodeInfoUpload.setHssj(new Date());
|
|
|
+ barcodeInfoUpload.setHsfwwdno(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setHsfwwdmc(websitSH.getWdmc());
|
|
|
+ barcodeInfoUpload.setSrcno(order.getSaleNo());
|
|
|
+ barcodeInfoUpload.setSrcId(yjhxJdd.getPgguid());
|
|
|
+ barcodeInfoUpload.setPgwcmxid(yjhxJdd.getHxjddid());
|
|
|
+ barcodeInfoUpload.setState(0);
|
|
|
+ barcodeInfoUpload.setCreatedBy(yjhxJdd.getCreatedBy());
|
|
|
+ barcodeInfoUpload.setCreatedDate(yjhxJdd.getCreatedDate());
|
|
|
+ barcodeInfoUpload.setLastModifiedBy(yjhxJdd.getLastModifiedBy());
|
|
|
+ barcodeInfoUpload.setLastModifiedDate(yjhxJdd.getLastModifiedDate());
|
|
|
+ barcodeInfoUpload.setSrcxsdh(order.getSaleNo());
|
|
|
+ tradeNewForOldStockBarcodeInfoUploadList.add(barcodeInfoUpload);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getItfTblRecycleStockBarcodeInfoUploadNjtm(List<ItfTblRecycleStockBarcodeInfoUpload> tradeNewForOldStockBarcodeInfoUploadList, YjhxJdd yjhxJdd, OrderBase order, OldForNewProduct product, WebsitSH websitSH, WorderInfo worderInfo, String taskNo) {
|
|
|
+ ItfTblRecycleStockBarcodeInfoUpload barcodeInfoUpload = new ItfTblRecycleStockBarcodeInfoUpload();
|
|
|
+ barcodeInfoUpload.setPgguid(yjhxJdd.getPgguid());
|
|
|
+ barcodeInfoUpload.setUploadTaskNo(taskNo);
|
|
|
+ barcodeInfoUpload.setJqtm(yjhxJdd.getNjtm());
|
|
|
+ barcodeInfoUpload.setTmlx(0);
|
|
|
+ barcodeInfoUpload.setSpid(Objects.isNull(product) ? null : Integer.valueOf(product.getMainId()));
|
|
|
+ //大类名字,现在暂时只有空调,spid=101
|
|
|
+ barcodeInfoUpload.setSpmc( (Objects.isNull(product) || Objects.isNull(product.getMainId()) ) ? null : (product.getMainId().equals("101") ? "空调" : ""));
|
|
|
+ barcodeInfoUpload.setPinp(StringUtils.isEmpty(yjhxJdd.getRealBrand()) ? yjhxJdd.getOldMachineBrand() : yjhxJdd.getRealBrand());
|
|
|
+ barcodeInfoUpload.setJqlx( StringUtils.isEmpty(yjhxJdd.getRealType()) ? yjhxJdd.getOldMachineType() : yjhxJdd.getRealType());
|
|
|
+ //匹数要传数字型,1点5匹,就填1.50 ,用数字填
|
|
|
+ barcodeInfoUpload.setPshu( new BigDecimal(yjhxJdd.getCpps() ).floatValue() );
|
|
|
+ barcodeInfoUpload.setWdno(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setDqcfid(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setDqcfmc(websitSH.getWdmc());
|
|
|
+ barcodeInfoUpload.setYddh(worderInfo.getMobile());
|
|
|
+ //工单类型:1:以旧换新;2:回收工单
|
|
|
+ barcodeInfoUpload.setSrclx(1);
|
|
|
+ barcodeInfoUpload.setHssj(new Date());
|
|
|
+ barcodeInfoUpload.setHsfwwdno(websitSH.getWdId());
|
|
|
+ barcodeInfoUpload.setHsfwwdmc(websitSH.getWdmc());
|
|
|
+ barcodeInfoUpload.setSrcno(order.getSaleNo());
|
|
|
+ barcodeInfoUpload.setSrcId(yjhxJdd.getPgguid());
|
|
|
+ barcodeInfoUpload.setPgwcmxid(yjhxJdd.getHxjddid());
|
|
|
+ barcodeInfoUpload.setState(0);
|
|
|
+ barcodeInfoUpload.setCreatedBy(yjhxJdd.getCreatedBy());
|
|
|
+ barcodeInfoUpload.setCreatedDate(yjhxJdd.getCreatedDate());
|
|
|
+ barcodeInfoUpload.setLastModifiedBy(yjhxJdd.getLastModifiedBy());
|
|
|
+ barcodeInfoUpload.setLastModifiedDate(yjhxJdd.getLastModifiedDate());
|
|
|
+ barcodeInfoUpload.setSrcxsdh(order.getSaleNo());
|
|
|
+ tradeNewForOldStockBarcodeInfoUploadList.add(barcodeInfoUpload);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传总部条码(需要上传了barcodeInfo主表数据,上传的stockin和stockout才有有效)
|
|
|
+ */
|
|
|
+ public void stockBarcodeInfoUpload() {
|
|
|
+ // 条码信息上传表中提取待同步的数据
|
|
|
+ final List<ItfTblRecycleStockBarcodeInfoUpload> barcodeInfoUploads = barcodeInfoUploadService.lambdaQuery()
|
|
|
+ .eq(ItfTblRecycleStockBarcodeInfoUpload::getSynStatus, Constant.SynStatus.UN_SYN.getCode()).list();
|
|
|
+ // 无数据不处理
|
|
|
+ if(Collections.isEmpty(barcodeInfoUploads)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ItfTblTradeNewForOldStockInfoUploadTask> stockInfoUploadTaskList = new ArrayList<>();
|
|
|
+ // 按uploadTaskNo分组 内外机条码各一条记录
|
|
|
+ final Map<String, List<ItfTblRecycleStockBarcodeInfoUpload>> barcodeInfoUploadsMap = Collections.isEmpty(barcodeInfoUploads) ? null :barcodeInfoUploads.stream().collect(Collectors.groupingBy(ItfTblRecycleStockBarcodeInfoUpload::getUploadTaskNo));
|
|
|
+ // 取键值对的每个entry
|
|
|
+ for(Map.Entry<String,List<ItfTblRecycleStockBarcodeInfoUpload>> entry : barcodeInfoUploadsMap.entrySet()){
|
|
|
+ List<ItfTblRecycleStockBarcodeInfoUpload> barcodeInfoList = entry.getValue();
|
|
|
+ String pgguid = barcodeInfoList.get(0).getPgguid();
|
|
|
+ final String apiPath = Constant.GreeApiPath.TRADE_NEW_FOR_OLD_STOCK_STOCKINFOS;
|
|
|
+ Integer synStatus = -1;
|
|
|
+ String errMsg = "";
|
|
|
+ List<TradeNewForOldStockBarcodeInfoUploadBean> barcodeInfoBeanList = new ArrayList<>();
|
|
|
+ List<Map> infos = new ArrayList<>() ;
|
|
|
+ // 组装参数 infos
|
|
|
+ try {
|
|
|
+ barcodeInfoBeanList = this.mapper.readValue(this.mapper.writeValueAsString(barcodeInfoList), new TypeReference<List<TradeNewForOldStockBarcodeInfoUploadBean>>() {});
|
|
|
+ infos = this.mapper.readValue(this.mapper.writeValueAsString(barcodeInfoBeanList), new TypeReference<List<Map>>() {});
|
|
|
+ } catch (JsonMappingException e1) {
|
|
|
+ synStatus = Constant.SynStatus.FAIL.getCode();
|
|
|
+ for( ItfTblRecycleStockBarcodeInfoUpload tradeNewForOldStockBarcodeInfoUpload : barcodeInfoUploads) {
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynErrMsg(e1.getMessage().length() > 100 ? e1.getMessage().substring(0, 99) : e1.getMessage());
|
|
|
+ errMsg = tradeNewForOldStockBarcodeInfoUpload.getSynErrMsg();
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTime(new Date());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTimes( Objects.isNull(tradeNewForOldStockBarcodeInfoUpload.getSynTimes()) ? 1 : tradeNewForOldStockBarcodeInfoUpload.getSynTimes() + 1 );
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ } catch (JsonProcessingException e1) {
|
|
|
+ synStatus = Constant.SynStatus.FAIL.getCode();
|
|
|
+ for( ItfTblRecycleStockBarcodeInfoUpload tradeNewForOldStockBarcodeInfoUpload : barcodeInfoUploads) {
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynStatus(synStatus);
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynErrMsg(e1.getMessage().length() > 100 ? e1.getMessage().substring(0, 99) : e1.getMessage());
|
|
|
+ errMsg = tradeNewForOldStockBarcodeInfoUpload.getSynErrMsg();
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTime(new Date());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTimes( Objects.isNull(tradeNewForOldStockBarcodeInfoUpload.getSynTimes()) ? 1 : tradeNewForOldStockBarcodeInfoUpload.getSynTimes() + 1 );
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("taskNo", entry.getKey());
|
|
|
+ param.put("infos", infos);
|
|
|
+ // 条码数据同步
|
|
|
+ try {
|
|
|
+ GreeResponseHelper response = greeLogic.greePost(apiPath, param, 1);
|
|
|
+// log.info("RECYCLE_STOCK_STOCKINFOS接口请求参数: {}", JSONObject.parseObject(param.toString()));
|
|
|
+ if(200 == response.getStatus()) {
|
|
|
+ synStatus = Constant.SynStatus.SYN.getCode();
|
|
|
+ for( ItfTblRecycleStockBarcodeInfoUpload tradeNewForOldStockBarcodeInfoUpload : barcodeInfoUploads) {
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynStatus(Constant.SynStatus.SYN.getCode());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTime(new Date());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTimes( Objects.isNull(tradeNewForOldStockBarcodeInfoUpload.getSynTimes()) ? 1 : tradeNewForOldStockBarcodeInfoUpload.getSynTimes() + 1 );
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ synStatus = Constant.SynStatus.FAIL.getCode();
|
|
|
+ for( ItfTblRecycleStockBarcodeInfoUpload tradeNewForOldStockBarcodeInfoUpload : barcodeInfoUploads) {
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynStatus(synStatus);
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynErrMsg(response.getMsg());
|
|
|
+ errMsg = tradeNewForOldStockBarcodeInfoUpload.getSynErrMsg();
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTime(new Date());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTimes( Objects.isNull(tradeNewForOldStockBarcodeInfoUpload.getSynTimes()) ? 1 : tradeNewForOldStockBarcodeInfoUpload.getSynTimes() + 1 );
|
|
|
+ pgguid = tradeNewForOldStockBarcodeInfoUpload.getPgguid();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ synStatus = Constant.SynStatus.FAIL.getCode();
|
|
|
+ for( ItfTblRecycleStockBarcodeInfoUpload tradeNewForOldStockBarcodeInfoUpload : barcodeInfoUploads) {
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynErrMsg(e.getMessage().length() > 100 ? e.getMessage().substring(0, 99) : e.getMessage());
|
|
|
+ errMsg = tradeNewForOldStockBarcodeInfoUpload.getSynErrMsg();
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTime(new Date());
|
|
|
+ tradeNewForOldStockBarcodeInfoUpload.setSynTimes( Objects.isNull(tradeNewForOldStockBarcodeInfoUpload.getSynTimes()) ? 1 : tradeNewForOldStockBarcodeInfoUpload.getSynTimes() + 1 );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 上传条码信息任务列表
|
|
|
+ List<ItfTblTradeNewForOldStockInfoUploadTask> tradeNewForOldStockInfoUploadTaskList = itfTblTradeNewForOldStockInfoUploadTaskService.lambdaQuery()
|
|
|
+ .eq(ItfTblTradeNewForOldStockInfoUploadTask::getPgguid, pgguid)
|
|
|
+ .eq(ItfTblTradeNewForOldStockInfoUploadTask::getSynStatus, Constant.SynStatus.UN_SYN.getCode())
|
|
|
+ .orderByAsc(ItfTblTradeNewForOldStockInfoUploadTask::getSynReqId).list();
|
|
|
+ if( Collections.isEmpty(tradeNewForOldStockInfoUploadTaskList) ) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //按synReqId顺序更新
|
|
|
+ ItfTblTradeNewForOldStockInfoUploadTask tradeNewForOldStockInfoUploadTask = tradeNewForOldStockInfoUploadTaskList.get(0);
|
|
|
+ if( synStatus == Constant.SynStatus.SYN.getCode()) {
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynStatus(synStatus);
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynTime(new Date());
|
|
|
+ }else {
|
|
|
+ if( (Objects.isNull(tradeNewForOldStockInfoUploadTask.getSynTimes()) ? 0 : tradeNewForOldStockInfoUploadTask.getSynTimes()) >= 6 ) {
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynStatus(synStatus);
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynErrMsg(errMsg);
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynTime(new Date());
|
|
|
+ }else {
|
|
|
+ //请求失败,累加请求次数
|
|
|
+ tradeNewForOldStockInfoUploadTask.setSynTimes((Objects.isNull(tradeNewForOldStockInfoUploadTask.getSynTimes()) ? 0 : tradeNewForOldStockInfoUploadTask.getSynTimes()) + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ stockInfoUploadTaskList.add(tradeNewForOldStockInfoUploadTask);
|
|
|
+ }
|
|
|
+ // 更新以旧换新条码信息上传任务表同步状态
|
|
|
+ if(!Collections.isEmpty(stockInfoUploadTaskList)) {
|
|
|
+ itfTblTradeNewForOldStockInfoUploadTaskService.saveOrUpdateBatch(stockInfoUploadTaskList);
|
|
|
+ }
|
|
|
+ // 更新条码信息上传表同步状态
|
|
|
+ if(!Collections.isEmpty(barcodeInfoUploads)) {
|
|
|
+ barcodeInfoUploadService.saveOrUpdateBatch(barcodeInfoUploads);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|