|
@@ -13,6 +13,7 @@ import com.zfire.jiasm.syncdata.plus.service.*;
|
|
|
import io.jsonwebtoken.lang.Collections;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -20,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -92,6 +94,7 @@ public class RecycleAssignLogic {
|
|
|
map.put("type", param.getType());
|
|
|
//回收工单请求
|
|
|
String dataStr = greeLogic.post(apiPath, map, 1);
|
|
|
+ // 工单主表,一条反馈明细,多条产品明细
|
|
|
// 工单信息pgid|pgguid、反馈信息pgguid、回收的产品pgguid
|
|
|
List<RecycleAssignDownloadBean> responseBeanList = mapper.readValue(dataStr, new TypeReference<List<RecycleAssignDownloadBean>>() {} );
|
|
|
|
|
@@ -102,13 +105,15 @@ public class RecycleAssignLogic {
|
|
|
List<RecycleAssignDownloadEntity> newTaskEntities = new ArrayList<>();
|
|
|
|
|
|
if(!pguuidLhs.isEmpty()) {
|
|
|
+ // 每次请求使用相同的批次号
|
|
|
String batchNo = UUID.randomUUID().toString();
|
|
|
|
|
|
- // 下载任务记录表中提取相同已下载的数据,0及99的
|
|
|
+ // 下载记录表中查看是否存在与本次下载相同的工单 0及99的
|
|
|
+ // 这里的99 为与总部进行确认失败的工单
|
|
|
recList = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.in(ItfTblRecycleAssignBatchDownloadRec::getPgguid, pguuidLhs)
|
|
|
.in(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus, 0, Constant.SynStatus.FAIL.getCode()).list();
|
|
|
- // 已下载记录表中存在数据时
|
|
|
+ // 已下载记录表中存在数据时分组
|
|
|
if(CollectionUtils.isNotEmpty(recList)) {
|
|
|
// 按状态分组0-99
|
|
|
recMap = recList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus));
|
|
@@ -129,8 +134,13 @@ public class RecycleAssignLogic {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // 状态为99的单独处理 超3次不再同步,逻辑与下同 只处理下载记录表,同步次数+1
|
|
|
+ // 工单主表,一条反馈明细,多条产品明细
|
|
|
+ // 状态为99的单独处理 超10次重新下载
|
|
|
if (nnMap !=null && nnMap.containsKey(o.getPgguid())){
|
|
|
+ // 待与总部确认下载完成的工单不处理
|
|
|
+ if (nnMap.get(o.getPgguid()).get(0).getSynTimes()<10){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
process(nnMap, newTaskEntities, o);
|
|
|
} else {
|
|
|
// 获取新增的
|
|
@@ -154,6 +164,7 @@ public class RecycleAssignLogic {
|
|
|
private void getAdd(List<RecycleAssignDownloadEntity> newTaskEntities, RecycleAssignDownloadBean o) {
|
|
|
try {
|
|
|
// 报文中提取实体表对像数据 主表,反馈表,回收产品明细表
|
|
|
+ // 工单主表,一条反馈明细,多条产品明细
|
|
|
RecycleAssignDownloadEntity entity = copyBean2Entity(o);
|
|
|
ItfTblRecycleAssignBatchDownloadRec rec = new ItfTblRecycleAssignBatchDownloadRec();
|
|
|
rec.setPgguid(o.getPgguid());
|
|
@@ -168,40 +179,32 @@ public class RecycleAssignLogic {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void process(Map<String, List<ItfTblRecycleAssignBatchDownloadRec>> nnMap, List<RecycleAssignDownloadEntity> newTaskEntities, RecycleAssignDownloadBean o) {
|
|
|
+ private void process(Map<String, List<ItfTblRecycleAssignBatchDownloadRec>> nnMap, List<RecycleAssignDownloadEntity> newTaskEntities,
|
|
|
+ RecycleAssignDownloadBean o) {
|
|
|
ItfTblRecycleAssignBatchDownloadRec rec = nnMap.get(o.getPgguid()).get(0);
|
|
|
- // 查看状态为99的数据(请求失败过的任务) 若超过3次,则不再请求接口
|
|
|
- if( rec.getSynTimes() >= 3 ) {
|
|
|
- rec.setGreeStatSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
- rec.setCreatedDate(new Date());
|
|
|
+ // 超10次的重新同步
|
|
|
+ try {
|
|
|
+ RecycleAssignDownloadEntity entity = copyBean2Entity(o);
|
|
|
+ rec.setSynTimes(0);
|
|
|
+ rec.setGreeStatSynStatus(0);
|
|
|
rec.setLastModifiedDate(new Date());
|
|
|
- rec.setGreeStatSynErrMsg("请求次数大于3次,不再发送pgguid={}"+ rec.getPgguid());
|
|
|
- RecycleAssignDownloadEntity entity = new RecycleAssignDownloadEntity();
|
|
|
entity.setRec(rec);
|
|
|
newTaskEntities.add(entity);
|
|
|
- }else {
|
|
|
- // 未超三次把数据同步下来 这里最好改synStatus为0,目的就是与总部确认时重新获取反馈明细数据 todo 1
|
|
|
- try {
|
|
|
- RecycleAssignDownloadEntity entity = copyBean2Entity(o);
|
|
|
- rec.setSynTimes(rec.getSynTimes()+1);
|
|
|
- rec.setLastModifiedDate(new Date());
|
|
|
- entity.setRec(rec);
|
|
|
- newTaskEntities.add(entity);
|
|
|
- } catch (JsonProcessingException e) {
|
|
|
- log.error("RecycleAssignDownload bean复制到RecycleAssignDownloadEntity异常:{}", e.getMessage());
|
|
|
- }
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ log.error("RecycleAssignDownload bean复制到RecycleAssignDownloadEntity异常:{}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 批量添加回收工单任务
|
|
|
+ * 每个工单单独的且相同的任务号,批次号同一次下载的相同
|
|
|
* @param newTaskEntities
|
|
|
*/
|
|
|
@Transactional
|
|
|
public void batchAddDownloadTask(List<RecycleAssignDownloadEntity> newTaskEntities,String batchNo) {
|
|
|
List<ItfTblRecycleAssignBatchDownloadRec> recList = new ArrayList<>();
|
|
|
|
|
|
- if(null != newTaskEntities && !newTaskEntities.isEmpty()) {
|
|
|
+ if(CollectionUtils.isNotEmpty(newTaskEntities)) {
|
|
|
List<ItfTblRecycleAssignDownload> tblRecycleAssignEntity = new ArrayList<>();
|
|
|
List<ItfTblRecycleAssignFkmxDownload> lastStep = new ArrayList<>();
|
|
|
List<ItfTblRecycleAssignMxDownload> hscpmx = new ArrayList<>();
|
|
@@ -272,6 +275,7 @@ public class RecycleAssignLogic {
|
|
|
RecycleAssignDownloadEntity entity = new RecycleAssignDownloadEntity();
|
|
|
List<ItfTblRecycleAssignMxDownload> mxList = new ArrayList<>();
|
|
|
|
|
|
+ // 工单主表,一条反馈明细,多条产品明细
|
|
|
// 提取回收工单主表数据
|
|
|
entity.setTblRecycleAssignEntity(mapper.readValue(mapper.writeValueAsString(bean), ItfTblRecycleAssignDownload.class));
|
|
|
// 提取回收工单反馈数据
|
|
@@ -293,7 +297,7 @@ public class RecycleAssignLogic {
|
|
|
|
|
|
|
|
|
private List<RecycleAssignDownloadBean> copyEntities2Bean(List<ItfTblRecycleAssignBatchDownloadRec> recList){
|
|
|
- if(null != recList && !recList.isEmpty()) {
|
|
|
+ if(CollectionUtils.isNotEmpty(recList)) {
|
|
|
List<RecycleAssignDownloadBean> resultList = new ArrayList<>();
|
|
|
LinkedHashSet<String> taskNos = new LinkedHashSet<>();
|
|
|
recList.forEach(o->{
|
|
@@ -304,15 +308,18 @@ public class RecycleAssignLogic {
|
|
|
// 回收工单主表 并按任务号分组
|
|
|
List<ItfTblRecycleAssignDownload> raList = recycleAssignService.lambdaQuery()
|
|
|
.in(ItfTblRecycleAssignDownload::getDownloadTaskNo, taskNos).list();
|
|
|
- Map<String, List<ItfTblRecycleAssignDownload>> raMap = raList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignDownload::getDownloadTaskNo));
|
|
|
+ Map<String, List<ItfTblRecycleAssignDownload>> raMap = raList.stream()
|
|
|
+ .collect(Collectors.groupingBy(ItfTblRecycleAssignDownload::getDownloadTaskNo));
|
|
|
// 回收工单过程反馈表 并按任务号分组
|
|
|
List<ItfTblRecycleAssignFkmxDownload> fkmxList = recycleAssignFkmxDownloadService.lambdaQuery()
|
|
|
.in(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, taskNos).list();
|
|
|
- Map<String, List<ItfTblRecycleAssignFkmxDownload>> fkmxMap = fkmxList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo));
|
|
|
+ Map<String, List<ItfTblRecycleAssignFkmxDownload>> fkmxMap = fkmxList.stream()
|
|
|
+ .collect(Collectors.groupingBy(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo));
|
|
|
// 回收工单产品明细表 并按任务号分组
|
|
|
List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery()
|
|
|
.in(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, taskNos).list();
|
|
|
- Map<String, List<ItfTblRecycleAssignMxDownload>> mxMap = mxList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignMxDownload::getDownloadTaskNo));
|
|
|
+ Map<String, List<ItfTblRecycleAssignMxDownload>> mxMap = mxList.stream()
|
|
|
+ .collect(Collectors.groupingBy(ItfTblRecycleAssignMxDownload::getDownloadTaskNo));
|
|
|
|
|
|
recList.forEach(o->{
|
|
|
RecycleAssignDownloadBean bean = new RecycleAssignDownloadBean();
|
|
@@ -370,7 +377,9 @@ public class RecycleAssignLogic {
|
|
|
private List<RecycleAssignDownloadBean> queryUnSynList() {
|
|
|
return copyEntities2Bean(recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, 66)
|
|
|
- .eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus, 0).list());
|
|
|
+ .in(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus, 0,99)
|
|
|
+ .lt(ItfTblRecycleAssignBatchDownloadRec::getSynTimes, 10)
|
|
|
+ .list());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -380,15 +389,16 @@ public class RecycleAssignLogic {
|
|
|
*/
|
|
|
public List<GreeResponseHelper> updateFeedback() throws Exception {
|
|
|
List<GreeResponseHelper> responseList = new ArrayList<>();
|
|
|
- // 任务记录表中提取 syn_status = 0 and gree_stat_syn_status = 0的数据 这里加上同步次数小于3的,重新获取反馈明细更好 todo 2
|
|
|
+ // 任务记录表中提取待获取反馈明细的数据
|
|
|
List<ItfTblRecycleAssignBatchDownloadRec> recList = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
- .eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, 0)
|
|
|
- .eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus,0).list();
|
|
|
- if( null != recList && !recList.isEmpty()) {
|
|
|
+ .in(ItfTblRecycleAssignBatchDownloadRec::getFkmxSynStatus, 0,99)
|
|
|
+ .le(ItfTblRecycleAssignBatchDownloadRec::getFkmxSynTimes,10).list();
|
|
|
+ if(CollectionUtils.isNotEmpty(recList)) {
|
|
|
// 提取回收工单主表、过程反馈、明细表中数据 组装下载请求时相同的报文信息
|
|
|
List<RecycleAssignDownloadBean> unSynList = copyEntities2Bean(recList);
|
|
|
- // 与总数进行确认 成功时同步获取的反馈明细表数据,下载记录表置标识为 syn_status=44 代表已同步反馈明细数据
|
|
|
+ // 与总数进行确认 成功时同步反馈明细表数据,下载记录表置标识为 syn_status=44 代表已同步反馈明细数据
|
|
|
// 失败时 下载记录表、反馈明细表、新产品明细表置syn_status=99
|
|
|
+ // 按单获取反馈明细数据
|
|
|
for (RecycleAssignDownloadBean recycleAssignDownloadBean : unSynList) {
|
|
|
responseList.add(assignDetail(recycleAssignDownloadBean));
|
|
|
}
|
|
@@ -421,26 +431,33 @@ public class RecycleAssignLogic {
|
|
|
}
|
|
|
|
|
|
private void errorUpdateGreeStatSynStatus(RecycleAssignDownloadBean bean, GreeResponseHelper response) {
|
|
|
+ // 记录表
|
|
|
ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, bean.getTaskNo()).one();
|
|
|
+ // 主表
|
|
|
ItfTblRecycleAssignDownload ra = recycleAssignService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, bean.getTaskNo()).one();
|
|
|
+ // 明细表
|
|
|
List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, bean.getTaskNo()).list();
|
|
|
- //更新状态为已同步
|
|
|
+ // 记录表更新状态为已同步
|
|
|
rec.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
rec.setGreeStatSynTime(new Date());
|
|
|
- rec.setSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
+ rec.setSynTimes(rec.getSynTimes()+1);
|
|
|
+ // rec.setSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
rec.setSynReqTime(new Date());
|
|
|
rec.setLastModifiedDate(new Date());
|
|
|
rec.setGreeStatSynErrMsg(response.getMsg());
|
|
|
recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
|
|
|
- ra.setGreeStatSynStatus(1);
|
|
|
+
|
|
|
+ // 主表为成功
|
|
|
+ ra.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
ra.setGreeStatSynTime(new Date());
|
|
|
ra.setSynReqTime(new Date());
|
|
|
ra.setLastModifiedDate(new Date());
|
|
|
ra.setSynErrMsg(response.getMsg());
|
|
|
recycleAssignService.saveOrUpdate(ra);
|
|
|
+ /*// 明细表为失败
|
|
|
mxList.stream().forEach(o->{
|
|
|
o.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
|
|
|
o.setGreeStatSynTime(new Date());
|
|
@@ -450,11 +467,12 @@ public class RecycleAssignLogic {
|
|
|
if (mxList !=null && mxList.size()>0){
|
|
|
recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
|
|
|
mxList.clear();
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
private void updateGreeStatSynStatus(GreeResponseHelper response) throws JsonProcessingException {
|
|
|
RecycleAssignDownloadBean resultBean = mapper.readValue(response.getData().toString(), RecycleAssignDownloadBean.class);
|
|
|
+ // 记录表
|
|
|
ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, resultBean.getTaskNo()).one();
|
|
|
// 回收工单主表
|
|
@@ -477,7 +495,7 @@ public class RecycleAssignLogic {
|
|
|
ra.setLastModifiedDate(new Date());
|
|
|
recycleAssignService.saveOrUpdate(ra);
|
|
|
|
|
|
- mxList.stream().forEach(o->{
|
|
|
+ /*mxList.stream().forEach(o->{
|
|
|
o.setGreeStatSynStatus(GreeSynStatusEnum.SYN.getCode());
|
|
|
o.setGreeStatSynTime(new Date());
|
|
|
o.setSynReqTime(new Date());
|
|
@@ -486,7 +504,7 @@ public class RecycleAssignLogic {
|
|
|
if (mxList!=null && mxList.size()>0){
|
|
|
recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
|
|
|
mxList.clear();
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -497,7 +515,7 @@ public class RecycleAssignLogic {
|
|
|
List<GreeResponseHelper> responseList = new ArrayList<>();
|
|
|
// 提取已成功下载采集数据且未与总部确认的回收工单数据
|
|
|
List<RecycleAssignDownloadBean> unSynList = queryUnSynList();
|
|
|
- if( null != unSynList && !unSynList.isEmpty()) {
|
|
|
+ if(CollectionUtils.isNotEmpty(unSynList)) {
|
|
|
// 按单与总部同步确认并修改记录表
|
|
|
for (RecycleAssignDownloadBean recycleAssignDownloadBean : unSynList) {
|
|
|
responseList.add(updateExtendReq(recycleAssignDownloadBean));
|
|
@@ -511,17 +529,19 @@ public class RecycleAssignLogic {
|
|
|
public GreeResponseHelper assignDetail(RecycleAssignBean bean) throws Exception {
|
|
|
final String apiPath = Constant.GreeApiPath.RECYCLE_ASSIGN_DETAIL;
|
|
|
Map<String, Object> param = mapper.readValue(mapper.writeValueAsString(bean), Map.class);
|
|
|
+ // 获取反馈明细数据
|
|
|
GreeResponseHelper response = greeLogic.greePost(apiPath, param, 1);
|
|
|
ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, bean.getTaskNo()).one();
|
|
|
if( 200 == response.getStatus()) {
|
|
|
RecycleAssignDetailDownloadBean responseBean = mapper.readValue((String)response.getData(), RecycleAssignDetailDownloadBean.class);
|
|
|
+ // 提取获取回收工单时已下载的反馈明细数据
|
|
|
List<ItfTblRecycleAssignFkmxDownload> fkmxList= recycleAssignFkmxDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, bean.getTaskNo())
|
|
|
.eq(ItfTblRecycleAssignFkmxDownload::getPgguid, bean.getPgguid()).list();
|
|
|
// 反馈明细表处理
|
|
|
if(null != responseBean.getFkmx() && !responseBean.getFkmx().isEmpty()) {
|
|
|
- // 与总部返回的反馈明细表数据比较 无时增加
|
|
|
+ // 与总部返回的反馈明细表数据比较 不存在增加,存在不处理
|
|
|
for(RecycleAssignFkmxDownloadBean fkmxBean: responseBean.getFkmx()) {
|
|
|
if(!fkmxList.stream().filter(o->o.getFkid().equals(fkmxBean.getFkid())).findAny().isPresent()) {
|
|
|
ItfTblRecycleAssignFkmxDownload newFkmx = mapper.readValue(mapper.writeValueAsString(fkmxBean), ItfTblRecycleAssignFkmxDownload.class);
|
|
@@ -532,17 +552,24 @@ public class RecycleAssignLogic {
|
|
|
}
|
|
|
recycleAssignFkmxDownloadService.saveOrUpdateBatch(fkmxList);
|
|
|
}
|
|
|
- //更新状态为已同步
|
|
|
+ //更新记录表已同步反馈明细状态为已同步
|
|
|
rec.setSynStatus(Constant.SynStatus.SYN_FEEDBACK.getCode());//增加一个中间状态,代表反馈明细已更新
|
|
|
+ rec.setFkmxSynStatus(Constant.SynStatus.SYN.getCode());// 同步反馈明细数据成功
|
|
|
+ rec.setSynErrMsg("");
|
|
|
rec.setSynReqTime(new Date());
|
|
|
rec.setLastModifiedDate(new Date());
|
|
|
recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
|
|
|
}else {
|
|
|
- rec.setSynStatus(Constant.SynStatus.FAIL.getCode());// 本次与总部确认同步失败
|
|
|
+ // 记录表同步失败
|
|
|
+ // rec.setSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ rec.setFkmxSynStatus(Constant.SynStatus.FAIL.getCode());
|
|
|
+ rec.setFkmxSynTimes(rec.getFkmxSynTimes()+1);
|
|
|
rec.setSynErrMsg(response.getMsg());
|
|
|
rec.setSynReqTime(new Date());
|
|
|
rec.setLastModifiedDate(new Date());
|
|
|
recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
|
|
|
+
|
|
|
+/*
|
|
|
List<ItfTblRecycleAssignFkmxDownload> fkmxList = recycleAssignFkmxDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, bean.getTaskNo()).list();
|
|
|
List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery()
|
|
@@ -566,16 +593,17 @@ public class RecycleAssignLogic {
|
|
|
o.setSynReqTime(new Date());
|
|
|
});
|
|
|
recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
|
|
|
public void processBusiness() {
|
|
|
-// //查找未同步到广佛系统且已经和总部同步的数据
|
|
|
-// //这里需要增加一个中间状态(反馈明细和采集明细是否已经同步),代表工单信息已同步,但反馈明细或采集信息还没同步的,这里因为反馈和采集信息量过大,不能同一个接口传回来,所以分开
|
|
|
-// //44代表已同步反馈明细,66代表已经同步采集信息
|
|
|
+ //查找未同步到广佛系统且已经和总部同步的数据
|
|
|
+ //这里需要增加一个中间状态(反馈明细和采集明细是否已经同步),代表工单信息已同步,但反馈明细或采集信息还没同步的,这里因为反馈和采集信息量过大,不能同一个接口传回来,所以分开
|
|
|
+ //44代表已同步反馈明细,66代表已经同步采集信息
|
|
|
+ // 提取下载成功的记录数据
|
|
|
List<ItfTblRecycleAssignBatchDownloadRec> recList = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, Constant.SynStatus.SYN_ACQUISITION.getCode())
|
|
|
.eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus,Constant.GreeSynStatus.SYN.getCode())
|
|
@@ -585,6 +613,7 @@ public class RecycleAssignLogic {
|
|
|
return;
|
|
|
}
|
|
|
for( ItfTblRecycleAssignBatchDownloadRec rec : recList ) {
|
|
|
+ /*// 提取同步失败的或是还未从总部获取其他信息的记录数据-最近的一次
|
|
|
List<ItfTblRecycleAssignBatchDownloadRec> lastTaskList = recycleAssignBatchDownloadRecService.lambdaQuery()
|
|
|
.in(ItfTblRecycleAssignBatchDownloadRec::getSynStatus,
|
|
|
new Integer[] { Constant.SynStatus.FAIL.getCode(),
|
|
@@ -603,7 +632,7 @@ public class RecycleAssignLogic {
|
|
|
rec.setSynTime(new Date());
|
|
|
continue;
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
// 这里先不做处理
|
|
|
// processBusiness(rec);
|
|
|
}
|
|
@@ -739,6 +768,7 @@ public class RecycleAssignLogic {
|
|
|
* 更新接口表数据到业务表
|
|
|
* @return
|
|
|
*/
|
|
|
+
|
|
|
/*
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void processBusiness(ItfTblRecycleAssignBatchDownloadRec rec) {
|
|
@@ -748,17 +778,36 @@ public class RecycleAssignLogic {
|
|
|
int synStatus = 1;
|
|
|
String msg = "";
|
|
|
try {
|
|
|
- //查找未同步到广佛系统且已经和总部同步的数据
|
|
|
- //这里需要增加一个中间状态(反馈明细和采集明细是否已经同步),代表工单信息已同步,但反馈明细或采集信息还没同步的,这里因为反馈和采集信息量过大,不能同一个接口传回来,所以分开
|
|
|
- //44代表已同步反馈明细,66代表已经同步采集信息
|
|
|
- ItfTblRecycleAssignDownload tblRecycleAssignEntity = recycleAssignService.lambdaQuery().eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).one();
|
|
|
- List<ItfTblRecycleHsptJjcjFjDownload> lastStep = recycleAssignFkmxDownloadService.lambdaQuery().eq(ItfTblRecycleHsptJjcjFjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
- List<ItfTblRecycleAssignMxDownload> hscpmx = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
- //采集 信息
|
|
|
+ // 主表
|
|
|
+ ItfTblRecycleAssignDownload tblRecycleAssignEntity = recycleAssignService.lambdaQuery()
|
|
|
+ .eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).one();
|
|
|
+
|
|
|
+ // 集团id 单独处理 brand_id 师傅信息
|
|
|
+
|
|
|
+ // orderBase.setProductBrandId("A");
|
|
|
+ // orderBase.setProductBrandName("格力(机型品牌)");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 反馈明细表
|
|
|
+ List<ItfTblRecycleAssignFkmxDownload> lastStep = recycleAssignFkmxDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
+ // 回收明细表
|
|
|
+ List<ItfTblRecycleAssignMxDownload> hscpmx = recycleAssignMxDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
+ //采集表
|
|
|
List<ItfTblRecycleHsptJjcjDownload> jjcjList= recycleHsptJjcjDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleHsptJjcjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
+ // 采集附件表
|
|
|
List<ItfTblRecycleHsptJjcjFjDownload> fjList = recycleHsptJjcjFjDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleHsptJjcjFjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
+ // 采集条码表
|
|
|
List<ItfTblRecycleHsptJjcjTmmxDownload> tmmxList = recycleHsptJjcjTmmxDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblRecycleHsptJjcjTmmxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
|
|
|
|
|
@@ -772,7 +821,7 @@ public class RecycleAssignLogic {
|
|
|
|
|
|
LinkedHashSet<String> webSitNums = new LinkedHashSet<>();
|
|
|
//用省,市,区获取省,市,区id
|
|
|
- List<Area> provinceList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getSfen()).eq(Area::getLevel, 1).eq(Area::getStatus, 1).list();
|
|
|
+ List<Area> provinceList = areaService.lambdaQuery().eq(Area::getArea, tblRecycleAssignEntity.getSfen()).eq(Area::getLevel, 1).eq(Area::getStatus, 1).list();
|
|
|
List<Area> cityList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getCshi()).eq(Area::getLevel, 2).eq(Area::getStatus, 1).list();
|
|
|
List<Area> areaList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getXian()).eq(Area::getLevel, 3).eq(Area::getStatus, 1).list();
|
|
|
List<Area> streetList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getXzhen()).eq(Area::getLevel, 4).eq(Area::getStatus, 1).list();
|
|
@@ -780,11 +829,18 @@ public class RecycleAssignLogic {
|
|
|
Map<Integer, Object> newWxWebsiteItemMap = new HashMap<>();
|
|
|
//派工下级网点编号新map, pgguid主键对应
|
|
|
Map<Integer, Object> newXjWebsiteItemMap = new HashMap<>();
|
|
|
- OrderRecycleAssign recycleAssign = orderRecycleAssignService.lambdaQuery().eq(OrderRecycleAssign::getPgguid, tblRecycleAssignEntity.getPgguid()).one();
|
|
|
+ // 看工单主表是否已存在
|
|
|
+ OrderRecycleAssign recycleAssign = orderRecycleAssignService.lambdaQuery()
|
|
|
+ .eq(OrderRecycleAssign::getPgguid, tblRecycleAssignEntity.getPgguid()).one();
|
|
|
if( !Objects.isNull(recycleAssign)) {
|
|
|
+ // 更新
|
|
|
BeanUtils.copyProperties(tblRecycleAssignEntity, recycleAssign, new String[] {"id","createTime","updateTime","deletetime"});
|
|
|
}else {
|
|
|
+ // 创建
|
|
|
recycleAssign = mapper.readValue(mapper.writeValueAsString(tblRecycleAssignEntity), OrderRecycleAssign.class);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
recycleAssign.setCreateTime(new Date());
|
|
|
//第一次下单状态为保存
|
|
|
recycleAssign.setAppointState(0);
|
|
@@ -858,11 +914,14 @@ public class RecycleAssignLogic {
|
|
|
|
|
|
orderRecycleAssignExpandService.saveOrUpdate(expand);
|
|
|
//反馈明细
|
|
|
- List<OrderRecycleAssignFkmx> fkmxEntitiesList = orderRecycleAssignFkmxService.lambdaQuery().eq(OrderRecycleAssignFkmx::getOrderId, recycleAssign.getId()).list();
|
|
|
+ List<OrderRecycleAssignFkmx> fkmxEntitiesList = orderRecycleAssignFkmxService.lambdaQuery()
|
|
|
+ .eq(OrderRecycleAssignFkmx::getOrderId, recycleAssign.getId()).list();
|
|
|
//明细
|
|
|
- List<OrderRecycleAssignMx> mxEntitiesList = orderRecycleAssignMxService.lambdaQuery().eq(OrderRecycleAssignMx::getOrderId, recycleAssign.getId()).list();
|
|
|
+ List<OrderRecycleAssignMx> mxEntitiesList = orderRecycleAssignMxService.lambdaQuery()
|
|
|
+ .eq(OrderRecycleAssignMx::getOrderId, recycleAssign.getId()).list();
|
|
|
//采集明细
|
|
|
- List<OrderRecycleAssignCollection> collectionEntitiesList = orderRecycleAssignCollectionService.lambdaQuery().eq(OrderRecycleAssignCollection::getOrderId, recycleAssign.getId()).list();
|
|
|
+ List<OrderRecycleAssignCollection> collectionEntitiesList = orderRecycleAssignCollectionService.lambdaQuery()
|
|
|
+ .eq(OrderRecycleAssignCollection::getOrderId, recycleAssign.getId()).list();
|
|
|
List<OrderRecycleAssignWorker> newWorkList = new ArrayList<>();
|
|
|
|
|
|
//查询网点元数据,不过滤state为0的
|
|
@@ -1066,8 +1125,7 @@ public class RecycleAssignLogic {
|
|
|
//批量处理下载数据状态
|
|
|
batchProcessSynStatus(rec, synStatus, msg);
|
|
|
}
|
|
|
- */
|
|
|
-
|
|
|
+*/
|
|
|
|
|
|
/**
|
|
|
* 状态上传接口
|