中继服务拉取UDI自助平台同步任务数据

master
wj 2 years ago
parent 3b7a01f69f
commit 9e340d7658

@ -299,6 +299,14 @@
<artifactId>commons-text</artifactId>
<version>1.1</version>
</dependency>
<!--mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
<build>

@ -1,21 +1,24 @@
package com.glxp.sale.admin.controller.sync;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.glxp.sale.admin.constant.BasicProcessStatus;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.FileConstant;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.glxp.sale.admin.constant.*;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.sync.BasicUploadStatusEntity;
import com.glxp.sale.admin.entity.sync.*;
import com.glxp.sale.admin.http.SpGetHttp;
import com.glxp.sale.admin.http.SpPostHttp;
import com.glxp.sale.admin.req.sync.SpsSyncDataRequest;
import com.glxp.sale.admin.res.sync.*;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.service.sync.BasicExportService;
import com.glxp.sale.admin.service.sync.BasicUploadService;
import com.glxp.sale.admin.util.*;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@ -26,9 +29,14 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import java.util.List;
@RestController
@RequiredArgsConstructor
public class SpsSyncDataController {
@Resource
RedisUtil redisUtil;
@ -182,8 +190,6 @@ public class SpsSyncDataController {
}
@PostMapping("sps/sync/schedule/upload")
public BaseResponse postSchedule(@RequestBody SpsSyncScheduleResponse spsSyncScheduleResponse) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
@ -220,5 +226,75 @@ public class SpsSyncDataController {
}
}
private final BasicExportService basicExportService;
// 下发基础数据 供给中继服务UDI管理系统下载
@GetMapping("sps/sync/data")
public BaseResponse data(BasicExportTypeEnum exportType) {
BaseResponse<RelaySyncResponse> baseResponse = new BaseResponse<>();
RelaySyncResponse relaySyncResponse = null;
BasicExportStatusEntity one = basicExportService.findByType(exportType.getRemark());
if (one != null) {
if (BasicExportStatusEnum.WAIT_TRIGGERED.getCode().equals(one.getStatus())) {
basicExportService.updateByIdAndStatus(one.getId(), BasicExportStatusEnum.WAIT_BUILT.getCode(), BasicExportStatusEnum.WAIT_TRIGGERED.getCode());
} else if (BasicExportStatusEnum.WAIT_SYNC.getCode().equals(one.getStatus())) {
if (StrUtil.isBlank(one.getCacheFilePath())) {
throw new RuntimeException("系统异常,文件名为空");
}
relaySyncResponse = RelaySyncResponse.builder()
.taskId(one.getId())
.fileContent(this.readDataFile(one.getCacheFilePath()))
.build();
}
}
baseResponse.setCode(ResultEnum.SUCCESS.getCode());
baseResponse.setData(relaySyncResponse);
return baseResponse;
}
private String readDataFile(String cacheFilePath) {
// 读取文件数据
try {
FileReader reader = new FileReader(cacheFilePath);
StringBuilder str = new StringBuilder();
int data;
while ((data = reader.read()) != -1) {
str.append((char) data);
}
reader.close();
return str.toString();
} catch (FileNotFoundException e) {
throw new RuntimeException("系统异常,未找到对应数据文件");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@PostMapping("/spssync/basic/udiinfo/finishTask")
public BaseResponse finishTask(@RequestBody BasicExportStatusEntity basicExportStatusEntity) {
if (StrUtil.isBlank(basicExportStatusEntity.getId())) {
return ResultVOUtils.error(500, "缺少唯一标识!");
}
if (StrUtil.isEmpty(basicExportStatusEntity.getReceiveStatus())) {
basicExportStatusEntity.setEndTime(DateUtil.getDateTime());
}
basicExportStatusEntity.setUpdateTime(new Date());
basicExportStatusEntity.setStatus(BasicExportStatusEnum.COMPLETED.getCode());
boolean b = basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class)
.set(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.COMPLETED.getCode())
.set(BasicExportStatusEntity::getEndTime, new Date())
.set(BasicExportStatusEntity::getUpdateTime, new Date())
.set(BasicExportStatusEntity::getReceiveStatus, 1)
.eq(BasicExportStatusEntity::getId, basicExportStatusEntity.getId())
.eq(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_SYNC.getCode())
);
if (b)
return ResultVOUtils.success("更新成功!");
else
return ResultVOUtils.error(500, "更新成功!");
}
}

