diff --git a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java index 04e16bc8d..95bd9208b 100644 --- a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java +++ b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java @@ -32,6 +32,10 @@ public class BasicProcessStatus { * 基础数据 */ public static final String BASIC_DATA = "21"; + /** + * 基础数据 + */ + public static final String OTHER_DATA = "22"; public static final String ALL_BUS_ORDER = "11"; public static final String NEW_ALL_DI = "10"; public static final String NEW_ALL_THR_DATA = "12"; //所有第三方基础数据 diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index a24ecad00..67474a16f 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -243,6 +243,8 @@ public class ConstantStatus { public static final String SYNC_DOWNLOAD_DI_PRODUCTS = "AutoDownloadDiProducts"; //自动下载基础数据 public static final String SYNC_DOWNLOAD_BASIC_DATA = "AutoDownloadBasicData"; + //自动下载其他数据 + public static final String SYNC_DOWNLOAD_OTHER_DATA = "AutoDownloadOtherData"; public static final int SYNC_STATUS_SUCCESS = 1; //处理成功 public static final int SYNC_STATUS_FAIL = 2; //处理失败 diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeRelMapper.java b/src/main/java/com/glxp/api/dao/inout/IoCodeRelMapper.java index 6e25c8691..8be0ca5a0 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeRelMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeRelMapper.java @@ -1,6 +1,7 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeRelEntity; import com.glxp.api.req.inout.IoOrderRelRequest; import com.glxp.api.res.inout.IoCodeRelResponse; @@ -9,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface IoCodeRelMapper extends BaseMapper { +public interface IoCodeRelMapper extends BaseMapperPlus { List selectIoCodeRelList(IoOrderRelRequest ioOrderRelRequest); diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index 20c7abd3f..554795898 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -249,6 +249,18 @@ public class SpGetHttpClient { } + /** + * 拉取UDI自助平台其他数据 + * + * @return + */ + public String pullOtherData() { + + String result = okHttpCli.doGet(getIpUrl() + "/sps/sync/otherData", null, buildHeader()); + return result; + + } + public void finishTask(String id) { BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); basicExportStatusRequest.setId(id); diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncOtherDataResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncOtherDataResponse.java new file mode 100644 index 000000000..6d1be8305 --- /dev/null +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncOtherDataResponse.java @@ -0,0 +1,15 @@ +package com.glxp.api.res.sync; + +import com.glxp.api.entity.inout.IoCodeLostEntity; +import com.glxp.api.entity.inout.IoCodeRelEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncOtherDataResponse extends BaseSyncResponse { + + + List ioCodeLostList; + List ioCodeRelList; +} diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java index aafe62e72..e68ccfcb9 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java @@ -1,11 +1,12 @@ package com.glxp.api.service.inout; +import com.baomidou.mybatisplus.extension.service.IService; import com.glxp.api.entity.inout.IoCodeLostEntity; import com.glxp.api.res.inout.IoCodeLostResponse; import java.util.List; -public interface IoCodeLostService { +public interface IoCodeLostService extends IService { List selectLost(IoCodeLostEntity ioCodeLostEntity); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeRelService.java b/src/main/java/com/glxp/api/service/inout/IoCodeRelService.java index 9c04993ff..61b0aedd5 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeRelService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeRelService.java @@ -1,12 +1,13 @@ package com.glxp.api.service.inout; +import com.baomidou.mybatisplus.extension.service.IService; import com.glxp.api.entity.inout.IoCodeRelEntity; import com.glxp.api.req.inout.IoOrderRelRequest; import com.glxp.api.res.inout.IoCodeRelResponse; import java.util.List; -public interface IoCodeRelService { +public interface IoCodeRelService extends IService { List selectIoCodeRelList(IoOrderRelRequest ioOrderRelRequest); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java index 748399238..2ee3f0195 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.inout.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.res.inout.IoCodeLostResponse; import org.springframework.stereotype.Service; @@ -15,7 +16,7 @@ import java.util.List; @Service @Transactional(rollbackFor = Exception.class) -public class IoCodeLostServiceImpl implements IoCodeLostService { +public class IoCodeLostServiceImpl extends ServiceImpl implements IoCodeLostService { @Resource IoCodeLostMapper codeLostEntityMapper; diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeRelServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeRelServiceImpl.java index 014d05780..505688b4d 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeRelServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeRelServiceImpl.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoCodeRelMapper; import com.glxp.api.entity.inout.IoCodeRelEntity; @@ -17,7 +18,7 @@ import java.util.List; @Service @Transactional(rollbackFor = Exception.class) -public class IoCodeRelServiceImpl implements IoCodeRelService { +public class IoCodeRelServiceImpl extends ServiceImpl implements IoCodeRelService { @Resource IoCodeRelMapper ioCodeRelMapper; @@ -42,41 +43,42 @@ public class IoCodeRelServiceImpl implements IoCodeRelService { @Override public List selectIoCodeRelByCode(String code, String parentCode) { - QueryWrapper ew=new QueryWrapper<>(); - if(StrUtil.isNotEmpty(code)){ - ew.eq("code",code); + QueryWrapper ew = new QueryWrapper<>(); + if (StrUtil.isNotEmpty(code)) { + ew.eq("code", code); } - if(StrUtil.isNotEmpty(parentCode)){ - ew.eq("parentCode",parentCode); + if (StrUtil.isNotEmpty(parentCode)) { + ew.eq("parentCode", parentCode); } - List list=ioCodeRelMapper.selectList(ew); + List list = ioCodeRelMapper.selectList(ew); return list; } @Override public Long selectIoCodeRelCount(String parentCode) { - QueryWrapper ew=new QueryWrapper<>(); - if(StrUtil.isNotEmpty(parentCode)){ - ew.eq("parentCode",parentCode); + QueryWrapper ew = new QueryWrapper<>(); + if (StrUtil.isNotEmpty(parentCode)) { + ew.eq("parentCode", parentCode); } - Long count=ioCodeRelMapper.selectCount(ew); + Long count = ioCodeRelMapper.selectCount(ew); return count; } @Override public int delIoCodeRel(String code, String parentCode) { - QueryWrapper ew=new QueryWrapper<>(); - if(StrUtil.isNotEmpty(code)){ - ew.eq("code",code); + QueryWrapper ew = new QueryWrapper<>(); + if (StrUtil.isNotEmpty(code)) { + ew.eq("code", code); } - if(StrUtil.isNotEmpty(parentCode)){ - ew.eq("parentCode",parentCode); + if (StrUtil.isNotEmpty(parentCode)) { + ew.eq("parentCode", parentCode); } - int count=ioCodeRelMapper.delete(ew); - return count; + int count = ioCodeRelMapper.delete(ew); + return count; } + @Override public List selectIoCodeRelDetailList(IoOrderRelRequest ioOrderRelRequest) { if (ioOrderRelRequest == null) { diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index 162d00f69..69ddaf48d 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -12,6 +12,8 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BasicProcessStatus; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.*; +import com.glxp.api.dao.inout.IoCodeLostMapper; +import com.glxp.api.dao.inout.IoCodeRelMapper; import com.glxp.api.dao.purchase.*; import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.UdiCompanyEntity; @@ -534,6 +536,34 @@ public class HeartService { } } + /** + * 从UDI自助平台拉取其他数据 + */ + @Transactional(rollbackFor = Exception.class) + public void pullOtherData() { + String data = spGetHttp.pullOtherData(); + cn.hutool.json.JSONObject obj = JSONUtil.parseObj(data); + SpsSyncOtherDataResponse bean = obj.get("data", SpsSyncOtherDataResponse.class); + this.insertOtherData(bean); + String taskId = bean.getTaskId(); + if (StrUtil.isNotBlank(taskId)) { + //插入下载记录 + BasicDownloadStatusEntity basicDownloadStatusEntity = new BasicDownloadStatusEntity(); + basicDownloadStatusEntity.setId(CustomUtil.getId()); + basicDownloadStatusEntity.setTaskId(taskId); + basicDownloadStatusEntity.setStartTime(new Date()); + basicDownloadStatusEntity.setUpdateTime(new Date()); + basicDownloadStatusEntity.setEndTime(new Date()); + basicDownloadStatusEntity.setIdDatas(ConstantStatus.SYNC_DOWNLOAD_OTHER_DATA); + basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS); //下载完成 + basicDownloadStatusEntity.setType(BasicProcessStatus.OTHER_DATA); + basicDownloadStatusEntity.setScheduleType(1); + basicDownloadService.insertDownloadStatus(basicDownloadStatusEntity); + //通知自助平台任务已完成 + spGetHttp.finishTask(taskId); + } + } + /** * 设置嵌套事物 * @@ -573,6 +603,24 @@ public class HeartService { } } + private final IoCodeLostMapper ioCodeLostMapper; + private final IoCodeRelMapper ioCodeRelMapper; + + /** + * 设置嵌套事物 + * + * @param bean + */ + @Transactional(propagation = Propagation.NESTED) + public void insertOtherData(SpsSyncOtherDataResponse bean) { + if (CollectionUtil.isNotEmpty(bean.getIoCodeLostList())) { + ioCodeLostMapper.insertOrUpdateBatch(bean.getIoCodeLostList()); + } + if (CollectionUtil.isNotEmpty(bean.getIoCodeRelList())) { + ioCodeRelMapper.insertOrUpdateBatch(bean.getIoCodeRelList()); + } + } + public void insetOrderDb(SpsSyncOrderResponse syncDataResponse, IoOrderEntity orderEntity) { //更新码详情 if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 3b3ed6eea..f7c242e61 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -105,6 +105,7 @@ public class SyncHeartTask implements SchedulingConfigurer { if (curTime - lastTime > timeInterval) { heartService.dlAllOrder(); heartService.pullBasicData(); + heartService.pullOtherData(); redisUtil.set("SPS_SYNC_DOWNLOAD_DATA", curTime); }