diff --git a/api-udims/pom.xml b/api-udims/pom.xml index 7ccab1c..bfb4d84 100644 --- a/api-udims/pom.xml +++ b/api-udims/pom.xml @@ -10,7 +10,9 @@ 4.0.0 war api-udims - + + 11.0 + @@ -159,7 +161,21 @@ - + + io.github.openfeign + feign-core + ${openfegin.version} + + + io.github.openfeign + feign-gson + ${openfegin.version} + + + io.github.openfeign + feign-jackson + ${openfegin.version} + diff --git a/api-udims/src/main/java/com/glxp/udi/admin/config/FeignConfiguration.java b/api-udims/src/main/java/com/glxp/udi/admin/config/FeignConfiguration.java new file mode 100644 index 0000000..9cd7f07 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/config/FeignConfiguration.java @@ -0,0 +1,47 @@ +package com.glxp.udi.admin.config; + +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonElement; +import com.google.gson.JsonSerializationContext; +import feign.Contract; +import feign.Feign; +import feign.Request; +import feign.Retryer; +import feign.jackson.JacksonDecoder; +import feign.jackson.JacksonEncoder; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.TimeUnit; + +@Configuration +public class FeignConfiguration { + @Autowired + private GlobalConfig globalConfig; + @Bean + public Contract feignContract() { + return new Contract.Default(); + } + @Bean + public UdidlService connect(){ + return Feign.builder() + .encoder(new JacksonEncoder()) + .decoder(new JacksonDecoder()) + .options(this.options()) + .retryer(new Retryer.Default(5000,5000,3)) + .requestInterceptor(template -> template.header("Content-Type","application/json"). + header("key",globalConfig.getUDI_SERVER_Key())) + .target(UdidlService.class,globalConfig.getUDI_SERVER_URL()); + } + private Request.Options options(){ + return new Request.Options(globalConfig.getUDI_SERVER_ConnectTimeout(), TimeUnit.SECONDS, + globalConfig.getUDI_SERVER_ReadTimeout(),TimeUnit.SECONDS,globalConfig.isUDI_SERVER_FollowRedirects()); + } + + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/config/GlobalConfig.java b/api-udims/src/main/java/com/glxp/udi/admin/config/GlobalConfig.java new file mode 100644 index 0000000..b517fd4 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/config/GlobalConfig.java @@ -0,0 +1,20 @@ +package com.glxp.udi.admin.config; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +@Data +public class GlobalConfig { + @Value("${UDI_SERVER.url}") + private String UDI_SERVER_URL; + @Value("${UDI_SERVER.connectTimeout}") + private int UDI_SERVER_ConnectTimeout; + @Value("${UDI_SERVER.readTimeout}") + private int UDI_SERVER_ReadTimeout; + @Value("${UDI_SERVER.followRedirects}") + private boolean UDI_SERVER_FollowRedirects; + @Value("${UDI_SERVER.key}") + private String UDI_SERVER_Key; +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/FileInfoController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/FileInfoController.java new file mode 100644 index 0000000..3128485 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/FileInfoController.java @@ -0,0 +1,34 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.ListPageRequest; +import com.glxp.udi.admin.req.feign.DateRange; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.admin.util.DateUtil; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; + +@RestController +@RequestMapping("/file") +public class FileInfoController { + @Autowired + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("/getlist") + public BaseResponse getList(@RequestBody ListPageRequest param) { + return udidlService.file_getList(param); + } + @AuthRuleAnnotation("") + @PostMapping("/exportToFile") + public BaseResponse exportToFile(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { + return udidlService.exportToFile(new DateRange(startDate,endDate)); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/JobLogController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/JobLogController.java new file mode 100644 index 0000000..53f32f3 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/JobLogController.java @@ -0,0 +1,25 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.JobLogFilterRequest; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/jobLog") +public class JobLogController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("/list") + public BaseResponse getList(@RequestBody JobLogFilterRequest jobLogFilterRequest){ + return udidlService.jobLog_getList(jobLogFilterRequest); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdidlDeviceController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdidlDeviceController.java new file mode 100644 index 0000000..2027dd1 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdidlDeviceController.java @@ -0,0 +1,52 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.DateRange; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; + +@RestController +public class UdidlDeviceController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @GetMapping("udidl/device/dlByDays") + public BaseResponse dlByDays(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { + return udidlService.dlByDays(new DateRange(startDate,endDate)); + } + @AuthRuleAnnotation("") + @GetMapping("udidl/device/dlByDay") + public String dlByDay(String day) { + return udidlService.dlByDay(day); + } + @AuthRuleAnnotation("") + @PostMapping("udidl/device/dlByDi") + public BaseResponse downloadByDi(String deviceId) { + return udidlService.downloadByDi(deviceId); + } + + /** + * 获取产品标识详情 + * + * @param deviceId + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("udidl/device/downloadSingle") + public BaseResponse downloadSingle(String deviceId) { + return udidlService.downloadSingle(deviceId); + } + @AuthRuleAnnotation("") + @PostMapping("udidl/device/downloadHistory") + public BaseResponse downloadHistory(String key) { + return udidlService.downloadHistory(key); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatDistributorController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatDistributorController.java new file mode 100644 index 0000000..0c4908d --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatDistributorController.java @@ -0,0 +1,23 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class UdplatDistributorController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("/udplat/distributor/list") + public BaseResponse getList(@RequestBody BaseParam param){ + return udidlService.udplatDistributor_getList(param); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatGoodsController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatGoodsController.java new file mode 100644 index 0000000..05c0a1b --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatGoodsController.java @@ -0,0 +1,23 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class UdplatGoodsController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("/udplat/goods/list") + public BaseResponse getList(@RequestBody BaseParam param){ + return udidlService.udplatGoods_getList(param); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatHospitalController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatHospitalController.java new file mode 100644 index 0000000..eca4b7d --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatHospitalController.java @@ -0,0 +1,23 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class UdplatHospitalController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("udplat/hospital/list") + public BaseResponse getList(@RequestBody BaseParam param){ + return udidlService.udplatHospital_getList(param); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatLogController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatLogController.java new file mode 100644 index 0000000..519cde7 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatLogController.java @@ -0,0 +1,24 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.req.feign.JobLogFilterRequest; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class UdplatLogController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("udplat/log/list") + public BaseResponse getList(@RequestBody JobLogFilterRequest param){ + return udidlService.udplatLog_getList(param); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatManufactureController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatManufactureController.java new file mode 100644 index 0000000..ab4ac5e --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/udidl/UdplatManufactureController.java @@ -0,0 +1,23 @@ +package com.glxp.udi.admin.controller.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.service.udidl.UdidlService; +import com.glxp.udi.common.res.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class UdplatManufactureController { + @Resource + UdidlService udidlService; + + @AuthRuleAnnotation("") + @PostMapping("udplat/manufacture/list") + public BaseResponse getList(@RequestBody BaseParam param){ + return udidlService.udplatManufacture_getList(param); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/feign/BaseParam.java b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/BaseParam.java new file mode 100644 index 0000000..bd4c553 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/BaseParam.java @@ -0,0 +1,12 @@ +package com.glxp.udi.admin.req.feign; + +import com.glxp.udi.admin.req.ListPageRequest; +import lombok.Data; + + +@Data +public class BaseParam extends ListPageRequest { + private String startDate;//开始日期 + private String endDate;//结束日期 + private String name;//名称,支持模糊查询 +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/feign/DateRange.java b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/DateRange.java new file mode 100644 index 0000000..39e3a42 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/DateRange.java @@ -0,0 +1,23 @@ +package com.glxp.udi.admin.req.feign; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.glxp.udi.admin.util.DateUtil; +import lombok.Data; + +import java.util.Date; + +@Data +public class DateRange { + /*@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonDeserialize(using = LocalDateTimeDeserializer.class)*/ + private String startDate; + /*@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonDeserialize(using = LocalDateTimeDeserializer.class)*/ + private String endDate; + public DateRange(Date date0,Date date1){ + this.startDate = DateUtil.formatDate(date0); + this.endDate = DateUtil.formatDate(date1); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/feign/JobLogFilterRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/JobLogFilterRequest.java new file mode 100644 index 0000000..2255296 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/feign/JobLogFilterRequest.java @@ -0,0 +1,12 @@ +package com.glxp.udi.admin.req.feign; + +import com.glxp.udi.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class JobLogFilterRequest extends ListPageRequest { + private String type; + private String downloadType; + private String startDate; + private String endDate; +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/udidl/UdidlService.java b/api-udims/src/main/java/com/glxp/udi/admin/service/udidl/UdidlService.java new file mode 100644 index 0000000..5e3ae31 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/udidl/UdidlService.java @@ -0,0 +1,84 @@ +package com.glxp.udi.admin.service.udidl; + +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.req.ListPageRequest; +import com.glxp.udi.admin.req.feign.BaseParam; +import com.glxp.udi.admin.req.feign.DateRange; +import com.glxp.udi.admin.req.feign.JobLogFilterRequest; +import com.glxp.udi.common.res.BaseResponse; +import feign.QueryMap; +import feign.RequestLine; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.Date; + +public interface UdidlService { + // + @RequestLine("POST /jobLog/list") + BaseResponse jobLog_getList(@RequestBody JobLogFilterRequest jobLogFilterRequest); + @RequestLine("GET /udidl/device/dlByDays") + BaseResponse dlByDays(@QueryMap DateRange dateRange); + @RequestLine("GET /udidl/device/dlByDay") + String dlByDay(String day); + @RequestLine("POST /udidl/device/dlByDi") + BaseResponse downloadByDi(String deviceId); + @RequestLine("POST /udidl/device/downloadSingle") + BaseResponse downloadSingle(String deviceId) ; + @RequestLine("POST /udidl/device/downloadHistory") + BaseResponse downloadHistory(String key) ; + // + + // + @RequestLine("POST /file/getlist") + BaseResponse file_getList(@RequestBody ListPageRequest param); + @RequestLine("POST /file/exportToFile") + BaseResponse exportToFile(@QueryMap DateRange dateRange); + // + + // + + /** + * 配送企业查询 + * @param param + * @return + */ + @RequestLine("POST /udplat/distributor/list") + BaseResponse udplatDistributor_getList(@RequestBody BaseParam param); + + /** + * 目录清单查询 + * @param param + * @return + */ + @RequestLine("POST /udplat/goods/list") + BaseResponse udplatGoods_getList(@RequestBody BaseParam param); + + /** + * 医疗机构查询 + * @param param + * @return + */ + @RequestLine("POST /udplat/hospital/list") + BaseResponse udplatHospital_getList(@RequestBody BaseParam param); + + /** + * 生产企业查询 + * @param param + * @return + */ + @RequestLine("POST /udplat/manufacture/list") + BaseResponse udplatManufacture_getList(@RequestBody BaseParam param); + + /** + * 日志查询 + * @param param + * @return + */ + @RequestLine("POST /udplat/log/list") + BaseResponse udplatLog_getList(@RequestBody JobLogFilterRequest param); + + // +} diff --git a/api-udims/src/main/resources/application-pro.properties b/api-udims/src/main/resources/application-pro.properties index 9969d11..dd6f574 100644 --- a/api-udims/src/main/resources/application-pro.properties +++ b/api-udims/src/main/resources/application-pro.properties @@ -3,8 +3,8 @@ server.port=9995 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udims?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root -spring.datasource.password=mysql@2020 -#spring.datasource.password=123456 +#spring.datasource.password=mysql@2020 +spring.datasource.password=123456 server.servlet.context-path= spring.data.mongodb.database=udiwms spring.data.mongodb.username=root @@ -24,3 +24,9 @@ UDIC_MIPSDOWNLOAD_URL=http://127.0.0.1:8080/UDIC_MIPSDL_Server UCLOD_SERVER_URL=http://127.0.0.1:9997 UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server COOR_UPLOAD_ORDER=http://127.0.0.1:9987/udi/upload +#同步库接口调用地址相关信息 https://www.udims.com/UDI_DL_Server_test +UDI_SERVER.url= http://localhost:9994 +UDI_SERVER.connectTimeout=2000 +UDI_SERVER.readTimeout=3500 +UDI_SERVER.followRedirects=true +UDI_SERVER.key=17fbb8f8782c11ecaec9902e16f86c51