同步基础数据->管理平台

master
wj 2 years ago
parent 7dbd390ff4
commit be4d89cc42

@ -0,0 +1,35 @@
package com.glxp.api.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BasicExportStatusEnum {
/**
*
*/
WAIT_TRIGGERED(1, "任务待触发"),
/**
*
*/
WAIT_BUILT(2, "文件待生成"),
/**
*
*/
WAIT_SYNC(3, "文件待同步"),
/**
*
*/
COMPLETED(4, "任务完成"),
;
@EnumValue
private Integer code;
private String remark;
}

@ -0,0 +1,36 @@
package com.glxp.api.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
@Getter
@AllArgsConstructor
public enum BasicExportStatusTimeEnum {
/**
*
*/
BASIC_PRODUCTS("basic_products", "耗材字典"),
/**
*
*/
BASIC_CORP("basic_corp", "往来单位字典"),
/**
* DI
*/
DB_DI_PRODUCTS("db_di_products", "国家库DI数据"),
/**
*
*/
SUP_CERT("sup_cert", "首营资质"),
;
@EnumValue
private String key;
private String remark;
}

@ -0,0 +1,20 @@
package com.glxp.api.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BasicExportTypeEnum {
/**
*
*/
BASIC_DATA("basic_data", "基础数据"),
;
@EnumValue
private String key;
private String remark;
}

@ -1,9 +1,13 @@
package com.glxp.api.controller.sync;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Dict;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.*;
import com.glxp.api.controller.purchase.PurOrderController;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.auth.*;
@ -14,11 +18,9 @@ import com.glxp.api.dao.thrsys.ThrBusTypeOriginDao;
import com.glxp.api.dao.thrsys.ThrDeptDao;
import com.glxp.api.dao.thrsys.ThrInvWarehouseDao;
import com.glxp.api.entity.auth.*;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.PurOrderDetailEntity;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.entity.sync.BasicDownloadStatusEntity;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
@ -35,6 +37,8 @@ import com.glxp.api.service.sync.BasicDownloadService;
import com.glxp.api.service.sync.BasicExportService;
import com.glxp.api.service.sync.SpsSyncDownloadService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.JsonUtils;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
@ -47,8 +51,13 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
public class SpsSyncDownloadController {
@ -135,6 +144,67 @@ public class SpsSyncDownloadController {
}
// 下发基础数据 供给中继服务UDI管理系统下载
@AuthRuleAnnotation("")
@GetMapping("sps/sync/basicData")
public BaseResponse getBasicData() {
BaseResponse<SpsSyncBasicDataResponse> baseResponse = new BaseResponse<>();
SpsSyncBasicDataResponse spsSyncBasicDataResponse = new SpsSyncBasicDataResponse();
BasicExportStatusEntity one = basicExportService.getOne(Wrappers.lambdaQuery(BasicExportStatusEntity.class)
.eq(BasicExportStatusEntity::getType, BasicExportTypeEnum.BASIC_DATA)
.orderByDesc(BasicExportStatusEntity::getStartTime)
.last("limit 1")
);
if (one != null) {
if (BasicExportStatusEnum.WAIT_TRIGGERED.getCode().equals(one.getStatus())) {
basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class)
.set(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_BUILT.getCode())
.set(BasicExportStatusEntity::getUpdateTime, new Date())
.eq(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_TRIGGERED.getCode())
.eq(BasicExportStatusEntity::getId, one.getId())
);
} else if (BasicExportStatusEnum.WAIT_SYNC.getCode().equals(one.getStatus())) {
// 读取文件数据
try {
FileReader reader = new FileReader(one.getCacheFilePath());
StringBuilder str = new StringBuilder();
int data;
while ((data = reader.read()) != -1) {
str.append(data);
}
reader.close();
Dict map = JsonUtils.parseMap(str.toString());
// 组装返回数据
spsSyncBasicDataResponse.setTaskId(one.getId());
spsSyncBasicDataResponse.setHospTypeList((List<BasicHospTypeEntity>) map.get(BasicHospTypeEntity.class.getName()));
spsSyncBasicDataResponse.setUdiRelevanceList((List<UdiRelevanceEntity>) map.get(UdiRelevanceEntity.class.getName()));
spsSyncBasicDataResponse.setProductsList((List<BasicProductsEntity>) map.get(BasicProductsEntity.class.getName()));
spsSyncBasicDataResponse.setRelevanceList((List<CompanyProductRelevanceEntity>) map.get(CompanyProductRelevanceEntity.class.getName()));
spsSyncBasicDataResponse.setCorpList((List<BasicCorpEntity>) map.get(BasicCorpEntity.class.getName()));
spsSyncBasicDataResponse.setSupCertList((List<SupCertEntity>) map.get(SupCertEntity.class.getName()));
spsSyncBasicDataResponse.setSupCertSetList((List<SupCertSetEntity>) map.get(SupCertSetEntity.class.getName()));
spsSyncBasicDataResponse.setSupCompanyList((List<SupCompanyEntity>) map.get(SupCompanyEntity.class.getName()));
spsSyncBasicDataResponse.setSupManufacturerList((List<SupManufacturerEntity>) map.get(SupManufacturerEntity.class.getName()));
spsSyncBasicDataResponse.setSupProductList((List<SupProductEntity>) map.get(SupProductEntity.class.getName()));
} catch (FileNotFoundException e) {
throw new RuntimeException("系统异常,未找到对应数据文件");
} catch (IOException e) {
throw new RuntimeException(e);
}
// 修改任务状态
// basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class)
// .set(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.COMPLETED.getCode())
// .set(BasicExportStatusEntity::getUpdateTime, new Date())
// .set(BasicExportStatusEntity::getEndTime, new Date())
// .eq(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_SYNC.getCode())
// .eq(BasicExportStatusEntity::getId, one.getId())
// );
}
}
baseResponse.setData(spsSyncBasicDataResponse);
return baseResponse;
}
//接收中继服务、UDI管理系统上传单据
@AuthRuleAnnotation("sps/sync/order/upload")
@PostMapping("/sps/sync/order/upload")