@ -1,20 +1,27 @@
package com.glxp.sale.admin.dao.sync;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity;
import com.glxp.sale.admin.req.sync.BasicExportStatusRequest;
import com.glxp.sale.admin.service.sync.BasicExportService;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicExportDao {
public interface BasicExportDao extends BaseMapper<BasicExportStatusEntity> {
List<BasicExportStatusEntity> filterExportStatus(BasicExportStatusRequest basicExportStatusRequest);
boolean insertExportStatus(BasicExportStatusEntity ioOrderStatusEntity);
BasicExportStatusEntity findByType(@Param("exportType") String exportType);
int updateByIdAndStatus(@Param("id")String id,@Param("oldStatus")Integer oldStatus,@Param("newStatus")Integer newStatus);
boolean deleteById(@Param("id") String id);
boolean updateExportStatus(BasicExportStatusEntity warehouseEntity);

@ -1,5 +1,6 @@
package com.glxp.sale.admin.entity.sync;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -11,6 +12,7 @@ import java.util.Date;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("basic_export_status")
public class BasicExportStatusEntity {
private String id;
private String taskId;

@ -0,0 +1,15 @@
package com.glxp.sale.admin.res.sync;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RelaySyncResponse {
String taskId;
String fileContent;
}

@ -1,16 +1,21 @@
package com.glxp.sale.admin.service.sync;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity;
import com.glxp.sale.admin.req.sync.BasicExportStatusRequest;
import java.util.List;
public interface BasicExportService {
public interface BasicExportService extends IService<BasicExportStatusEntity> {
BasicExportStatusEntity findById(String id);
BasicExportStatusEntity findByType(String exportType);
int updateByIdAndStatus(String id,Integer oldStatus,Integer newStatus);
List<BasicExportStatusEntity> filterExportStatus(BasicExportStatusRequest basicExportStatusRequest);
boolean insertExportStatus(BasicExportStatusEntity ioOrderStatusEntity);

@ -2,6 +2,7 @@ package com.glxp.sale.admin.service.sync.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.sale.admin.dao.sync.BasicExportDao;
import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity;
@ -16,7 +17,7 @@ import java.util.Collections;
import java.util.List;
@Service
public class BasicExportServiceImpl implements BasicExportService {
public class BasicExportServiceImpl extends ServiceImpl<BasicExportDao,BasicExportStatusEntity> implements BasicExportService {
@Resource
BasicExportDao basicExportDao;
@ -32,6 +33,16 @@ public class BasicExportServiceImpl implements BasicExportService {
return null;
}
@Override
public BasicExportStatusEntity findByType(String exportType) {
return basicExportDao.findByType(exportType);
}
@Override
public int updateByIdAndStatus(String id, Integer oldStatus, Integer newStatus) {
return basicExportDao.updateByIdAndStatus(id, oldStatus, newStatus);
}
@Override
public List<BasicExportStatusEntity> filterExportStatus(BasicExportStatusRequest basicExportStatusRequest) {
if (basicExportStatusRequest == null) {

@ -1,12 +1,9 @@
spring.profiles.active=pro
spring.profiles.active=dev
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*/*.xml
mybatis-plus.map-underscore-to-camel-case=false
spring.jmx.enabled=false
server.tomcat.max-http-form-post-size=100MB
server.tomcat.max-http-post-size=100MB
server.max-http-header-size=100MB

@ -31,7 +31,8 @@
<insert id="insertExportStatus" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.sync.BasicExportStatusEntity">
replace
INTO basic_export_status(id,taskId,idDatas,status,`type`,transportType,updateTime,scheduleType,startTime,endTime,remark,superiorService,subordinateService,cacheFilePath,receiveStatus)
INTO
basic_export_status(id,taskId,idDatas,status,`type`,transportType,updateTime,scheduleType,startTime,endTime,remark,superiorService,subordinateService,cacheFilePath,receiveStatus)
values(
#{id},
#{taskId},
@ -71,6 +72,10 @@
</trim>
WHERE id = #{id}
</update>
<update id="updateByIdAndStatus">
update basic_export_status set status = #{newStatus},updateTime=now()
where id = #{id} and status = #{oldStatus}
</update>
<delete id="deleteById" parameterType="Map">
DELETE
FROM basic_export_status
@ -82,5 +87,11 @@
from basic_export_status
where id = #{id}
</select>
<select id="findByType" resultType="com.glxp.sale.admin.entity.sync.BasicExportStatusEntity">
select * from basic_export_status
where type = #{exportType}
order by startTime asc
limit 1
</select>
</mapper>
Loading…
Cancel
Save