From c2b766152cf25f23a7964fd5bc991dbaa8d2e8b0 Mon Sep 17 00:00:00 2001 From: chengqf <584883665@139.com> Date: Sun, 14 May 2023 09:37:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/basic/UdiSyncController.java | 172 ++++++++ .../api/service/basic/SyncUdiService.java | 114 +++++ .../api/service/basic/UdiCompanyService.java | 28 ++ .../api/service/basic/UdiProductService.java | 63 +++ .../service/basic/UdiRelevanceService.java | 105 +++++ .../basic/impl/UdiCompanyServiceImpl.java | 67 +++ .../basic/impl/UdiProductServiceImpl.java | 158 +++++++ .../basic/impl/UdiRelevanceServiceImpl.java | 405 ++++++++++++++++++ 8 files changed, 1112 insertions(+) create mode 100644 src/main/java/com/glxp/api/controller/basic/UdiSyncController.java create mode 100644 src/main/java/com/glxp/api/service/basic/SyncUdiService.java create mode 100644 src/main/java/com/glxp/api/service/basic/UdiCompanyService.java create mode 100644 src/main/java/com/glxp/api/service/basic/UdiProductService.java create mode 100644 src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java create mode 100644 src/main/java/com/glxp/api/service/basic/impl/UdiCompanyServiceImpl.java create mode 100644 src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java create mode 100644 src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java diff --git a/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java b/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java new file mode 100644 index 0000000..4d39831 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java @@ -0,0 +1,172 @@ +package com.glxp.api.controller.basic; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.github.pagehelper.PageInfo; +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.AsyncDiDlHelper; +import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.entity.basic.UdiCompanyEntity; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.ProductInfoFilterRequest; +import com.glxp.api.req.basic.UdiCompanyRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.service.basic.SyncUdiService; +import com.glxp.api.service.basic.UdiCompanyService; +import com.glxp.api.service.basic.UdiProductService; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.util.udi.FilterUdiUtils; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; + +/** + * 国家库产品信息相关接口 + */ +@Slf4j +@RestController +public class UdiSyncController { + + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiProductService udiProductService; + @Resource + SyncUdiService syncUdiService; + @Resource + AsyncDiDlHelper asyncDiDlHelper; + @Resource + ProductInfoService productInfoService; + @Resource + UdiCompanyService udiCompanyService; + + + //获取同步库UDI信息 + @AuthRuleAnnotation("") + @GetMapping("udiwms/udiinfo/filterUdi") + public BaseResponse filterUdi(FilterUdiRelRequest filterUdiRelRequest) { + String nameCode; + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode()); + if (udiEntity != null) { + nameCode = udiEntity.getUdi(); + } else { + return ResultVOUtils.error(500, "无效UDI码!"); + } + } else + nameCode = filterUdiRelRequest.getNameCode(); + + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + BeanUtils.copyProperties(filterUdiRelRequest, productInfoFilterRequest); + if (StrUtil.isNotEmpty(nameCode)) { + productInfoFilterRequest.setNameCode(nameCode); + } else { + productInfoFilterRequest.setDiType("1"); + } + try { + BaseResponse> udiDlDeviceResponse = syncUdiService.filterUdi(productInfoFilterRequest); + if (udiDlDeviceResponse.getCode() == 20000) { + if (filterUdiRelRequest.getIsCheck() != null && filterUdiRelRequest.getIsCheck()) { + List productInfoEntities = udiDlDeviceResponse.getData().getList(); + if (productInfoEntities != null && productInfoEntities.size() > 0) { + for (ProductInfoEntity productInfoEntity : productInfoEntities) { + List udiRelevanceEntities = udiRelevanceService.selectByUuid(productInfoEntity.getUuid()); + if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 0) { + for (UdiRelevanceEntity udiRelevanceEntity : udiRelevanceEntities) { + if (udiRelevanceEntity.getThirdId() == null && + udiRelevanceEntity.getThirdId2() == null && udiRelevanceEntity.getThirdId1() == null && + udiRelevanceEntity.getThirdId3() == null && udiRelevanceEntity.getThirdId4() == null) { + //不能添加 + productInfoEntity.setCheck(true); + break; + } else + productInfoEntity.setCheck(false); + } + + } else { + productInfoEntity.setCheck(false); + } + } + } + } + } + return udiDlDeviceResponse; + } catch (Exception e) { + log.error(e.getMessage(), e); + return ResultVOUtils.error(500, "连接UDI数据下载服务出错!"); + } + } + + + //获取同步库医疗器械注册人信息 + @AuthRuleAnnotation("") + @GetMapping("udiwms/udiinfo/filterCompany") + public BaseResponse filterCompany(UdiCompanyRequest udiCompanyRequest) { + + try { + BaseResponse> udiDlDeviceResponse = syncUdiService.filterCompany(udiCompanyRequest); + return udiDlDeviceResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接UDI数据下载服务出错!"); + } + } + + + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/instrument/maintain/filterProduct") + public BaseResponse filterProduct(FilterUdiRelRequest filterUdiRelRequest) { + List udiInfoEntities + = udiProductService.filterAllUdiInfo(filterUdiRelRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(udiInfoEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiInfoEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/findByCode") + public BaseResponse findByCode(FilterUdiRelRequest filterUdiRelRequest) { + + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode()); + UdiProductEntity udiProductEntity + = udiProductService.findByNameCode(udiEntity.getUdi()); + return ResultVOUtils.success(udiProductEntity); + } + + + //出入库同步下载 + @GetMapping("udidl/udiwms/syncUdi") + public BaseResponse syncUdi(ProductInfoFilterRequest productInfoFilterRequest) { + + List productInfoEntityList = productInfoService.syncDlUdi(productInfoFilterRequest); + return ResultVOUtils.success(productInfoEntityList); + + } + + + //出入库同步下载 + @GetMapping("udidl/udiwms/syncCompany") + public BaseResponse syncCompany(UdiCompanyRequest udiCompanyRequest) { + + List udiCompanyEntities = udiCompanyService.syncDlCompany(udiCompanyRequest); + return ResultVOUtils.success(udiCompanyEntities); + + } +} + diff --git a/src/main/java/com/glxp/api/service/basic/SyncUdiService.java b/src/main/java/com/glxp/api/service/basic/SyncUdiService.java new file mode 100644 index 0000000..9ffa192 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/SyncUdiService.java @@ -0,0 +1,114 @@ +package com.glxp.api.service.basic; + +import cn.hutool.core.util.StrUtil; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.entity.basic.UdiCompanyEntity; +import com.glxp.api.req.basic.ProductInfoFilterRequest; +import com.glxp.api.req.basic.UdiCompanyRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.util.RedisUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +@Service +public class SyncUdiService { + + + @Resource + ProductInfoService productInfoService; + @Resource + UdiCompanyService udiCompanyService; + + @Resource + RedisUtil redisUtil; + + public BaseResponse filterUdi(ProductInfoFilterRequest productInfoFilterRequest) { + + //过滤--1.参数不能全未空 + if ((productInfoFilterRequest.getYlqxzcrbarmc() == null || productInfoFilterRequest.getYlqxzcrbarmc().equals("")) && + (productInfoFilterRequest.getCpmctymc() == null || productInfoFilterRequest.getCpmctymc().equals("")) && + (productInfoFilterRequest.getNameCode() == null || productInfoFilterRequest.getNameCode().equals("")) && + (productInfoFilterRequest.getGgxh() == null || productInfoFilterRequest.getGgxh().equals("")) && + (productInfoFilterRequest.getUuid() == null || productInfoFilterRequest.getUuid().equals("")) && + (productInfoFilterRequest.getZczbhhzbapzbh() == null || productInfoFilterRequest.getZczbhhzbapzbh().equals("")) && + (productInfoFilterRequest.getDeviceRecordKey() == null || productInfoFilterRequest.getDeviceRecordKey().equals("")) + ) { + return ResultVOUtils.error(500, "查询条件不能为空!"); + } + + if (StrUtil.isEmpty(productInfoFilterRequest.getYlqxzcrbarmc()) && + StrUtil.isEmpty(productInfoFilterRequest.getCpmctymc()) + && StrUtil.isEmpty(productInfoFilterRequest.getNameCode()) + && StrUtil.isEmpty(productInfoFilterRequest.getGgxh()) + && StrUtil.isEmpty(productInfoFilterRequest.getUuid()) + && StrUtil.isEmpty(productInfoFilterRequest.getZczbhhzbapzbh())) { + if (productInfoFilterRequest.getNameCode() != null && !productInfoFilterRequest.getNameCode().equals("") && productInfoFilterRequest.getNameCode().length() < 10) { + return ResultVOUtils.error(500, "请输入完整的最小销售单元标识!"); + } + } + + if (StrUtil.isEmpty(productInfoFilterRequest.getYlqxzcrbarmc()) && StrUtil.isEmpty(productInfoFilterRequest.getNameCode())) { + if (StrUtil.isNotEmpty(productInfoFilterRequest.getCpmctymc())) { + return ResultVOUtils.error(500, "请输入医疗器械注册备案人名称"); + } + if (productInfoFilterRequest.getGgxh() != null && !productInfoFilterRequest.getGgxh().equals("")) { + return ResultVOUtils.error(500, "请输入医疗器械注册备案人名称"); + } + if (productInfoFilterRequest.getZczbhhzbapzbh() != null && !productInfoFilterRequest.getZczbhhzbapzbh().equals("")) { + return ResultVOUtils.error(500, "请输入医疗器械注册备案人名称"); + } + } + + + if ((productInfoFilterRequest.getYlqxzcrbarmc() == null || productInfoFilterRequest.getYlqxzcrbarmc().equals("")) + && (productInfoFilterRequest.getNameCode() == null || productInfoFilterRequest.getNameCode().equals("")) + && (productInfoFilterRequest.getCpmctymc() == null || productInfoFilterRequest.getCpmctymc().equals("")) + + ) { + if (productInfoFilterRequest.getGgxh() != null && !productInfoFilterRequest.getGgxh().equals("")) { + return ResultVOUtils.error(500, "请输入医疗器械注册备案人名称"); + } + if (productInfoFilterRequest.getZczbhhzbapzbh() != null && !productInfoFilterRequest.getZczbhhzbapzbh().equals("")) { + return ResultVOUtils.error(500, "请输入医疗器械注册备案人名称"); + } + } + + if (productInfoFilterRequest.getCpmctymc() != null && !productInfoFilterRequest.getCpmctymc().equals("") && productInfoFilterRequest.getCpmctymc().length() < 4) { + return ResultVOUtils.error(500, "请输入完整的产品通用名称!"); + } + productInfoFilterRequest.setIsNewest(1); +// productInfoFilterRequest.setDiType("1"); + + String keyCache = productInfoFilterRequest.toCacheKey(); + if (StrUtil.isEmpty(keyCache)) { + return ResultVOUtils.error(500, "查询条件不能为空!"); + } + + String totalStr = (String) redisUtil.get(keyCache); + long total = 0; + if (StrUtil.isEmpty(totalStr)) { + total = productInfoService.filterUdiNoPageCount(productInfoFilterRequest); + redisUtil.set(keyCache, total + ""); + } else { + total = Long.parseLong(totalStr); + } + List productInfoEntityList = productInfoService.filterUdiNoPage(productInfoFilterRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(total); + pageSimpleResponse.setList(productInfoEntityList); + return ResultVOUtils.success(pageSimpleResponse); + + } + + + public BaseResponse filterCompany(@Valid UdiCompanyRequest udiCompanyRequest) { + + List udiCompanyEntities = udiCompanyService.filterUdiCompany(udiCompanyRequest); + return ResultVOUtils.success(udiCompanyEntities); + } +} diff --git a/src/main/java/com/glxp/api/service/basic/UdiCompanyService.java b/src/main/java/com/glxp/api/service/basic/UdiCompanyService.java new file mode 100644 index 0000000..63b79b4 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/UdiCompanyService.java @@ -0,0 +1,28 @@ +package com.glxp.api.service.basic; + + +import com.glxp.api.entity.basic.UdiCompanyEntity; +import com.glxp.api.req.basic.UdiCompanyRequest; + +import java.util.List; + +public interface UdiCompanyService { + + List selectAllTyshxyh(); + + List syncDlCompany(UdiCompanyRequest udiCompanyRequest); + + + List filterUdiCompany(UdiCompanyRequest udiCompanyRequest); + + boolean insertUdiCompany(UdiCompanyEntity udiCompanyEntity); + + boolean insertUdiCompanys(List udiCompanyEntities); + + boolean deleteById(String id); + + boolean deleteAll(List ids); + + boolean updateUdiCompany(UdiCompanyEntity udiCompanyEntity); + +} diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java new file mode 100644 index 0000000..ee4ecdc --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -0,0 +1,63 @@ +package com.glxp.api.service.basic; + +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 耗材字典-字典信息 + */ +public interface UdiProductService { + + List filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest); + + UdiProductEntity findBySptm(String sptm); + + List filterUdiInfo2(FilterUdiRelRequest filterUdiRelRequest); + + List filterAllUdiInfo(FilterUdiRelRequest filterUdiRelRequest); + + UdiProductEntity findByNameCode(String nameCode); + + UdiProductEntity findById(@Param("id") String id); + + UdiProductEntity findByUuid(String uuid); + + List findByUuids(String uuid); + + boolean insertUdiInfo(UdiProductEntity udiProductEntity); + + boolean insertUdiInfos(List udiInfoEntities); + + boolean updateUdiInfo(UdiProductEntity udiProductEntity); + + boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity); + + boolean updateUdiInfoById(UdiProductEntity udiProductEntity); + + boolean deleteById(String id); + + boolean deleteByUuid(String uuid); + + /** + * 查询产品规格型号列表 + * + * @param relId + * @return + */ + List getGgxhList(String relId); + + boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest); + + /** + * 根据DI查询此产品是否允许无批次号 + * + * @param nameCode + * @return + */ + UdiProductEntity getAllowNoBatch(String nameCode); +} diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java new file mode 100644 index 0000000..decf0ac --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -0,0 +1,105 @@ +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; + +import java.util.List; + +/** + * 耗材字典关联 + */ +public interface UdiRelevanceService extends IService { + + List filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest); + + List filterCertUdi(FilterUdiRelRequest filterUdiRelRequest); + + List filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest); + + List filterUdiEntity(FilterUdiRelRequest filterUdiRelRequest); + + UdiRelevanceResponse selectByNameCode(String nameCode); + + /** + * 根据耗材字典ID查询耗材相关数据 + * + * @param relId + * @return + */ + UdiRelevanceResponse selectByRelId(String relId); + + //根据DI查询产品信息 + List selectAllByNameCode(String nameCode); + + + List selectAllByNameCode(String nameCode, String unitFk); + + boolean isExit(); + + List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + + boolean isExitByUuid(String uuid); + + List batchSelectByUuid(List uuids); + + List batchSelectByIds(List ids); + + List selectByUuid(String uuid); + + UdiRelevanceEntity selectById(Long id); + + UdiRelevanceResponse selectGroupById(Long id); + + UdiRelevanceResponse selectUdiId(Long id); + + + UdiRelevanceResponse selectSupGroupById(Long id, String supId); + + + UdiRelevanceEntity selectUpdateByUuid(String uuid); + + UdiRelevanceEntity selectUpdateByThirdId(String thirdId); + + UdiRelevanceEntity selectByMainIdLimitOne(String mainId); + + List selectByMainId(String mainId); + + UdiRelevanceEntity selectUpteaByAll(String uuid, String thirdId); + + UdiRelevanceEntity selectByThirdId(String thirdId, String thirdSys); + + List selectListByThirdId(String thirdId, String thirdSys); + + boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean insertUdiRelevanceignore(UdiRelevanceEntity udiRelevanceEntity); + + boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean deleteById(String id); + + boolean deleteByIds(List id); + + boolean deleteByUuid(String uuid); + + /** + * 查询产品的uuid + * + * @param relId + * @return + */ + String findUuidById(String relId); + + List selectGroupByNameCode(String nameCode, Boolean isDisable); + + /** + * 根据UDI码查询耗材字典ID + * + * @param code + * @return + */ + String getRelIdByUdiCode(String code); +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiCompanyServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiCompanyServiceImpl.java new file mode 100644 index 0000000..d441399 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiCompanyServiceImpl.java @@ -0,0 +1,67 @@ +package com.glxp.api.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.UdiCompanyDao; +import com.glxp.api.entity.basic.UdiCompanyEntity; +import com.glxp.api.req.basic.UdiCompanyRequest; +import com.glxp.api.service.basic.UdiCompanyService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class UdiCompanyServiceImpl implements UdiCompanyService { + + @Resource + UdiCompanyDao udiCompanyDao; + + @Override + public List selectAllTyshxyh() { + return udiCompanyDao.selectAllTyshxyh(); + } + + @Override + public List syncDlCompany(UdiCompanyRequest udiCompanyRequest) { + int offset = (udiCompanyRequest.getPage() - 1) * udiCompanyRequest.getLimit() + 1; + udiCompanyRequest.setPage(offset); + return udiCompanyDao.syncDlCompany(udiCompanyRequest); + } + + + @Override + public List filterUdiCompany(UdiCompanyRequest udiCompanyRequest) { + if (udiCompanyRequest.getPage() != null && udiCompanyRequest.getLimit() != null) { + int offset = (udiCompanyRequest.getPage() - 1) * udiCompanyRequest.getLimit(); + PageHelper.offsetPage(offset, udiCompanyRequest.getLimit()); + } + return udiCompanyDao.filterUdiCompany(udiCompanyRequest); + } + + @Override + public boolean insertUdiCompany(UdiCompanyEntity udiCompanyEntity) { + return udiCompanyDao.insertUdiCompany(udiCompanyEntity); + } + + @Override + public boolean insertUdiCompanys(List udiCompanyEntities) { + return udiCompanyDao.insertUdiCompanys(udiCompanyEntities); + } + + @Override + public boolean deleteById(String id) { + return udiCompanyDao.deleteById(id); + } + + @Override + public boolean deleteAll(List ids) { + return udiCompanyDao.deleteAll(ids); + } + + @Override + public boolean updateUdiCompany(UdiCompanyEntity udiCompanyEntity) { + return udiCompanyDao.updateUdiCompany(udiCompanyEntity); + } +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java new file mode 100644 index 0000000..f337343 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -0,0 +1,158 @@ +package com.glxp.api.service.basic.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.UdiProductDao; +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.basic.UdiProductService; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class UdiProductServiceImpl implements UdiProductService { + + @Resource + UdiProductDao udiProductDao; + + @Override + public List filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiProductDao.filterUdiInfo(filterUdiRelRequest); + return data; + } + + + @Override + public UdiProductEntity findBySptm(String sptm) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setSptm(sptm); + List data = udiProductDao.filterUdiInfo(filterUdiRelRequest); + if (CollUtil.isNotEmpty(data)) { + return data.get(0); + } + return null; + } + + @Override + public List filterUdiInfo2(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiProductDao.filterUdiInfo2(filterUdiRelRequest); + return data; + } + + @Override + public List filterAllUdiInfo(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + List data = udiProductDao.filterUdiInfo(filterUdiRelRequest); + return data; + } + + @Override + public UdiProductEntity findByNameCode(String nameCode) { + String prefix = FilterUdiUtils.getDiStr(nameCode); + return udiProductDao.findByNameCode(prefix); + } + + @Override + public UdiProductEntity findById(String id) { + return udiProductDao.findById(id); + } + + @Override + public UdiProductEntity findByUuid(String uuid) { + return udiProductDao.findByUuid(uuid); + } + + @Override + public List findByUuids(String uuid) { + return udiProductDao.findByUuids(uuid); + } + + @Override + public boolean insertUdiInfo(UdiProductEntity udiProductEntity) { + if (udiProductEntity.getId() == null) { + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + } + return udiProductDao.insertUdiInfo(udiProductEntity); + } + + @Override + public boolean insertUdiInfos(List udiInfoEntities) { + return udiProductDao.insertUdiInfos(udiInfoEntities); + } + + @Override + public boolean updateUdiInfo(UdiProductEntity udiProductEntity) { + if (StrUtil.isEmpty(udiProductEntity.getNameCode())) + return false; + return udiProductDao.updateUdiInfo(udiProductEntity); + } + + @Override + public boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity) { + if (StrUtil.isEmpty(udiProductEntity.getUuid())) + return false; + return udiProductDao.updateUdiInfoByUuid(udiProductEntity); + } + + @Override + public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) { + return udiProductDao.updateUdiInfoById(udiProductEntity); + } + + + @Override + public boolean deleteById(String id) { + return udiProductDao.deleteById(id); + } + + @Override + public boolean deleteByUuid(String uuid) { + return udiProductDao.deleteByUuid(uuid); + } + + @Override + public List getGgxhList(String relId) { + return udiProductDao.selectGgxhList(relId); + } + + @Override + public boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest) { + if (StrUtil.isEmpty(udiInfoRequest.getUuid())) + return false; + return udiProductDao.updateUdiInfoNotAll(udiInfoRequest); + } + + @Override + public UdiProductEntity getAllowNoBatch(String nameCode) { + String di = FilterUdiUtils.getDiStr(nameCode); + return udiProductDao.selectAllowNoBatch(di); + } +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java new file mode 100644 index 0000000..5883de4 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -0,0 +1,405 @@ +package com.glxp.api.service.basic.impl; + +import java.util.Collections; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +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; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.util.udi.FilterUdiUtils; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; + +@Service +@Transactional(rollbackFor = Exception.class) +public class UdiRelevanceServiceImpl extends ServiceImpl implements UdiRelevanceService { + @Resource + UdiRelevanceDao udiRelevanceDao; + + + @Override + public List filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + List data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); + return data; + } + + @Override + public List filterCertUdi(FilterUdiRelRequest filterUdiRelRequest) { + + + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + List data = udiRelevanceDao.filterCertUdi(filterUdiRelRequest); + return data; + + } + + @Override + public List filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + List data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest); + return data; + } + + + @Override + public List filterUdiEntity(FilterUdiRelRequest filterUdiRelRequest) { + + List data = udiRelevanceDao.filterEntity(filterUdiRelRequest); + return data; + } + + @Override + public List selectAllByNameCode(String nameCode) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUniqueNameCode(nameCode); + List udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest); + return udiRelevanceResponses; + } + + @Override + public UdiRelevanceResponse selectByNameCode(String nameCode) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUniqueNameCode(nameCode); + List udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest); + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) + return udiRelevanceResponses.get(0); + return null; + } + + @Override + public UdiRelevanceResponse selectByRelId(String relId) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setRelId(relId); + List udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest); + if (CollUtil.isNotEmpty(udiRelevanceResponses)) { + return udiRelevanceResponses.get(0); + } + return null; + } + + @Override + public List selectAllByNameCode(String nameCode, String unitFk) { + List udiRelevanceResponses; + if (StrUtil.isNotEmpty(unitFk)) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUniqueNameCode(nameCode); + filterUdiRelRequest.setUnitFk(unitFk); + filterUdiRelRequest.setIsDisable(false); + udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest); + } else { + udiRelevanceResponses = selectGroupByNameCode(nameCode, false); + } + if (udiRelevanceResponses.size() == 1) { + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); + if (udiRelevanceResponse == null || udiRelevanceResponse.getProductType() == ConstantStatus.PRODUCT_TYPE_THIRD) { + return selectByMainId(nameCode); + } + } + return udiRelevanceResponses; + + + } + + @Override + public boolean isExit() { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setPage(1); + filterUdiRelRequest.setLimit(1); + List data = filterUdiRelevance(filterUdiRelRequest); + if (data != null && data.size() > 0) { + return true; + } + return false; + } + + @Override + public List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiRelevanceDao.filterUdiGp(filterUdiRelRequest); + return data; + } + + @Override + public boolean isExitByUuid(String uuid) { + List udiRelevanceEntities = udiRelevanceDao.selectByUuid(uuid); + if (udiRelevanceEntities != null && !udiRelevanceEntities.isEmpty()) { + return true; + } + return false; + } + + @Override + public List batchSelectByUuid(List uuids) { + return udiRelevanceDao.batchSelectByUuid(uuids); + } + + @Override + public List batchSelectByIds(List ids) { + return udiRelevanceDao.batchSelectByIds(ids); + } + + @Override + public List selectByUuid(String uuid) { + return udiRelevanceDao.selectByUuid(uuid); + } + + @Override + public UdiRelevanceEntity selectById(Long id) { + return udiRelevanceDao.selectById(id); + } + + @Override + public UdiRelevanceResponse selectGroupById(Long id) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setId(id); + filterUdiRelRequest.setDiType(1); + List data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + + @Override + public UdiRelevanceResponse selectUdiId(Long id) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setId(id); + List data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + + @Override + public UdiRelevanceResponse selectSupGroupById(Long id, String supId) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if (StrUtil.isNotEmpty(supId)) + filterUdiRelRequest.setUnitFk(supId); + filterUdiRelRequest.setId(id); + filterUdiRelRequest.setDiType(1); + return udiRelevanceDao.selectOneUdiJoinSup(filterUdiRelRequest); + } + + + @Override + public UdiRelevanceEntity selectUpdateByUuid(String uuid) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUuid(uuid); + List data = udiRelevanceDao.filterEntity(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + + @Override + public UdiRelevanceEntity selectUpdateByThirdId(String thirdId) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if (thirdId != null) { + /* ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys(); + String mainSys = basicThirdSysEntity.getThirdId(); + if (mainSys.equals("thirdId")) { + filterUdiRelRequest.setThirdId(thirdId); + } else if (mainSys.equals("thirdId1")) { + filterUdiRelRequest.setThirdId1(thirdId); + } else if (mainSys.equals("thirdId2")) { + filterUdiRelRequest.setThirdId2(thirdId); + } else if (mainSys.equals("thirdId3")) { + filterUdiRelRequest.setThirdId3(thirdId); + } else if (mainSys.equals("thirdId4")) { + filterUdiRelRequest.setThirdId4(thirdId); + }*/ + } + List data = udiRelevanceDao.filterEntity(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + + @Override + public UdiRelevanceEntity selectByMainIdLimitOne(String mainId) { + + if (mainId == null) + return null; + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setMainId(mainId); + return udiRelevanceDao.selectByThirdId(filterUdiRelRequest); + } + + @Override + public List selectByMainId(String mainId) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setMainId(mainId); + List udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest); + return udiRelevanceResponses; + } + + @Override + public UdiRelevanceEntity selectUpteaByAll(String uuid, String thirdId) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if (thirdId != null) { + /*ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys(); + String mainSys = basicThirdSysEntity.getThirdId(); + filterUdiRelRequest.setUuid(uuid); + if (mainSys.equals("thirdId")) { + filterUdiRelRequest.setThirdId(thirdId); + } else if (mainSys.equals("thirdId1")) { + filterUdiRelRequest.setThirdId1(thirdId); + } else if (mainSys.equals("thirdId2")) { + filterUdiRelRequest.setThirdId2(thirdId); + } else if (mainSys.equals("thirdId3")) { + filterUdiRelRequest.setThirdId3(thirdId); + } else if (mainSys.equals("thirdId4")) { + filterUdiRelRequest.setThirdId4(thirdId); + }*/ + } + + List data = udiRelevanceDao.filterEntity(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + + @Override + public UdiRelevanceEntity selectByThirdId(String thirdId, String thirdSys) { + + if (StrUtil.isEmpty(thirdId) || StrUtil.isEmpty(thirdSys)) { + return null; + } + + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if ("thirdId".equals(thirdSys)) { + filterUdiRelRequest.setThirdId(thirdId); + } else if ("thirdId1".equals(thirdSys)) { + filterUdiRelRequest.setThirdId1(thirdId); + } else if ("thirdId2".equals(thirdSys)) { + filterUdiRelRequest.setThirdId2(thirdId); + } else if ("thirdId3".equals(thirdSys)) { + filterUdiRelRequest.setThirdId3(thirdId); + } else if ("thirdId4".equals(thirdSys)) { + filterUdiRelRequest.setThirdId4(thirdId); + } + + return udiRelevanceDao.selectByThirdId(filterUdiRelRequest); + } + + @Override + public List selectListByThirdId(String thirdId, String thirdSys) { + if (StrUtil.isEmpty(thirdId) || StrUtil.isEmpty(thirdSys)) { + return null; + } + + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if ("thirdId".equals(thirdSys)) { + filterUdiRelRequest.setThirdId(thirdId); + } else if ("thirdId1".equals(thirdSys)) { + filterUdiRelRequest.setThirdId1(thirdId); + } else if ("thirdId2".equals(thirdSys)) { + filterUdiRelRequest.setThirdId2(thirdId); + } else if ("thirdId3".equals(thirdSys)) { + filterUdiRelRequest.setThirdId3(thirdId); + } else if ("thirdId4".equals(thirdSys)) { + filterUdiRelRequest.setThirdId4(thirdId); + } + List data = udiRelevanceDao.filterUdiGp(filterUdiRelRequest); + return data; + } + + @Override + public boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) { + return udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); + } + + @Override + public boolean insertUdiRelevanceignore(UdiRelevanceEntity udiRelevanceEntity) { + return udiRelevanceDao.insertUdiRelevanceignore(udiRelevanceEntity); + } + + @Override + public boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) { + /*ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys(); + String mainSys = basicThirdSysEntity.getThirdId(); + if (mainSys.equals("thirdId")) { + udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId()); + } else if (mainSys.equals("thirdId1")) { + udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId1()); + } else if (mainSys.equals("thirdId2")) { + udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId2()); + } else if (mainSys.equals("thirdId3")) { + udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId3()); + } else if (mainSys.equals("thirdId4")) { + udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId4()); + }*/ + return udiRelevanceDao.updateUdiRelevance(udiRelevanceEntity); + } + + @Override + public boolean deleteById(String id) { + return udiRelevanceDao.deleteById(id); + } + + @Override + public boolean deleteByIds(List ids) { + return udiRelevanceDao.deleteByIds(ids); + } + + @Override + public boolean deleteByUuid(String uuid) { + return udiRelevanceDao.deleteByUuid(uuid); + } + + @Override + public String findUuidById(String relId) { + return udiRelevanceDao.selectUuidById(relId); + } + + @Override + public List selectGroupByNameCode(String nameCode, Boolean isDisable) { + return udiRelevanceDao.selectGroupByNameCode(nameCode, isDisable); + } + + @Override + public String getRelIdByUdiCode(String code) { + if (StrUtil.isBlank(code)) { + return null; + } + UdiEntity udi = FilterUdiUtils.getUdi(code); + return udiRelevanceDao.selectRelIdByNameCode(udi.getUdi()); + } +}