@ -1,9 +1,9 @@
package com.glxp.api.dao.basic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.res.thrsys.ThrCorpsResponse;
import com.glxp.api.res.thrsys.ThrUnitMaintainResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -11,16 +11,16 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicCorpDao {
public interface BasicCorpDao extends BaseMapper<BasicCorpEntity> {
List<BasicCorpEntity> filterList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest);
boolean insertBasicUnitMaintain(BasicCorpEntity basicUnitMaintainEntity);
boolean insertThrUnitMaintainignore(ThrUnitMaintainResponse thrUnitMaintainResponse);
boolean insert(BasicCorpEntity basicUnitMaintainEntity);
int insert(BasicCorpEntity basicUnitMaintainEntity);
boolean updateById(BasicCorpEntity basicUnitMaintainSaveRequest);
int updateById(BasicCorpEntity basicUnitMaintainSaveRequest);
BasicCorpEntity selectByThirdId(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest);

@ -0,0 +1,16 @@
package com.glxp.api.dao.basic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.basic.BasicProductSetEntity;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.req.basic.FilterBasicProductSetrequest;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BasicProductsDao extends BaseMapper<BasicProductsEntity> {
}

@ -1,6 +1,7 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.purchase.SupCertSetEntity;
import com.glxp.api.req.purchase.FilterCertSetsRequest;
import org.apache.ibatis.annotations.Mapper;
@ -8,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface SupCertSetDao {
public interface SupCertSetDao extends BaseMapper<SupCertSetEntity> {
List<SupCertSetEntity> filterCertSets(FilterCertSetsRequest filterCertSetsRequest);
boolean insertCertSet(SupCertSetEntity supCertSetEntity);

@ -1,6 +1,7 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.purchase.SupCompanyEntity;
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
import org.apache.ibatis.annotations.Mapper;
@ -8,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface SupCompanyDao {
public interface SupCompanyDao extends BaseMapper<SupCompanyEntity> {
SupCompanyEntity findCompany(String CustomerId);

@ -1,6 +1,7 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.purchase.SupManufacturerEntity;
import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
import org.apache.ibatis.annotations.Mapper;
@ -9,7 +10,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface SupManufacturerDao {
public interface SupManufacturerDao extends BaseMapper<SupManufacturerEntity> {
SupManufacturerEntity findCompany(Long id);

@ -1,5 +1,6 @@
package com.glxp.api.dao.sync;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.req.sync.BasicExportStatusRequest;
import org.apache.ibatis.annotations.Mapper;
@ -8,7 +9,7 @@ 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);

@ -1,5 +1,6 @@
package com.glxp.api.dao.sync;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
import com.glxp.api.req.sync.BasicExportTimeRequest;
import org.apache.ibatis.annotations.Mapper;
@ -7,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BasicExportTimeDao {
public interface BasicExportTimeDao extends BaseMapper<BasicExportStatusTimeEntity> {
List<BasicExportStatusTimeEntity> filterExportStatus(BasicExportTimeRequest basicExportStatusRequest);

@ -1,10 +1,15 @@
package com.glxp.api.entity.basic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName(value = "basic_product_set")
public class BasicProductSetEntity {
@TableId(type = IdType.AUTO)
private Integer id;
private String parmName;
private String parmKey;
@ -17,6 +22,4 @@ public class BasicProductSetEntity {
private Integer sort;
}

@ -2,20 +2,42 @@ package com.glxp.api.entity.sync;
import java.util.Date;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.JdbcType;
@Data
@TableName("basic_export_status")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BasicExportStatusEntity {
@TableId(type = IdType.INPUT)
private String id;
@TableField(value = "idDatas")
private String idDatas;
private Integer status;
private String type;
@TableField(value = "updateTime")
private Date updateTime;
@TableField(value = "scheduleType")
private Integer scheduleType;
@TableField(value = "startTime")
private Date startTime;
@TableField(value = "endTime")
private Date endTime;
private String remark;
@TableField(value = "receiveStatus")
private String receiveStatus;
@TableField(value = "cacheFilePath")
private String cacheFilePath;
}

@ -1,12 +1,27 @@
package com.glxp.api.entity.sync;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@TableName("basic_export_status_time")
public class BasicExportStatusTimeEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField(value = "lastUpdateTime")
private String lastUpdateTime;
@TableField(value = "`key`")
private String key;
private String remark;

@ -0,0 +1,23 @@
package com.glxp.api.res.sync;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.purchase.*;
import lombok.Data;
import java.util.List;
@Data
public class SpsSyncBasicDataResponse extends BaseSyncResponse {
List<BasicHospTypeEntity> hospTypeList;
List<UdiRelevanceEntity> udiRelevanceList;
List<BasicProductsEntity> productsList;
List<CompanyProductRelevanceEntity> relevanceList;
List<BasicCorpEntity> corpList;
List<SupCertEntity> supCertList;
List<SupCertSetEntity> supCertSetList;
List<SupCompanyEntity> supCompanyList;
List<SupManufacturerEntity> supManufacturerList;
List<SupProductEntity> supProductList;
}

@ -1,6 +1,7 @@
package com.glxp.api.service.basic;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.res.thrsys.ThrCorpsResponse;
@ -8,7 +9,7 @@ import com.glxp.api.res.thrsys.ThrUnitMaintainResponse;
import java.util.List;
public interface BasicCorpService {
public interface BasicCorpService extends IService<BasicCorpEntity> {
List<BasicCorpEntity> filterList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest);

@ -1,5 +1,6 @@
package com.glxp.api.service.basic;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.basic.BasicHospTypeEntity;
import com.glxp.api.req.basic.BasicHospTypeFilterRequest;
import com.glxp.api.req.basic.BasicHospTypeRequest;
@ -10,7 +11,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import java.util.List;
public interface BasicHospTypeService {
public interface BasicHospTypeService extends IService<BasicHospTypeEntity> {
List<BasicHospTypeEntity> filterHospTypeList(BasicHospTypeFilterRequest basicHospTypeFilterRequest);

@ -1,13 +1,14 @@
package com.glxp.api.service.basic;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.res.basic.CompanyProductRelevanceResponse;
import java.util.List;
public interface CompanyProductRelevanceService {
public interface CompanyProductRelevanceService extends IService<CompanyProductRelevanceEntity> {
List<CompanyProductRelevanceResponse> filterUdiGp(CompanyProductRelevanceRequest basicInstrumentMaintainRequest);

@ -1,6 +1,7 @@
package com.glxp.api.service.basic;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
@ -10,7 +11,7 @@ import java.util.List;
/**
*
*/
public interface UdiRelevanceService {
public interface UdiRelevanceService extends IService<UdiRelevanceEntity> {
List<UdiRelevanceResponse> filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest);

@ -1,6 +1,8 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.BooleanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicCorpDao;
import com.glxp.api.entity.basic.BasicCorpEntity;
@ -18,7 +20,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class BasicCorpServiceImpl implements BasicCorpService {
public class BasicCorpServiceImpl extends ServiceImpl<BasicCorpDao, BasicCorpEntity> implements BasicCorpService {
@Resource
BasicCorpDao basicCorpDao;
@ -50,13 +52,13 @@ public class BasicCorpServiceImpl implements BasicCorpService {
@Override
public boolean insert(BasicCorpEntity basicUnitMaintainEntity) {
return basicCorpDao.insert(basicUnitMaintainEntity);
return basicCorpDao.insert(basicUnitMaintainEntity) == 0 ? false : true;
}
@Override
public boolean updateById(BasicCorpEntity basicUnitMaintainSaveRequest) {
basicUnitMaintainSaveRequest.setUpdateTime(new Date());
return basicCorpDao.updateById(basicUnitMaintainSaveRequest);
return basicCorpDao.updateById(basicUnitMaintainSaveRequest) == 0 ? false : true;
}
@Override

@ -2,6 +2,7 @@ package com.glxp.api.service.basic.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.basic.BasicHospTypeDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
@ -26,7 +27,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class BasicHospTypeServiceImpl implements BasicHospTypeService {
public class BasicHospTypeServiceImpl extends ServiceImpl<BasicHospTypeDao, BasicHospTypeEntity> implements BasicHospTypeService {
@Resource
BasicHospTypeDao basicHospTypeDao;

@ -2,6 +2,7 @@ package com.glxp.api.service.basic.impl;
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.basic.CompanyProductRelevanceDao;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
@ -17,7 +18,8 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class CompanyProductRelevanceServiceImpl implements CompanyProductRelevanceService {
public class CompanyProductRelevanceServiceImpl extends ServiceImpl<CompanyProductRelevanceDao, CompanyProductRelevanceEntity>
implements CompanyProductRelevanceService {
@Resource
CompanyProductRelevanceDao companyProductRelevanceDao;

@ -2,6 +2,7 @@ package com.glxp.api.service.basic.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.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiRelevanceDao;
@ -22,7 +23,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class UdiRelevanceServiceImpl implements UdiRelevanceService {
public class UdiRelevanceServiceImpl extends ServiceImpl<UdiRelevanceDao, UdiRelevanceEntity> implements UdiRelevanceService {
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource

@ -3,13 +3,14 @@ package com.glxp.api.service.purchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.purchase.SupCertEntity;
import com.glxp.api.req.purchase.FilterSupCertRequest;
import com.glxp.api.req.purchase.purPlanPrintRequest;
import java.util.List;
public interface SupCertService {
public interface SupCertService extends IService<SupCertEntity> {
List<SupCertEntity> filterCompanyCert(FilterSupCertRequest filterSupCertRequest);

@ -1,14 +1,13 @@
package com.glxp.api.service.purchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.purchase.SupCertSetEntity;
import com.glxp.api.req.purchase.FilterCertSetsRequest;
import java.util.List;
public interface SupCertSetService {
public interface SupCertSetService extends IService<SupCertSetEntity> {
List<SupCertSetEntity> filterCertSets(FilterCertSetsRequest filterCertSetsRequest);

@ -2,12 +2,13 @@ package com.glxp.api.service.purchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.purchase.SupCompanyEntity;
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
import java.util.List;
public interface SupCompanyService {
public interface SupCompanyService extends IService<SupCompanyEntity> {
SupCompanyEntity findCompanyByUnitFk(String unitFk);

@ -1,14 +1,13 @@
package com.glxp.api.service.purchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.purchase.SupManufacturerEntity;
import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
import java.util.List;
public interface SupManufacturerService {
public interface SupManufacturerService extends IService<SupManufacturerEntity> {
SupManufacturerEntity findCompany(Long id);

@ -1,6 +1,7 @@
package com.glxp.api.service.purchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.purchase.SupProductEntity;
import com.glxp.api.req.purchase.FilterPoductRequest;
import com.glxp.api.res.purchase.SupProductResponse;
@ -8,7 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SupProductService {
public interface SupProductService extends IService<SupProductEntity> {
SupProductEntity findRegistration(Long id);

@ -1,6 +1,7 @@
package com.glxp.api.service.purchase.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.purchase.SupCertDao;
@ -17,7 +18,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SupCertServiceImpl implements SupCertService {
public class SupCertServiceImpl extends ServiceImpl<SupCertDao, SupCertEntity> implements SupCertService {
@Resource
SupCertDao supCertDao;
@ -33,6 +34,7 @@ public class SupCertServiceImpl implements SupCertService {
}
return supCertDao.filterCompanyCert(filterSupCertRequest);
}
@Override
public List<SupCertEntity> selectCompanyCert(FilterSupCertRequest filterSupCertRequest) {
if (filterSupCertRequest == null) {
@ -110,8 +112,8 @@ public class SupCertServiceImpl implements SupCertService {
}
@Override
public boolean updateCustomerId(String oldId, String newId,Integer auditStatus) {
return supCertDao.updateCustomerId(oldId, newId,auditStatus);
public boolean updateCustomerId(String oldId, String newId, Integer auditStatus) {
return supCertDao.updateCustomerId(oldId, newId, auditStatus);
}
@Override

@ -1,5 +1,6 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.purchase.SupCertSetDao;
import com.glxp.api.entity.purchase.SupCertSetEntity;
@ -14,7 +15,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SupCertSetServiceImpl implements SupCertSetService {
public class SupCertSetServiceImpl extends ServiceImpl<SupCertSetDao, SupCertSetEntity> implements SupCertSetService {
@Resource
SupCertSetDao supCertSetDao;

@ -1,5 +1,6 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.purchase.SupCompanyDao;
import com.glxp.api.entity.purchase.SupCompanyEntity;
@ -14,7 +15,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SupCompanyServiceImpl implements SupCompanyService {
public class SupCompanyServiceImpl extends ServiceImpl<SupCompanyDao,SupCompanyEntity> implements SupCompanyService {
@Resource
SupCompanyDao supCompanyDao;

@ -2,6 +2,7 @@ package com.glxp.api.service.purchase.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.api.dao.purchase.SupManufacturerDao;
import com.glxp.api.entity.purchase.SupManufacturerEntity;
@ -16,7 +17,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SupManufacturerServiceImpl implements SupManufacturerService {
public class SupManufacturerServiceImpl extends ServiceImpl<SupManufacturerDao, SupManufacturerEntity> implements SupManufacturerService {
@Resource
SupManufacturerDao supManufacturerDao;

@ -3,6 +3,7 @@ package com.glxp.api.service.purchase.impl;
import cn.hutool.core.collection.CollUtil;
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.constant.ConstantStatus;
import com.glxp.api.dao.purchase.SupProductDao;
@ -19,7 +20,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SupProductServiceImpl implements SupProductService {
public class SupProductServiceImpl extends ServiceImpl<SupProductDao, SupProductEntity> implements SupProductService {
@Resource
SupProductDao supProductDao;
@ -82,17 +83,17 @@ public class SupProductServiceImpl implements SupProductService {
}
@Override
public SupProductEntity findByManufactury(String cpmctymc, String manufactory,String manufacturerIdFk) {
public SupProductEntity findByManufactury(String cpmctymc, String manufactory, String manufacturerIdFk) {
QueryWrapper<SupProductEntity> ew=new QueryWrapper<>();
if(StrUtil.isNotEmpty(manufactory)){
ew.eq("manufactory",manufactory);
QueryWrapper<SupProductEntity> ew = new QueryWrapper<>();
if (StrUtil.isNotEmpty(manufactory)) {
ew.eq("manufactory", manufactory);
}
if(StrUtil.isNotEmpty(cpmctymc)){
ew.eq("recordProductName",cpmctymc);
if (StrUtil.isNotEmpty(cpmctymc)) {
ew.eq("recordProductName", cpmctymc);
}
if(StrUtil.isNotEmpty(manufacturerIdFk)){
ew.eq("manufacturerIdFk",manufacturerIdFk);
if (StrUtil.isNotEmpty(manufacturerIdFk)) {
ew.eq("manufacturerIdFk", manufacturerIdFk);
}
ew.last("limit 1");
List<SupProductEntity> supProductEntities = supProductDao.selectList(ew);

@ -1,12 +1,14 @@
package com.glxp.api.service.sync;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.dao.sync.BasicExportDao;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.req.sync.BasicExportStatusRequest;
import java.util.List;
public interface BasicExportService {
public interface BasicExportService extends IService<BasicExportStatusEntity> {
BasicExportStatusEntity findByData(String idDatas, Integer status);

@ -1,12 +1,13 @@
package com.glxp.api.service.sync;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
import com.glxp.api.req.sync.BasicExportTimeRequest;
import java.util.List;
public interface BasicExportTimeService {
public interface BasicExportTimeService extends IService<BasicExportStatusTimeEntity> {
BasicExportStatusTimeEntity findByType(String type);

@ -1,14 +1,17 @@
package com.glxp.api.service.sync;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiCompanyEntity;
import com.glxp.api.constant.*;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
import com.glxp.api.entity.sync.SyncDataBustypeEntity;
@ -19,25 +22,39 @@ import com.glxp.api.req.sync.SpsSyncDataRequest;
import com.glxp.api.res.sync.SpSyncUdiResponse;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.res.system.SyncDataSetResponse;
import com.glxp.api.service.basic.ProductInfoService;
import com.glxp.api.service.basic.UdiCompanyService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.purchase.*;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.JsonUtils;
import com.glxp.api.util.RedisUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
import java.util.function.Function;
@Slf4j
@Service
@RequiredArgsConstructor
public class SpsSyncDownloadService {
private final Logger logger = LoggerFactory.getLogger(SpsSyncDownloadService.class);
private final RedisUtil redisUtil;
//已完成扫码单据
@Resource
IoOrderService orderService;
@ -109,6 +126,353 @@ public class SpsSyncDownloadService {
}
private final BasicHospTypeService hospTypeService;
private final UdiRelevanceService udiRelevanceService;
private final BasicProductsDao basicProductsDao;
private final CompanyProductRelevanceService relevanceService;
private final BasicCorpService corpService;
private final SupCertService supCertService;
private final SupCertSetService supCertSetService;
private final SupCompanyService supCompanyService;
private final SupManufacturerService supManufacturerService;
private final SupProductService supProductService;
@Value("${file_path}")
private String filePath;
/**
*
*
* @param info
*/
public void syncBasicData(SyncDataSetResponse info) {
Date now = new Date();
//是否需要执行
boolean needExec = info.getBasicProducts() == 2 || info.getBasicCorp() == 2 || info.getSupCert() == 2;
if (!needExec) {
return;
}
try {
basicExportInfoCreate(BasicExportTypeEnum.BASIC_DATA, now, this.getClass()
, x -> x.generateBasicDataFile(info, now, false)
, x -> x.generateBasicDataFile(info, now, true));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
*
*
* @param exportEnum
* @param hasDataMethod
* @param createFileMethod
* @return
* @throws Exception
*/
private void basicExportInfoCreate(BasicExportTypeEnum exportEnum, Date now
, Class<? extends SpsSyncDownloadService> clazz, Function<SpsSyncDownloadService, Boolean> hasDataMethod, Function<SpsSyncDownloadService, Boolean> createFileMethod) throws Exception {
//防止出现同时调用问题
String redisKey = String.format("spsm-sync-create:%s", exportEnum.getKey());
boolean result = redisUtil.setIfAbsent(redisKey, 1, 10);
if (!result) {
String errorMsg = String.format("syncIdcSps----process------------同步[%s]重复进入", exportEnum.getRemark());
// logger.info(errorMsg);
throw new Exception(errorMsg);
}
BasicExportStatusEntity exportStatus = basicExportService.getOne(Wrappers.lambdaQuery(BasicExportStatusEntity.class)
.eq(BasicExportStatusEntity::getType, BasicExportTypeEnum.BASIC_DATA)
.orderByDesc(BasicExportStatusEntity::getStartTime)
.last("limit 1")
);
//首次任务or上次任务结束
if (exportStatus == null || BasicExportStatusEnum.COMPLETED.getCode().equals(exportStatus.getStatus())) {
//判断有无新数据
Boolean hasData = hasDataMethod.apply(clazz.getConstructor().newInstance());
if (Boolean.FALSE.equals(hasData)) {
return;
}
exportStatus = BasicExportStatusEntity.builder()
.id(CustomUtil.getId())
.status(BasicExportStatusEnum.WAIT_TRIGGERED.getCode())
.type(BasicExportTypeEnum.BASIC_DATA.getRemark())
.scheduleType(0)
.updateTime(cn.hutool.core.date.DateUtil.date())
.startTime(now)
.build();
basicExportService.save(exportStatus);
} else if (exportStatus.getStatus().equals(BasicExportStatusEnum.WAIT_BUILT.getCode())) {//文件待生成
createFileMethod.apply(clazz.getConstructor().newInstance());
}
}
/**
*
*
* @param info
* @param now
* @param createFile
* @return true/false /
*/
private boolean generateBasicDataFile(SyncDataSetResponse info, Date now, boolean createFile) {
//文件数据
Map<String, List> jsonMap = new WeakHashMap<>(4);
Map<BasicExportStatusTimeEnum, Map<String, Object>> totalTimeMap = new WeakHashMap<>(10);
try {
//确认有开启物资字典由外向内同步
if (info.getBasicProducts() == 2) {
Map<String, Object> map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.BASIC_PRODUCTS, createFile);
totalTimeMap.put(BasicExportStatusTimeEnum.BASIC_PRODUCTS, map);
List<BasicHospTypeEntity> hospTypeList = hospTypeService.list(Wrappers.lambdaQuery(BasicHospTypeEntity.class)
.le((boolean) map.get("isNew"), BasicHospTypeEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), BasicHospTypeEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(hospTypeList)) {
jsonMap.put(BasicExportStatusTimeEntity.class.getName(), hospTypeList);
}
List<UdiRelevanceEntity> udiRelevanceList = udiRelevanceService.list(Wrappers.lambdaQuery(UdiRelevanceEntity.class)
.le((boolean) map.get("isNew"), UdiRelevanceEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), UdiRelevanceEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(udiRelevanceList)) {
jsonMap.put(UdiRelevanceEntity.class.getName(), udiRelevanceList);
}
List<BasicProductsEntity> productsList = basicProductsDao.selectList(Wrappers.lambdaQuery(BasicProductsEntity.class)
.le((boolean) map.get("isNew"), BasicProductsEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), BasicProductsEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(productsList)) {
jsonMap.put(BasicProductsEntity.class.getName(), productsList);
}
List<CompanyProductRelevanceEntity> relevanceList = relevanceService.list(Wrappers.lambdaQuery(CompanyProductRelevanceEntity.class)
.le((boolean) map.get("isNew"), CompanyProductRelevanceEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), CompanyProductRelevanceEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(relevanceList)) {
jsonMap.put(CompanyProductRelevanceEntity.class.getName(), relevanceList);
}
}
//确认有开启往来单位字典同步
if (info.getBasicCorp() == 2) {
Map<String, Object> map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.BASIC_CORP, createFile);
totalTimeMap.put(BasicExportStatusTimeEnum.BASIC_CORP, map);
List<BasicCorpEntity> corpList = corpService.list(Wrappers.lambdaQuery(BasicCorpEntity.class)
.le((boolean) map.get("isNew"), BasicCorpEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), BasicCorpEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(corpList)) {
jsonMap.put(BasicCorpEntity.class.getName(), corpList);
}
}
//确认有开启首营资质同步
if (info.getSupCert() == 2) {
Map<String, Object> map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.SUP_CERT, createFile);
totalTimeMap.put(BasicExportStatusTimeEnum.SUP_CERT, map);
List<SupCertEntity> supCertList = supCertService.list(Wrappers.lambdaQuery(SupCertEntity.class)
.le((boolean) map.get("isNew"), SupCertEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), SupCertEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(supCertList)) {
jsonMap.put(SupCertEntity.class.getName(), supCertList);
}
List<SupCertSetEntity> supCertSetList = supCertSetService.list(Wrappers.lambdaQuery(SupCertSetEntity.class)
.le((boolean) map.get("isNew"), SupCertSetEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), SupCertSetEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(supCertSetList)) {
jsonMap.put(SupCertSetEntity.class.getName(), supCertSetList);
}
List<SupCompanyEntity> supCompanyList = supCompanyService.list(Wrappers.lambdaQuery(SupCompanyEntity.class)
.le((boolean) map.get("isNew"), SupCompanyEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), SupCompanyEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(supCompanyList)) {
jsonMap.put(SupCompanyEntity.class.getName(), supCompanyList);
}
List<SupManufacturerEntity> supManufacturerList = supManufacturerService.list(Wrappers.lambdaQuery(SupManufacturerEntity.class)
.le((boolean) map.get("isNew"), SupManufacturerEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), SupManufacturerEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(supManufacturerList)) {
jsonMap.put(SupManufacturerEntity.class.getName(), supManufacturerList);
}
List<SupProductEntity> supProductList = supProductService.list(Wrappers.lambdaQuery(SupProductEntity.class)
.le((boolean) map.get("isNew"), SupProductEntity::getUpdateTime, now)
.between((boolean) map.get("isNew"), SupProductEntity::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(supProductList)) {
jsonMap.put(SupProductEntity.class.getName(), supProductList);
}
}
if (jsonMap.size() > 0) {
if (!createFile) {
return true;
}
try {
String fileFullPath = writeFile(filePath, BasicExportTypeEnum.BASIC_DATA.getRemark(), JsonUtils.toJsonString(jsonMap));
//计算总数
int total = 0;
for (List l : jsonMap.values()) {
total += l.size();
}
try {
//插入一条任务数据
boolean update = basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class)
.set(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_SYNC.getCode())
.set(BasicExportStatusEntity::getUpdateTime, new Date())
.set(BasicExportStatusEntity::getCacheFilePath, fileFullPath)
.set(BasicExportStatusEntity::getRemark, String.format("%s: %s条", BasicExportStatusEnum.WAIT_SYNC.getRemark(), total))
.eq(BasicExportStatusEntity::getType, BasicExportTypeEnum.BASIC_DATA.getRemark())
.eq(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_BUILT.getCode())
.isNull(BasicExportStatusEntity::getCacheFilePath)
);
} catch (Exception e) {
// 异常回滚
this.exportTimeRollback(totalTimeMap, BasicExportTypeEnum.BASIC_DATA, fileFullPath);
}
return true;
} catch (IOException e) {
logger.error(String.format("syncIdcSps----process------------生成[%s]文件及更改库操作异常,异常信息<%s>"
, BasicExportTypeEnum.BASIC_DATA.getRemark(), e.getMessage()));
// 异常回滚
this.exportTimeRollback(totalTimeMap, BasicExportTypeEnum.BASIC_DATA, null);
}
}
return false;
} catch (Exception e) {
logger.error(e.getMessage());
return false;
}
}
/**
* basicExportStatusTime
*
* @param date
* @param exportStatusTimeEnum key
* @param createFile false
* @return date
* @throws Exception
*/
private Map<String, Object> basicExportStatusTimeInfo(Date date, BasicExportStatusTimeEnum exportStatusTimeEnum, boolean createFile) throws Exception {
//防止出现同时调用问题
String redisKey = String.format("spsm-sync-task:%s", exportStatusTimeEnum.getKey());
boolean result = redisUtil.setIfAbsent(redisKey, 1, 10);
if (!result) {
String errorMsg = String.format("syncIdcSps----process------------同步[%s]重复进入", exportStatusTimeEnum.getRemark());
// logger.info(errorMsg);
throw new Exception(errorMsg);
}
boolean isNew = true;
BasicExportStatusTimeEntity timeInfo = basicExportTimeService.getOne(Wrappers.lambdaQuery(BasicExportStatusTimeEntity.class)
.eq(BasicExportStatusTimeEntity::getKey, exportStatusTimeEnum.getKey()));
if (timeInfo == null) {
timeInfo = BasicExportStatusTimeEntity.builder()
.key(exportStatusTimeEnum.getKey())
.lastUpdateTime(DateUtil.formatDateTime(date))
.remark(exportStatusTimeEnum.getRemark())
.build();
if (createFile) {
basicExportTimeService.save(timeInfo);
}
} else {
if (StrUtil.isNotEmpty(timeInfo.getLastUpdateTime())) {
isNew = false;
}
if (createFile) {
basicExportTimeService.update(Wrappers.lambdaUpdate(BasicExportStatusTimeEntity.class)
.set(BasicExportStatusTimeEntity::getLastUpdateTime, DateUtil.formatDateTime(date))
.eq(BasicExportStatusTimeEntity::getKey, exportStatusTimeEnum.getKey())
);
}
}
redisUtil.del(redisKey);
WeakHashMap<String, Object> returnMap = new WeakHashMap<>(10);
returnMap.put("isNew", isNew);
returnMap.put("oldDate", isNew ? null : timeInfo.getLastUpdateTime());
returnMap.put("id", timeInfo.getId());
return returnMap;
}
/**
*
*
* @param totalTimeMap exportTime
* @param delFilePath
*/
private void exportTimeRollback(Map<BasicExportStatusTimeEnum, Map<String, Object>> totalTimeMap, BasicExportTypeEnum exportType, String delFilePath) {
for (Map.Entry<BasicExportStatusTimeEnum, Map<String, Object>> entry : totalTimeMap.entrySet()) {
//防止出现同时调用问题
String redisKey = String.format("spsm-sync-rollback:%s", entry.getKey().getKey());
boolean result = redisUtil.setIfAbsent(redisKey, 1, 10);
if (!result) {
String errorMsg = String.format("syncIdcSps----process------------同步回滚[%s]重复进入", entry.getKey().getRemark());
logger.error(errorMsg);
}
if ((boolean) entry.getValue().get("isNew")) {
basicExportTimeService.deleteById(entry.getValue().get("id").toString());
} else {
basicExportTimeService.update(Wrappers.lambdaUpdate(BasicExportStatusTimeEntity.class)
.set(BasicExportStatusTimeEntity::getLastUpdateTime, entry.getValue().get("oldDate"))
.eq(BasicExportStatusTimeEntity::getKey, entry.getKey().getKey())
.eq(BasicExportStatusTimeEntity::getId, entry.getValue().get("id"))
);
}
}
if (StrUtil.isNotBlank(delFilePath)) {
try {
File file = new File(delFilePath);
file.deleteOnExit();
} catch (Exception e) {
String errorMsg = String.format("syncIdcSps----process------------同步回滚[%s]删除文件异常", exportType.getRemark());
logger.error(errorMsg);
}
}
}
private String writeFile(String filePath, String fileDesc, String content) throws IOException {
String fileFullPath = String.format("%s/%s/%s-%s.udi", filePath, DateUtil.getDate(), fileDesc, IdUtil.fastSimpleUUID());
File file = new File(fileFullPath);
while (!file.createNewFile()) {
fileFullPath = String.format("%s/%s/%s-%s.udi", filePath, DateUtil.getDate(), fileDesc, IdUtil.fastSimpleUUID());
file = new File(fileFullPath);
}
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(content);
fileWriter.flush();
fileWriter.close();
return fileFullPath;
}
//获取需要同步信息
public BaseResponse findOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse();
@ -229,4 +593,5 @@ public class SpsSyncDownloadService {
spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime());
return spsSyncDataRequest;
}
}

@ -1,6 +1,7 @@
package com.glxp.api.service.sync.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.sync.BasicExportDao;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
@ -15,7 +16,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class BasicExportServiceImpl implements BasicExportService {
public class BasicExportServiceImpl extends ServiceImpl<BasicExportDao,BasicExportStatusEntity> implements BasicExportService {
@Resource
BasicExportDao basicExportDao;

@ -1,6 +1,7 @@
package com.glxp.api.service.sync.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.sync.BasicExportTimeDao;
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
import com.glxp.api.req.sync.BasicExportTimeRequest;
@ -14,7 +15,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class BasicExportTimeServiceImpl implements BasicExportTimeService {
public class BasicExportTimeServiceImpl extends ServiceImpl<BasicExportTimeDao, BasicExportStatusTimeEntity> implements BasicExportTimeService {
@Resource
BasicExportTimeDao basicExportTimeDao;

@ -67,7 +67,7 @@ public class AsyncHeartTask implements SchedulingConfigurer {
if (curTime - lastTime > timeInterval) {
spsSyncDownloadService.syncDiProductsTask();
// todo 生成任务都写在这
spsSyncDownloadService.syncBasicData(syncDataSetEntity);
redisUtil.set("SPS_SYNC_GEN_DATA", curTime);
}
}

@ -46,7 +46,7 @@
SELECT *
FROM auth_user
<where>
userName = #{userName}
binary userName = #{userName}
</where>
LIMIT 1
</select>

Loading…
Cancel
Save